Learn To Code Like a PRO and Not Waste Time

The Art of Programming: A Mindset Over Memorization

As I reflect on my own learning journey as a programmer, I realize that one of the most crucial aspects of mastering a programming language is not memorizing syntax but rather developing a deep understanding through hands-on experience. When I was starting out, I would spend hours watching 30-minute coding tutorials that seemed to drag on for hours. It took me two hours, three hours, or even more to get through them because I would pause the video to try something new, predict what the instructor was going to do next, and use the tutorial as a tool but not solely rely on it to get all of the information. This approach helped me stay mentally stimulated and engaged throughout my learning process.

I encourage you to adopt this same mindset when approaching coding sessions. Instead of simply watching videos or reading articles, remember that most of your time should be spent writing code in your editor. Use the video, article, book, or exercise as a tool to guide your learning, but don't rely solely on these resources. Take the initiative to try something new, break things, get errors, ask questions, and look up content. Make this process mentally stimulating by spending at least the same amount of time messing around with the concept afterwards.

The only way you learn is by challenging yourself into struggle. By putting your hands on the keyboard and writing as much code as possible, you'll notice that syntax becomes second nature. When you've written hundreds or thousands of lines of code, you'll find that you naturally know how to write this syntax without even thinking about it. This muscle memory takes time to develop, but it's essential for becoming proficient in programming.

Now, I want to bring all of this full circle with my final point: building difficult projects. If you really want to get good at programming, you need to challenge yourself with the most difficult projects possible. Once you've learned the basics and have a certain level of competence in a language or framework, it's time to take on more complex projects that push your skills to the limit. This is where you'll see significant growth and development as a programmer. You'll learn how to break down problems into manageable parts, persevere through difficulties, and find creative solutions.

When I say "build something difficult," I mean pick a project that seems impossible or outside of your skill set and tackle it head-on. It's not about completing the entire project in one go; it's about making progress, asking for help when needed, and learning from your mistakes. Companies like to conduct coding interviews because they want to see how you think, break down problems, and persevere through challenges. The same applies to your personal projects. By taking on difficult challenges and working towards them, you'll develop the critical thinking skills that will serve you well throughout your career and life.

Remember, becoming a good programmer takes time, effort, and continuous learning. It's not a task that can be completed in 6-12 months; it's a journey that requires dedication and persistence. By adopting this mindset and putting in the hours to practice and challenge yourself, you'll become a proficient programmer and develop the skills necessary to succeed in this field.

