What did 25 Years of Code Teach Me?

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hey guys so what 25 years of coding taught me so I'm gonna give you the four major points and then I'll go over to details so number one you will learn much more when you start getting paid to code so don't get caught into tutorial hell number two the best code is simple code number three coding real-world apps is an iterative process meaning when you're writing real apps don't try to write the perfect code you know for every object that you create or every page that you create or a review that you create etc no no no when you're writing real-world apps you just want to get from AIDS as that as quickly as possible you want to get the thing functional no matter what you do once you have the whole thing working from a to Zed then you go back and you start refactoring which is basically rewriting and cleaning up code and that's how you do it you iterate over us first pass second pass there pass that's how you write as well by the way three passes I find when I write number four nobody wants to write good Docs but they should documentation in software is such an important part of writing good software people don't like doing it you sort of get caught up in writing a code you should write Doc's along the way at least start writing notes to yourself why you made certain decisions as you go along with your project especially if you're complex so with studio web we're we're going to see web five now and there's a lot of complexity in there especially for the backend tools for for schools and a lot of times we sit there we sit there and we figure out what how we're going to engineer somebody how we're going to structure a particular functionality in the system and if you don't write down why you made those decisions I can guarantee you a week or two weeks later you're going to forget especially six months later so writing good Docs for your application is very important so there you go that's the short version of the top four things off the top of my head but learned over the last 25 years as someone who's written cold commercially all right let's get into some detail number one you will learn much more when you start getting paid to code this dovetails into one of miss of one of the misconceptions I like to point out people are getting new who are new into software development coding or web development whatever it doesn't really matter which stack you get into there's this preconception but you have to come to the table with full knowledge of everything so that's why you see people get caught up in all these tutorials because they're insecure about their level of skill so they keep doing more tutorials and more tutorials and more tutorials and more tutorials real world coding is about learning as you go especially in the first three to five years as a software developer one of the number-one skills by the way of a good developer is that they're able to learn quickly so as I've said many times you learn the fundamentals and once you have the fundamentals you can jump into whatever specialization whatever stack whatever framework whatever library you need to learn at that time you will see as you get more and more into professional development you're gonna start having to evaluate projects choose the languages and libraries are best suited for that project so I was an extreme example if I was going to get into machine learning want to implement machine learning into an application I'm not going to do it with PHP right probably not going to do with PHP are probably not gonna do it Ruby that's for sure I'm not gonna do if a lot of different languages I'll probably do it with one or two popular languages for ML Python is probably the most popular others out there sometimes you might doing C C++ if you need to boiled build a very fast core engine into your AI solution but at the end of the day as a professional developer you have to pull away from this notion that you are a PHP or you are a Python developer you can specialize based on your likes and dislikes but as you become more and more advanced that's becomes less and less of an issue and as I've said many times told people in my career as a freelancer I would go into the project with no preconceptions about which language or framework I was going to use to write the project I would let the project demands and the environment in which I was working mainly what infrastructure the business had invested in I'd let that determine what language or stock I was going to use in the early days the first three to five years as a freelancer I was really a Java zealot everything had to be Java I loved Java I had develop my own framework in Java for web and everything was Javid no it's like anything I saw it had to be done in Java which was silly and was immature of me as a developer back in the day as I got better and more mature I was language agnostic language neutral whatever work allows you have your fundamentals you'll learn that's why in my courses I teach fundamentals and then once you've done my fundamental courses then everything else becomes super easy you'd be surprised how much you learned by learning the fundamentals you'd be very surprised because all the complexity that you observe and see in this more advanced libraries more advanced stacks if you will in software all those complexities are just basic stuff layer it's like a hamburger like a sandwich so if you look at it as a whole it seems complex but if you understand each layer that's a burger that's a bread that's lettuce that's ketchup you understand you know what's going on you know I mean kind of a silly analogy but it works maybe I'm hungry ok number two I said the best code is simple code again any experienced developer 5-10 years experience or more will realize this more and more and more Ben developers right simple cold why because code has to be updated a lot of times especially in a viable project and if you have complex code then that's going to be a nightmare to maintain very expensive to maintain and more prone to bugs so right very simple code strive to simplify your codes if you can write code but just about anybody can read a very quickly go oh yeah I knew what this guy was trying to do or this girl was trying to do that makes you a better maybe even a master developer simple code is simply the best simplicity in execution simple code is not unique to software development coding simplicity and execution is the trademark of any mastering and in any field so for example I use martial arts as an example I was first taught this was like as a young teenager I have to admit it Bruce Lee Bruce Lee talked about learning from a different sources taking what you liked which he felt it was good ignoring this stuff or rejecting stuff he didn't like and then simplifying everything is about a simplification so beginner if you're throwing a punch they're gonna throw a very wasteful punch there might be like this an expert will throw a very very efficient punch you'll get to will get to the point very quickly a point being the guy's the opponent's face code is like that to businesses like that to great business is very efficient business great managers of companies will go in there and eliminate wasted processes in the business an efficient business is a process efficient business and so you're able to produce the product or service with the least amount of cost and the best quality so same thing when you're ready called strive to be simple I'm gonna do a video on minimalism versus advanced level of software development encoding there's a lot of similarities there number 3 coding real world is an iterative process iterations will do reads basic concept and programming has a loops boom-boom-boom every iteration every time you do pass you refine of equality of the code so that's why I say when you develop your app the very the alpha you want to get the whole working app out the door as quickly as possible fully functional because when you have a fully functional app even if you got parts of this really written badly having that fully functional app even if it's crippled it it gives you insight into what the app ultimately should be how the codebase should be structured and in the initial stage stages of software development in the alpha stages if you will you don't know how the project will end up being you don't know what feature sets will have to be there you don't know you may have to decide what you have to restructure your database store in a certain way etc etc so when you are writing code you want to get from A to Z get the whole thing functional and then you start refining it refinery as you learn about the use case as you learn about how the app should be used and how it should be structured then you could start writing more solid code so as an example with Studio Webb when we developed the prototype years ago I just put a guy on there who was wasn't he was not terribly experienced in the backend but I said you know what just throw it out here's the concept this is the view that's what we're gonna do and we just got it out the door as quickly as possible and parts of it was really stinky code the house for sure but we got it up the door and we got it into the hands of real users schools and end-users etc and that was important because when we actually had users actually using the product then we learned exactly how the product should be and I kept just revising that code refining that code refining that code until version 4 which we released a little while back and was actually not bad for maybe six months ago anyway version foresty the web was actually a total rewrite from scratch but that's where the codebase was solid I read from beginning because we knew the youths case intimately right we had all about experience from versions one through three with the original studio web years of experience using the app and an evolving app so when we develop version 4 it was super solidly built but again you got to remember software is generally an iterative process and you want to get through your iterations as quickly as possible with each pass each iteration the quality of the software will improve finally you want to write good documentation good documentation is huge because it will help you remember why you made certain architectural decisions and the code will help you transfer the knowledge to the next to the people who might get on the project so you've got if you have software that's going to be successful in any way you want to have good documentation it's just so important in terms of the quality of the project and in fact when it comes to open source software what are the big factors or differentiates the successful open source project versus a failures is good documentation so there you go I have much more to say on the subject but my camera is giving me the flashing light saying that's it buddy you got no more time so that's it for today I hope you find this vlog useful
Info
Channel: Stefan Mischook
Views: 78,659
Rating: 4.9592719 out of 5
Keywords: developers, developer vlogs
Id: kX2j_A-gujo
Channel Id: undefined
Length: 12min 47sec (767 seconds)
Published: Wed Nov 27 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.