Transcript for:
Effective Coding Learning Strategies

all you need to learn to code these days is a laptop and an internet connection give it 3 or 4 months and you can start working as a software engineer sounds simple right despite how easy some 20-year-olds might make it seem on the internet I'm 23 years old and I make $157,000 a year my first job out of college as a software engineer coding is still one of the most challenging skills to learn when I learned to code nearly a decade ago I wasted so much time on tutorials that took me nowhere and memorizing syntax that ended up being useless so in this video I'm going to go over what I would do if I had to learn to code all over again the resources that would I would use and the pitfalls to watch out for the first part is developing the right mindset the hardest part about learning to code isn't the syntax algorithms or even debugging when something goes wrong it's showing up day after day dealing with one frustration after another and not knowing if all this work is even going to pay off there will be moments when you'll question whether or not you even have what it takes but you need to understand that literally everybody goes through the same thing once you accept that it will be difficult and that it's only temporary it actually gets easier in the book The Dip by Seth Goden he describes these moments as the SLO between starting and Mastery when the excitement of starting to learn has worn off and the difficulty has set in but it's the fact that most people won't be able to push through this dip that makes it so valuable and keeps out the people that aren't as serious when you're just starting to code the biggest risk is you losing motivation because it turns out to be a lot harder and takes more time than you initially thought you might see someone on YouTube learn to code in 4 months and assume that it's going to take you the same amount of time but everybody starts from a different spot and someone with a technical background in math or engineering they're going to be able to pick up the concepts and the logic a lot faster so there's really no point in comparing yourself 5 years from now it's not really going to matter that much whether it took you a year or 4 months to learn to code a good idea would be to be really istic with what other commitments you have on a day-to-day basis and how much time and energy you can actually dedicate to learning to code from personal experience and talking to peers and what I see online it's not uncommon to hear people taking 6 months to more than a year of full-time study in order to become employable as a developer if I had to start learning all over again the next thing I would focus on is how to learn efficiently in the book ultr learning the author completed a challenge where he learned the entire MIT compsite curriculum on his own online and passed all the exams within a year I know I literally just mentioned setting realistic expectations but this book blew my mind in regards to showing me what our true potential was after reading this book I came to realize that the way we were taught to learn in school was completely ineffective the methods we were conditioned to use like passively watching a lecture and wrote memorization was often a huge waste of time I could go on and on about all the methods discussed in the book and if you you want to dig deeper I highly recommend you read the book but for the sake of time I'm going to mention two of the key methods that I think are really relevant here first you should be constantly testing yourself as soon as you learn A New Concept i' try applying it to an application or if you need additional questions I would even ask chat GPT for more questions to test your knowledge by the way if you enjoy these videos on the tech industry and software development make sure to give me a like And subscribe so you don't miss an upload AI with all of its downsides and problems is an absolute GameChanger when it comes to helping you learn to code and test yourself and I only wish I had access to something like this back when I was learning to code for example if you've just learned about JavaScript promises the next thing you can do is prompt chat gbt for more challenges and questions testing your understanding in increasing difficulty the second method is practice spaced repetition sometimes I want to cry just thinking about all the tutorials I watched and the books that I've read only to forget the information a few days later learning new things without consistently practicing the things that you've already learned is probably the single biggest waste of time Studies have shown over and over again that space repetition and active recall are some of the most effective strategies to encode new information into long-term memory essentially what you want to do is review what you've just learned a day or so after you've learned it and then gradually increase the time in between the reviews I'll be the first to admit I didn't do this enough because it's so much more enjoyable to learn new information but I wasted so much time pouring into a leaky bucket so if I could go back in time I'd make sure to make coding a daily habit and actively apply past Concepts that I've learned to new projects to ensure I don't forget them entirely I can't stress how important it is for your motivation and long-term success to knock out a few quick wins early on nothing drains your excitement more than spending hours in the beginning trying to set up your local environment before you can even do anything for complete beginners with absolutely no background in coding I would actually check out code academy because there is no setup required you literally just sign up and you are coding and learning and running it within 5 minutes if you're a completely new programmer you could do a course or two just to gain confidence with basic programming and see if this is something you want to commit to for the next few months or years the next thing I would do is to go on online and find a tried and true curriculum so you don't get overwhelmed by all the things you need to learn and get analysis paralysis trying to decide what to tackle at each step there are a ton of resources out there online but from a web development perspective my favorite is the Odin project because they are first of all free and secondly heavily focused on exact skills to help you get employed I used to work at a coding boot camp and I can tell you that um coding boot camp curriculums are very very similar to what is laid out by the Odin project next up is data structures and algorithms the only downside with online coding boot camp curriculums like Odin project is that they only briefly cover data structures and algorithms while you're probably never going to need to implement your own sorting algorithm on the job you will probably be tested on your DSA knowledge during the interview process so it's absolutely worth spending extra time in this area if I'm being honest I'm not the biggest fan of programming books because I'd rather learn by doing alongside a video tutorial but I highly recommend checking out data structures and algorithms in Java by Robert lefor yes it's like 700 pages but it's extremely comprehensive and will cover pretty much everything you need to know to prepare for your interviews it uses really simple plain language that's easy to understand and for me it's the only book about algorithms that didn't want to make me tear my hair out so go check it out the next part is I think the most important it's to master the principles one of my biggest regrets while learning to code is spending so much time overthinking which language to learn should I learn Java or python which one is going to be more popular in 5 years which one's going to look better on my resume which one has higher earning potential here's the thing it doesn't really matter just pick any modern popular language because they'll have lots of documentation and high quality learning resources online and as a bonus it might make you more hirable understanding the principles behind one language deeply is far more useful than being just okay at a bunch of different languages now speaking of understanding underlying principles today's sponsor brilliant can help you out with interactive easy to follow courses on a variety of topics like computer science fundamentals if you're a junior developer Brilliance a fantastic place to start learning code the courses walk you through Visual puzzles and challenges that get you to think critically right off the bat most courses are designed to be accessible from anywhere and in as little as 15 minutes a day I've used brilliant to learn more about topics that I'm always curious about and that are really relevant today like Quantum Computing and data analysis all of their courses are designed to scale with your skill level if you're interested and would like to try it out for yourself for free for 30 days visit brilliant.org cathine Lee or scan the link on screen or click the Link in the video description these links will also give you 20% off in annual premium membership thank you so much brilliant for sponsoring this video if you understand programming Concepts like for Loops while Loops conditional logic like the back of your hand then picking up a brand new language is fairly trivial ultimately it's the underlying principles that you really need to understand personally if I had to start all over again I would probably go with python it resembles natural language the most without being overly verbose and most importantly it's Brer friendly and popular like I mentioned before because it's so popular that's going to mean that there's a lot of high quality learning resources and documentation online for python as well as lots of jobs available once you're ready to start looking all right now it's project time by now you should have already created a few applications by following tutorials and now it's time to do a couple of bigger projects when it comes to picking a Tex stack I also wouldn't stress too much because the focus here is getting practice solving real problems and applying the knowledge that you you've accumulated into real life scenarios if I were to start my own project today I'd probably use react for the front end node.js and express for the backend and postgress as my database this textto is fairly popular with lots of good documentation and support online and it's flexible enough that I can add more to it as I need when it comes to picking what to build I would decide on something that you can realistically finish in a couple weeks so that you stay motivated maybe it solves a problem you personally have and ideally it utilizes some sort of public API so you get experience working with the messiness of real world data some of my own ideas include um a Pomodoro app that also tracks how many hours of deep work I've done over the week a workout tracker a simple Trello board or a news feed that pulls data from an external API the most important part here is that you finish what you start way too often we start an ambitious new project spend time setting it up writing all of this boiler plate code only to abandon it a few days later when it actually gets hard by doing this not only are you wasting time that you've already invested doing all this shallow work and writing the boiler plate code you also develop the habit of quitting when it gets hard projects are always easy to start and difficult to finish but that's really where the real learning begins learning is like compound interest the greatest gains are often made near the end if you are patient and persistent enough often times times it's when you finish a project when you reap the rewards of deep understanding and finally begin to develop Mastery if you enjoyed this video I did another one recently that goes deeper into the biggest mistakes that made coating a lot harder than it needed to be thank you so much for watching and I will see you over there [Music]