"WEBVTTKind: captionsLanguage: entens of millions of people try to learn how to code every single year but only a small percentage succeed and that's because most people don't know how to learn and learning to code is a lot different than other subjects that you're traditionally taught in school so in this video I'm going to break down the exact road map the exact process and the way that you can learn how to code like a pro so that you stop wasting your time and actually start making progress Now quickly let me give some credit to the coding sloth for this video idea I've definitely got a lot of different things to say but his video is really well done so definitely check it out now the first thing I want to mention to you is that to learn is to struggle now I say this because learning how to code is really difficult I can tell you firsthand that when I was learning how to code especially because I was starting as a child when I was about 12 I found this really really hard it took me years to even get decent at coding and most nights I would just sit with my head on the desk wondering what I was doing wrong and making no progress now in hindsight those are actually the moments where you learn the most when you're struggling when things are difficult when you're super frustrated when you've been working on a bug for hours but you Perse and you eventually get through it that's when you really learn so I want to remind you that coding is difficult you are going to struggle it's going to be frustrating and that's actually the moments that you want to look for you want to do tough problems you want to challenge yourself and you want to feel like at some point you're making no progress and you're running into a wall because being able to overcome those obstacles is what makes a great programmer all programmers are are problem solvers that's really all they do they have a problem and they need to find a way to solve it and the more you can practice doing that the better you're going to be at programming so don't focus on all the syntax don't focus on all the fancy features focus on how do I take a problem solve that problem and overcome all of the obstacles that I run into so remember learning is struggling and when you're struggling the most that's probably when you're actually learning and when you're really picking up those skills you need to be competent programmer now as much as you definitely want to struggle and work on really difficult problems there's obviously other things you can do that are going to help accelerate your learning and make sure you're not wasting a ton of time now this video is a great start I'm going to share some of those Resources with you but if you want a more tangible resource to actually learn those programming skills then check out the sponsor of this video brilliant brilliant is where you learn by doing with thousands of interactive lessons in math data analysis programming and AI they adopt the first principles approach ensuring you understand the why behind each concept every lesson is interactive engaging you in Hands-On problem solving which has proven to be six times more effective than simply watching lectures the content is developed by top-notch Educators researchers and professionals from institutions like MIT Caltech and Google brilliant emphasiz is enhancing your critical thinking abilities through active problem solving rather than memorization as you learn specific subjects you're simultaneously training your mind mind to think more effectively consistent daily learning is crucial and Brilliant makes it effortless with their bite-sized lessons allowing you to acquire meaningful knowledge in just a few minutes each day perfect for replacing idle screen time additionally brilliant offers a comprehensive range of computer science and python courses as well as extensive AI workshops guiding you from complete beginner to an expert through practical Hands-On lessons try everything brilliant has to offer for free for 30 days by visiting brilliant.org SL Tech with Tim or click the link in the description you also get 20% off a premium annual subscription so now that we understand that this is going to be difficult I want to give you some pointers that will help you learn more effectively now most people go through life and they never realize that learning how to learn is actually a skill being able to learn something quickly and understanding what methods resonate with you is the number one way that you can improve the speed at which you're going to learn programming what I mean by that is understanding for example what media you learn best through is it auditory is it visual is it having your hands on the keyboard is it having someone beside you coaching you through things you need to figure out the way that's most effective for you personally for me I actually learn best by hearing things so if I hear someone talk I can almost memorize everything that they say I can recall that very quickly and hearing things auditorily is a lot better for me than for example seeing it on a screen now that's going to differ from a lot of other people maybe some people are much more visual Learners maybe they actually need someone beside them guiding them through things but you need to figure out the way in which you learn and you need to go all in on those types of resources some people are going to learn a lot better by reading through an article some are going to have a lot better experience going through videos or having maybe an in-person class you need to understand which of these mediums works best for you and then find the highest quality resources within that Medium so what you should do ideally is try all of them try reading a book try watching a bunch of videos try listening to a podcast or a lecture now obviously that's not as applicable with something like programming you get the point try all of these different mediums figure out which responds or resonates with you the best and then go and find the highest quality instructors the highest quality courses and really spend a lot of time finding the best resource to learn from one of the reasons a lot of people struggle is they never find a good resource to use they click on the first YouTube video or the first website article and they don't understand it from that and they immediately rule out the programming is for them there's so many different people online there's so many different instruction Styles and teaching styles for example I have thousands of videos teaching programming a lot of people love them but for some people it's not their style so you need to find what works best for you start with the medium and then go and find the best instructional resources you can by trying a bunch of different stuff don't feel like you're just bailing out or jumping out if you're quitting after a few minutes if you know this person isn't for you and you're not meshing with their style don't waste your time and move on to someone else because there's so many options out there now at this point you're probably saying okay all of that sounds great but how do I know what I'm supposed to learn now that's the right question to be asking because the biggest mistake that wastes so much time is people don't know what they're supposed to learn they wake up every morning they go to the computer they have that burst of motivation they want to learn coding they want to land a job they have some kind of goal in mind but they have no idea what's actually going to bring them in that direction that means they learned so many different random topics but none of them really progress them towards their goal and even if they do they have no idea how much progress they're actually making so that's why what I need you to do is to create some kind of road map now you can do this by yourself you can follow along with a road map provided by someone like me or you can go through something like a course I have one for example with course careers even if you don't want to take that course you can just copy the exact Ro map that we have in there and learn all of those topics the point is you need to have at least some kind of list that's guiding you with what you need to learn now I can tell you as someone who's an entrepreneur the most difficult parts of my day are figuring out what I actually need to do and the exact same thing applies when you're trying to learn a taunting task like programming coding software engineering you need to come up with some kind of list some kind of road map and use that as that guiding principle and that thing you always go back to to understand what it is you're going to do today what you're going to learn next what you're going to move towards and to see the progress that you're making what I used to do that was really effective for me when what I was learning is I would write out the next few goals that I had for maybe the upcoming week on a whiteboard and I would physically tick those off so that as the week went on I could actually see the progress that I was making so when it comes to programming what you need to do is determine your goal do you want to land a job do you want to build a hobby project is there something you want to make specifically what exactly is it that you want to do what's a longer term goal like what do you want to get out of this in 2 years and what do you want to get out of this in the next few months do you want to learn JavaScript Do You Want To Learn Python you need to have some kind of these goals in mind now once you have that goal you can create a road map that will guide you in that direction figure out what exactly you need to learn step by step Lesson by lesson if you wanted to learn a language like python write those down put them in a spreadsheet however you want to organize it and actually keep track of your progress that way when you get up in the morning and you want to work towards your goal you know exactly what you need to do now once you have your road mapap the next and probably most important thing that you need to understand is that the only way you get good at coding is by doing a ton of coding you need to put your hands on the keyboard and in any learning session you have you need to spend a majority of your time writing code as opposed to doing anything else so what I mean by that is let's say today you're going to dedicate 4 hours to learning how to code in that 4 hours you should be spending most of that time actually writing code now obviously you're probably going to have to watch a video or maybe you're going to have to go to an article or you're going to have to read some chapters of a book or whatever learning style works best from you you still need to learn the topic you need to get the theory but the point is that most of that session should be you applying it should be you practicing messing around breaking things and actually working on coding in your editor the biggest mistake I see most people make is they think they can learn how to code by simply watching other people do it for example I have really long video courses my course with course careers has over 40 hours of content now people think that if they just watch those 40 hours of content they're going to know how to code no the point is you need to watch the video while you're watching the video you should have your code editor open alongside it and you should be typing along with me you should be doing the exact same stuff that I'm doing and you should be breaking things along the way pausing the video predicting what's going to come next constantly challenging yourself and making sure that this is mentally stimulating if you watch a 30-minute coding tutorial that might take you two hours three hours to get through that's how long it took me to get through them when I was starting out when I was a lot younger and that's because I would pause the video I would try something new I would try to predict what the instructor was going to do next I would use this as a tool but not solely rely on just watching the content to get all of the information so remember that in any coding session that you have when you're trying to learn something most of your time should actually be in your editor writing code use the video use the article use the book The Exercise whatever as a tool help it guide your learning but don't rely on that and don't just simply binge watch videos again any video you watch you should be spending at least the same amount of time messing around with the concept afterwards trying something out breaking something getting errors asking questions looking up content really make sure you make this as mentally stimulating as possible because again the only way you learn is to challenge yourself into struggle so whenever you're learning please put your hands on the keyboard and actually write as much code as you possibly can and by the way if you do this you're going to notice you don't struggle with syntax anymore because the more you code the the easier it is to just naturally memorize this syntax it's not something you should actually be aiming to do to memorize all of this code but you'll find that you just know how all of these things work you know what the syntax is when you write a ton of code because you've done it with muscle memory hundreds upon hundreds of times so now I want to bring all of this full circle with my final point which is to build difficult stuff if you really want to get good at programming you need to challenge yourself with the most difficult projects you could possibly imagine once you've learned the the once you have that kind of basic competence in programming you know a language you know a few Frameworks you've gone through you know kind of the tutorial hell of watching a ton of videos the time when you really get good is when you spend a lot of time working on a project that's when you're really going to see those skills develop and you're not only just going to get better at programming you're going to get better at learning and figuring things out you'll notice that if you actually take everything I've said in this video into practice the times when you learn the most are when you're thinking the hardest and you can't think any harder than when you try to solve a problem that you have no idea how to solve now that's why companies like to do these coding interviews they want to see the way in which you think the way in which you break down problems how you persevere how you know look for different solutions in different Avenues and the same thing applies here when I tell you to build something difficult so what I mean is pick some really difficult project something that you couldn't imagine you'd possibly be able to build and tackle it try it attempt it now you might not be able to complete this you might not even get 20% of the weight there but the point is the only way to get better is to do harder stuff it's just like going to the gym you're not going to get stronger unless you lift heavier weights that's exactly what you need to do with programming keep giving yourself bigger challenges harder problems and work your way towards them it doesn't matter if you fail or if you complete all of it the point is you're going out of your way to become a better Problem Solver and developing those skills that you're going to use throughout your entire career and to be honest throughout the rest of your life the reason why I love teaching people programming even if they're not going to be coming software engineer is because it really trains that critical thinking skill and it teaches you to go out of your way and find the solution using any resource you have available to you now once you've done that you've challenged yourself do it again and again and again and again and once you've done it hundreds if not thousands of times then you're going to be a good programmer this takes a lot of hours of practice yes it is possible to become a software engineer in 6 8 12 months but you can only do that if you put an insane amount of time in and you have to understand you're still just at the very beginning of your journey because this is a field where you need continuous learning continuous development and the best software Engineers are the best because they write the most amount of code so with that said guys I'm going to wrap up the video here if you enjoyed make sure to leave a like subscribe to the channel and I will see you in the next onetens of millions of people try to learn how to code every single year but only a small percentage succeed and that's because most people don't know how to learn and learning to code is a lot different than other subjects that you're traditionally taught in school so in this video I'm going to break down the exact road map the exact process and the way that you can learn how to code like a pro so that you stop wasting your time and actually start making progress Now quickly let me give some credit to the coding sloth for this video idea I've definitely got a lot of different things to say but his video is really well done so definitely check it out now the first thing I want to mention to you is that to learn is to struggle now I say this because learning how to code is really difficult I can tell you firsthand that when I was learning how to code especially because I was starting as a child when I was about 12 I found this really really hard it took me years to even get decent at coding and most nights I would just sit with my head on the desk wondering what I was doing wrong and making no progress now in hindsight those are actually the moments where you learn the most when you're struggling when things are difficult when you're super frustrated when you've been working on a bug for hours but you Perse and you eventually get through it that's when you really learn so I want to remind you that coding is difficult you are going to struggle it's going to be frustrating and that's actually the moments that you want to look for you want to do tough problems you want to challenge yourself and you want to feel like at some point you're making no progress and you're running into a wall because being able to overcome those obstacles is what makes a great programmer all programmers are are problem solvers that's really all they do they have a problem and they need to find a way to solve it and the more you can practice doing that the better you're going to be at programming so don't focus on all the syntax don't focus on all the fancy features focus on how do I take a problem solve that problem and overcome all of the obstacles that I run into so remember learning is struggling and when you're struggling the most that's probably when you're actually learning and when you're really picking up those skills you need to be competent programmer now as much as you definitely want to struggle and work on really difficult problems there's obviously other things you can do that are going to help accelerate your learning and make sure you're not wasting a ton of time now this video is a great start I'm going to share some of those Resources with you but if you want a more tangible resource to actually learn those programming skills then check out the sponsor of this video brilliant brilliant is where you learn by doing with thousands of interactive lessons in math data analysis programming and AI they adopt the first principles approach ensuring you understand the why behind each concept every lesson is interactive engaging you in Hands-On problem solving which has proven to be six times more effective than simply watching lectures the content is developed by top-notch Educators researchers and professionals from institutions like MIT Caltech and Google brilliant emphasiz is enhancing your critical thinking abilities through active problem solving rather than memorization as you learn specific subjects you're simultaneously training your mind mind to think more effectively consistent daily learning is crucial and Brilliant makes it effortless with their bite-sized lessons allowing you to acquire meaningful knowledge in just a few minutes each day perfect for replacing idle screen time additionally brilliant offers a comprehensive range of computer science and python courses as well as extensive AI workshops guiding you from complete beginner to an expert through practical Hands-On lessons try everything brilliant has to offer for free for 30 days by visiting brilliant.org SL Tech with Tim or click the link in the description you also get 20% off a premium annual subscription so now that we understand that this is going to be difficult I want to give you some pointers that will help you learn more effectively now most people go through life and they never realize that learning how to learn is actually a skill being able to learn something quickly and understanding what methods resonate with you is the number one way that you can improve the speed at which you're going to learn programming what I mean by that is understanding for example what media you learn best through is it auditory is it visual is it having your hands on the keyboard is it having someone beside you coaching you through things you need to figure out the way that's most effective for you personally for me I actually learn best by hearing things so if I hear someone talk I can almost memorize everything that they say I can recall that very quickly and hearing things auditorily is a lot better for me than for example seeing it on a screen now that's going to differ from a lot of other people maybe some people are much more visual Learners maybe they actually need someone beside them guiding them through things but you need to figure out the way in which you learn and you need to go all in on those types of resources some people are going to learn a lot better by reading through an article some are going to have a lot better experience going through videos or having maybe an in-person class you need to understand which of these mediums works best for you and then find the highest quality resources within that Medium so what you should do ideally is try all of them try reading a book try watching a bunch of videos try listening to a podcast or a lecture now obviously that's not as applicable with something like programming you get the point try all of these different mediums figure out which responds or resonates with you the best and then go and find the highest quality instructors the highest quality courses and really spend a lot of time finding the best resource to learn from one of the reasons a lot of people struggle is they never find a good resource to use they click on the first YouTube video or the first website article and they don't understand it from that and they immediately rule out the programming is for them there's so many different people online there's so many different instruction Styles and teaching styles for example I have thousands of videos teaching programming a lot of people love them but for some people it's not their style so you need to find what works best for you start with the medium and then go and find the best instructional resources you can by trying a bunch of different stuff don't feel like you're just bailing out or jumping out if you're quitting after a few minutes if you know this person isn't for you and you're not meshing with their style don't waste your time and move on to someone else because there's so many options out there now at this point you're probably saying okay all of that sounds great but how do I know what I'm supposed to learn now that's the right question to be asking because the biggest mistake that wastes so much time is people don't know what they're supposed to learn they wake up every morning they go to the computer they have that burst of motivation they want to learn coding they want to land a job they have some kind of goal in mind but they have no idea what's actually going to bring them in that direction that means they learned so many different random topics but none of them really progress them towards their goal and even if they do they have no idea how much progress they're actually making so that's why what I need you to do is to create some kind of road map now you can do this by yourself you can follow along with a road map provided by someone like me or you can go through something like a course I have one for example with course careers even if you don't want to take that course you can just copy the exact Ro map that we have in there and learn all of those topics the point is you need to have at least some kind of list that's guiding you with what you need to learn now I can tell you as someone who's an entrepreneur the most difficult parts of my day are figuring out what I actually need to do and the exact same thing applies when you're trying to learn a taunting task like programming coding software engineering you need to come up with some kind of list some kind of road map and use that as that guiding principle and that thing you always go back to to understand what it is you're going to do today what you're going to learn next what you're going to move towards and to see the progress that you're making what I used to do that was really effective for me when what I was learning is I would write out the next few goals that I had for maybe the upcoming week on a whiteboard and I would physically tick those off so that as the week went on I could actually see the progress that I was making so when it comes to programming what you need to do is determine your goal do you want to land a job do you want to build a hobby project is there something you want to make specifically what exactly is it that you want to do what's a longer term goal like what do you want to get out of this in 2 years and what do you want to get out of this in the next few months do you want to learn JavaScript Do You Want To Learn Python you need to have some kind of these goals in mind now once you have that goal you can create a road map that will guide you in that direction figure out what exactly you need to learn step by step Lesson by lesson if you wanted to learn a language like python write those down put them in a spreadsheet however you want to organize it and actually keep track of your progress that way when you get up in the morning and you want to work towards your goal you know exactly what you need to do now once you have your road mapap the next and probably most important thing that you need to understand is that the only way you get good at coding is by doing a ton of coding you need to put your hands on the keyboard and in any learning session you have you need to spend a majority of your time writing code as opposed to doing anything else so what I mean by that is let's say today you're going to dedicate 4 hours to learning how to code in that 4 hours you should be spending most of that time actually writing code now obviously you're probably going to have to watch a video or maybe you're going to have to go to an article or you're going to have to read some chapters of a book or whatever learning style works best from you you still need to learn the topic you need to get the theory but the point is that most of that session should be you applying it should be you practicing messing around breaking things and actually working on coding in your editor the biggest mistake I see most people make is they think they can learn how to code by simply watching other people do it for example I have really long video courses my course with course careers has over 40 hours of content now people think that if they just watch those 40 hours of content they're going to know how to code no the point is you need to watch the video while you're watching the video you should have your code editor open alongside it and you should be typing along with me you should be doing the exact same stuff that I'm doing and you should be breaking things along the way pausing the video predicting what's going to come next constantly challenging yourself and making sure that this is mentally stimulating if you watch a 30-minute coding tutorial that might take you two hours three hours to get through that's how long it took me to get through them when I was starting out when I was a lot younger and that's because I would pause the video I would try something new I would try to predict what the instructor was going to do next I would use this as a tool but not solely rely on just watching the content to get all of the information so remember that in any coding session that you have when you're trying to learn something most of your time should actually be in your editor writing code use the video use the article use the book The Exercise whatever as a tool help it guide your learning but don't rely on that and don't just simply binge watch videos again any video you watch you should be spending at least the same amount of time messing around with the concept afterwards trying something out breaking something getting errors asking questions looking up content really make sure you make this as mentally stimulating as possible because again the only way you learn is to challenge yourself into struggle so whenever you're learning please put your hands on the keyboard and actually write as much code as you possibly can and by the way if you do this you're going to notice you don't struggle with syntax anymore because the more you code the the easier it is to just naturally memorize this syntax it's not something you should actually be aiming to do to memorize all of this code but you'll find that you just know how all of these things work you know what the syntax is when you write a ton of code because you've done it with muscle memory hundreds upon hundreds of times so now I want to bring all of this full circle with my final point which is to build difficult stuff if you really want to get good at programming you need to challenge yourself with the most difficult projects you could possibly imagine once you've learned the the once you have that kind of basic competence in programming you know a language you know a few Frameworks you've gone through you know kind of the tutorial hell of watching a ton of videos the time when you really get good is when you spend a lot of time working on a project that's when you're really going to see those skills develop and you're not only just going to get better at programming you're going to get better at learning and figuring things out you'll notice that if you actually take everything I've said in this video into practice the times when you learn the most are when you're thinking the hardest and you can't think any harder than when you try to solve a problem that you have no idea how to solve now that's why companies like to do these coding interviews they want to see the way in which you think the way in which you break down problems how you persevere how you know look for different solutions in different Avenues and the same thing applies here when I tell you to build something difficult so what I mean is pick some really difficult project something that you couldn't imagine you'd possibly be able to build and tackle it try it attempt it now you might not be able to complete this you might not even get 20% of the weight there but the point is the only way to get better is to do harder stuff it's just like going to the gym you're not going to get stronger unless you lift heavier weights that's exactly what you need to do with programming keep giving yourself bigger challenges harder problems and work your way towards them it doesn't matter if you fail or if you complete all of it the point is you're going out of your way to become a better Problem Solver and developing those skills that you're going to use throughout your entire career and to be honest throughout the rest of your life the reason why I love teaching people programming even if they're not going to be coming software engineer is because it really trains that critical thinking skill and it teaches you to go out of your way and find the solution using any resource you have available to you now once you've done that you've challenged yourself do it again and again and again and again and once you've done it hundreds if not thousands of times then you're going to be a good programmer this takes a lot of hours of practice yes it is possible to become a software engineer in 6 8 12 months but you can only do that if you put an insane amount of time in and you have to understand you're still just at the very beginning of your journey because this is a field where you need continuous learning continuous development and the best software Engineers are the best because they write the most amount of code so with that said guys I'm going to wrap up the video here if you enjoyed make sure to leave a like subscribe to the channel and I will see you in the next one\n"