How to Learn to Code FAST (Do This or Keep Struggling)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
one of the worst pieces of advice i've seen recently about learning to code came from twitter somebody actually tweeted that you know programming is all about patience if you just keep working hard and you keep at it you'll eventually get there no like no no and no this is not all that programming is about if you're not doing the right things and you're not practicing the right way then this can absolutely take you years to figure out if you actually ever do so i want to actually help you to avoid that fate of taking years to land that first job and so in this video i'm going to explain exactly how to learn to code as fast as possible using a lot of the proven principles of learning and skill acquisition now if you follow these principles i'm going to lay out here of course you'll make progress faster and you'll avoid some of those long periods of getting stuck but it still will require hard work it's still going to require patience and no it's not gonna be some lame advice like you know clean your room so you have an organized mind or you know take this no tropic supplement to enhance your brain so with all that out of the way let's go ahead and dive right in the first problem that many of you have is a misunderstanding of the 10 000 hour rule so the ten thousand hour rule is popularized by malcolm gladwell's book outliers where he basically claims that you know if you just spend ten thousand hours practicing something like the violin you will become a master if you've ever read the book he actually makes a pretty compelling argument for the 10 000 hour rule citing bill gates and the beatles he really postulates that they put in their 10 thousand hours to reach that mastery level however this rule of thumb only works if you practice in the optimal way a very good illustration of this point here comes from my own experience of playing beach volleyball i've played thousands of hours of beach volleyball over the past five years with my friends and i can tell you that i'm not maybe one or two percent better than when i started this is because i just show up to the beach and play volleyball with my friends it doesn't matter how many hours i do that because the type of practice i'm doing is not targeted practice to make me better and just like many of you guys who are just watching random tutorials if you watch 10 000 hours of tutorials that will not make you a programmer so my very first point here is the key to rapid skill increase is to engage in what's called deliberate practice anders ericsson who is a psychologist whose research really focused around expertise and human performance coined this term deliberate practice now i've simplified the key parts of deliberate practice that are going to be important for you and they are as follows number one deliberate practice requires that you have clear and well-defined goals so it means when you sit down to study or practice what skill exactly are you trying to improve it could be as simple as saying i'm working on my problem solving skills that's why i'm building this portfolio project but the more you can laser focus on specific issue the better for example let's say you sit down to study some leak coding or hacker rank problems you really want to make sure you know exactly what you're focused on for that session i mean if you're newer to this i can give you a really easy suggestion i notice a lot of you guys who start doing hacker rick and lee coke problems just struggle with understanding what the problem is asking so what you can do when you sit down to study is really say okay i'm going to sit down and really try my best to comprehend what the question is asking so i'm not even going to write any code i'm just gonna maybe go through one two or three problems to try to understand what they're asking the second part of deliberate practice is that it requires your 100 focus and attention so if this is something that you can do while you're watching a youtube video in the background listening to podcasts that's not the type of practice that you want to get into to get the most out of something like building a portfolio project you often have to go very deep into thought maybe you are thinking about what code you should write next maybe there's a bug that you ran into and you have to really think deeply and really analyze your code but that's going to require you to have long periods of thought and concentration the third component of deliberate practice is that it requires going outside of your comfort zone and this is so important everybody loves to show up and practice on the things that they're good at nobody likes to show up and practice on the things that they're not good at because you're going to get a lot of feedback that well you're not good i mean maybe even that you suck but if you're ever going to go beyond a basic understanding of programming you have to feel uncomfortable let's say you're learning javascript for example a common difficult concept that you're going to run into at some point is closures now you're going to read some articles about closures watch some youtube videos that's going to be very comfortable but what's very uncomfortable is taking that knowledge you've learned and then applying it in some way so maybe using it in an actual problem somewhere but if you don't do this and push yourself outside of your comfort zone then you're always going to just stay exactly where you're at so those are the key parts of deliberate practice if you want to learn more about deliberate practice i'd actually recommend checking out anders erickson's book called peak secrets of the new science of expertise now while we're on the subject of speed i want you to move at the speed of light which is 186 000 miles per second down the page to smash the subscribe button it's greatly appreciated okay so the next principle to implement in your approach to learning to code is actually something that i learned from playing video games during the pandemic last year i fell in love with a video game called rocket league and the concept is really simple it's basically you get to play three on three soccer matches online with other people but instead of controlling little guys on a field you're actually controlling little cars that try to hit a ball into a goal the game was actually a lot of fun for the first like one to two months but then i started getting frustrated with my lack of progression in my skills and you see there's a skill specifically i started to notice in the game that really can make you better see in the game you can actually jump up in the air and like shoot your car through the air so you can hit a ball into the goal it's called an aerial it's very very hard and i noticed that a lot of the better players i was playing with could do that the key thing that i did here was i identified a weakness so moving forward i knew if i wanted to get better i had to get better at aerials so instead of playing these three on three matches all the time instead i would just sit there and i would practice and i would do some of the drills that you could do where you could just jump up and hit a ball that's in the air over and over again and you want to know something it was actually really terrible like at first i could barely hit like maybe one out of every 10 balls in the air but i did it for a couple days and then moved it on to a couple weeks and the interesting thing happened i got better i was hitting you know three or four out of ten balls in the air and when i would play those three on three matches i suddenly was playing a lot better the important principle i'm demonstrating here is attacking your weaknesses directly this concept actually comes from one of my favorite books on how to teach yourself anything and that is the book ultra learning by scott young taking this back to programming you will likely encounter concepts or problems that show you where you are either weak or where you lack understanding one of the most common places that new javascript developers are weak at is really their understanding of non-blocking aka asynchronous programming so if you work with promises in javascript this is what i'm talking about now when most people run into something like promises they can make basic sense of it they can use it in a problem to get a desired outcome but if you ask them to do anything more complex than that that's where they really run into a wall if this happens to you it's a huge opportunity to attack this problem head on now how do you attack something head-on once you've clearly identified a weakness like understanding promises then you can do one of two things the first thing you could do is you can make note of it there are going to be times when you're working on something you recognize the weakness and you can't just stop what you're doing to really drill and focus on that weakness so the best you can do is basically make note of it so i actually recommend creating a apple note a google document that really lists out all of the weaknesses that you run into and you want to regularly update and drill them when you have time the second thing that you can do is to run through drills repeatedly so for something like the promise problem not understanding promises you can google something like javascript promise coding interview and see what some of the questions that pop up you can run through all of those and really the key of what that's going to do is it's going to allow you to work on different problems in different contexts repeatedly over and over again and eventually your understanding of it gets better and better and better and honestly this principle has probably been the one thing that has sped up my results the quickest okay so if you've followed everything i've laid out for you so far then this next part should be the icing on the cake that brings everything together now despite what you see in popular culture where success is just about grinding and hustling and working more and doing more and intensity right like cue the rocky training montage [Music] that's definitely not the key to success in fact i'd say that the key to rapid skill development is that you must treat your brain and your mind like an athlete treats their body so just like an athlete would never put in 100 hours of intense training per week neither should you in fact most athletes know the secret to success is really short but high intensity training sessions with very long periods of rest now just imagine how tired an olympic athlete would be after one or two hours of intense training well if you're listening to the advice so far where you're going to be outside your comfort zone where you're going to be 100 focused where you're going to be doing drills repeatedly over and over again well you should be really tired at the end of every day so my last point here would be that if you are going to maximize every ounce of effort that you put into this it is critical to learn to manage your energy levels effectively as far as energy management there are a few simple guidelines that i've seen work really well for people the first one is sleep so you have to make sure that you're getting your seven or eight hours of sleep per night to really recharge the batteries the problem that you really see when people start cutting back on sleep is that the part of the brain that regulates emotion that really helps you to maintain your discipline and show up weakens right that's called the prefrontal cortex and the problem is is that if you're not recharging your batteries the next day you're going to be grumpier you may not actually sit down to do the work and if you actually do the work you're less likely to be able to focus for long periods of time from there the next thing to keep your mind functioning at its peak is to take regular breaks right so if you run into an impasse you're working really hard it's very tempting to just keep pressing and pushing on it working for another half hour and another hour but in all reality those are really good times to take a break there's something called diffuse thinking so there's actively thinking about something and then there's actively thinking about something and then taking a break and letting your brain just kind of think about things in the background and one of the coolest things about this mode of thinking is that you can actually problem solve and be very creative when you're not thinking about things so you want to take breaks for that reason but also because you just need to recharge your batteries often i'd even say as far as study blocks make sure you're not studying for too long so if you're going to study let's say six hours in a day don't study six hours straight maybe break that up into three blocks of two hour study periods that's really how i approach things i never try to cram things in and it really keeps my mind fresh and i have much more energy because of it the last thing that i actually personally recommend for energy management is just regular moderate exercise so that could even just mean something as simple as walking around the block a few times per day i personally recommend about 10 000 steps for this but it could also be a weightlifting regimen it could be a running regimen it could be doing something like yoga the key component of this is make sure to get your body moving if you can get yourself outside that's a plus but the more that you can get sort of blood flowing through the body it will honestly do wonders for not only your ability to think but also for your ability to come up with creative solutions now in addition to everything that i've laid out for you here if you're looking to join a group of like-minded people then come join my free facebook group i will leave a link in the description below of how you can do that other than that thank you so much for watching and as always peace out
Info
Channel: Andy Sterkowitz
Views: 550,545
Rating: undefined out of 5
Keywords: self-taught programmer, self-taught software developer, programming, learn software development, learn programming, learning strategies for programmers, learning strategies for software development, programming learning tips, software development learning, how to learn programming, how to learn software development, how to learn software engineering, computer programming
Id: mw0LGzIKvoo
Channel Id: undefined
Length: 11min 0sec (660 seconds)
Published: Wed Nov 03 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.