@@MrPDTaylor It's funny I saw that when I woke up this morning as well after I had uploaded my video. It just happens to be pure coincidence. Brad's channel is awesome...I'm sure his video is spot-on.
Yes, this is amazing thank you for this tutorial, I am facing this problem right now and I feel that my effort worthless I spent the past two years learning passively but since a short time I started to learn actively and didn't balance but now I will. the second strategy you have all right but sometimes I can't do that and want to finish all my work in one day. the third one could be a summary is like a blog post, right? and I totally agree with you about the fourth and fifth strategy and hope do them
These strategies are great! Thanks for the tips. I think another strategy that works really well to re-enforce your learning is to teach what you learn if the opportunity presents itself. I find if I have trouble teaching a concept to someone I know I should go back and review it.
Thanks a lot. Some these I will definitely try to apply. Definitely the one about keeping track of all the questions I have. No single tutorial can explain absolutely everything it mentions. I am currently going through a tutorial on JavaScript but a couple of times I had to pause and go to a different source because something kept being mentioned but not explained (for example IIFEs, and .filter, .map, .reduce). Again, thanks
2:01 #1: Active vs Passive Learning Ratio (2h reading; 1h coding) 4:17 #2: Use "Spacing" (DON'T CRAM) 5:57 #3: Teaching Concepts (write about what you learned, explain how it works) 7:09 #4: Keep Track of Questions (you have when learning) 8:59 #5: Rest and Recover
I'm in college learning coding and it definitely crams so much knowledge into our brains in one week. College doesn't give you enough time to learn as each assignment is due each week on top of other subjects/classes due. Even if you don't understand the first week yet, you're forced to move onto the next week, and so on. It's overwhelming.
@@marcusmvpgoat1236 That's amazing! Do you have any recommendations on the best learning curve? I'm learning C++ and it's already so hard. But I'm getting it slowly.
5 Learning Strategies: 1st Sweetspot between Active and Passive learning 2h/1h ratio at the start, later 1h/1h 2st Apply Spacing - spread learning in more daily short stages 3rd Teaching/Reexplaining Concepts - teach, write blog, FB group post etc. 4th Keep Track of all the things you have questions about - Textpad or google doc 5th Rest and Recover - you need sleep that brain can recover and memorize, lack of sleep = lower IQ
I too am a self taught programmer. Been in the game for maybe 12 years now. I watch videos just to get other opinions on what other programmers like myself have to say. Sometimes i have to remind myself not to stress so much and that all answers are always in front of you. Even the most complex. What I've learned is that when you find that you need a real solution to a problem, the answer can be found in simple programs that you can develop within 10 minutes to which you can apply to your complex problem. The best tools I've come to use is a very good pen and a pad. That's where all of my logic gets worked put. Also in drawing out a visio diagram, i can draw out what is supposed to happen and how it supposed to happen and all that would be missing is the code.
I feel like sometimes I get really excited about a certain subject and just binge-study about it and then the next week rolls by and I've forgotten everything I learned. I'm going to implement spacing and see how it goes. Thanks for the insight!
When you learn something new, find a way to incorporate it into your own personal project right away (you DO have a personal working project, right?), and come back often and tweak it. Change how it works a bit. Reorder something. Implement it again, a bit differently. Make it a part of a working project that you are always working on. This keeps it in front of you, and your often revisiting it keeps it in mind.
@@robertzeurunkl8401 yes! Sometimes it feels like I'm learning just for learning's sake. Sometimes I feel like my personal study doesn't match up with my projects required for school. But I'm sure that if I look at my projects through new eyes that I will find a way to incorporate the things I'm learning on my personal time. I really appreciate the suggestion! I'll try to be better at applying the things I learn across my projects.
This is a video not only for programmers, but everyone. I'm an ELT department student. We learn other languages as well. I learned some good tactics to improve my Russian learning process thank to you. Good work :)
I really like strategy #1: The sweet spot for learning- passive vs. active learning. Sometimes it's easy to hide behind watching several video tutorials and not practicing what you've learned.
Nice job. I'm a software consultant and instructor, and these strategies are sppt on. I can suggest the following others: 1) Relearn, rewatch topics. It greatly increases comprehension. 2) Do formal exercises, and useful pet projects. 3) Don't get stuck. Ask for help from friends, or on websites for what you can't understand 4) Use dead time, for example, while commuting or in line, to listen to relevant podcasts.
Hi Andy. Thank you for sharing these tips. I'm currently learning HTML, CSS and JavaScript to help me level up with Google Analytics and Google Tag Manager. Your tips are really helpful and have helped me move closer to my goals. It's easy to get caught up in the 'conceptual' phase. Being accountable for time and what is being learnt on a particular day works wonders. Keep up the great work 🌟🏆
Some of the best advice I've heard anyone give on youtube (and many other platforms) about learning period not just programming. Going through EMT training my instructor always made us Learn a skill, Do a Skill Teach a skill because it made you look at it from several different angles. When I first began as a technical trainer teaching folks how to use the companies IT systems I came across an article that I need to track down that mentioned the average human mind needs information repeated 5 times before it triggers to store as long term memory. Back to my old EMT trainer the best lesson I took away from him was that any idiot can learn how to do something, to master a skill you learn WHY you do it. I love the fact that you mentioned you need to track your "whys".
Thanks, Andy Excellent video. I'd add 1) Block out chunks of quiet time like a solid, uninterrupted 1-3 hours for example 2) Remove distractions. Sit facing a white wall, if necessary, turn off tv, only listen to music with no lyrics so you don't try to sing along or if you're a musician, you're thinking of the melodies and rhythms . 3) Avoid starches and carbs around lunch time otherwise it's nap time soon after 4) Compartmentalize, if you can. If you work at an incubator or library or house, when you leave it or leave that room, leave it completely and do something totally unrelated.
I am a software developer I have looked at some of the tutorials online, some are adequately good, but the meat isn't there, what I mean by that, is these tutorials don't take you by the hand one step at a time in actually developing something, a final product, so the learner will know exactly what to create, how to link let's say "classes" how to use OOP in a most efficient way and many other little tricks they may pick up along the way. I think most of these tutorials are in fact a waste of time, what a learner needs are, good examples, lots of examples different examples, and to be guided from point A to the end of the project. This is the only way in my experience that you can learn good programming habits and and pick up good tips.
Vijar I totally agree with you. Like building a more "beginner" full stack application with html/css/js and postgreSQL with a database utilizing a DAO pattern for theJDBC and servlets in Java with an IDE like Spring Tool Suites or Eclipse. So for example going through that step by step thinking process of creating a method with all the right logic and syntax for the SQL and throw/catch statements and calling it in the servlet to verify a user's login on the frontend.
Thank you for the awesome advice. Been learning for some time. I get frustrated that I am not at the level I would like to be. You just encouraged me to keep going. Thank you so much!
Awesome channel. I have ADD aswell and its just like I hear myself speaking. Just started out 1 week ago in a way I thought was most productive. This video just confirmed all of it. For me its like this; Start from scratch everytime with programming untill you got the basic settings right. And expand this with the new skills that you learn. Test yourself. Try to imagine concepts. Try to understand why you give certain inputs and whey they work like the way they do. Instead of remembering the inputs and typin them out. Love the vids, it helped me a bunch. Thank you very much good sir!
7:10 this is so true. I have stopped going into a rabbit chase on Google for questions while studying. My strategy now is that i had a pinned tab on my browser for Google Keep and i write all my questions there and go through them later. I have found that it's much easier looking for answers later than right when you were studying because you'll sort of remember what you were learning before and get a much better understanding. And an advantage for this is I'll also have the questions on the app in my phone and can easily search for them when I'm not on my laptop
Talking about ratios of study:practice really hits home for me. I'm enrolled in a course, which requires homework tasks turned in, but that how that time is used is obviously different than my time studying. I spent the first month stressing myself out, studying tasks on the same day as doing the homework, because I wanted to turn in tasks at a reliable "every other day" pace. No, no, no.... Or... I can spend 2-3 mornings studying, sleeping on it, letting it gel in my head, then complete a homework assignment. I'd rather get 2 assignments done a week and actually learn the concepts than get 4 done a week, but not actually remember anything.
Hi Andy, the teaching method is what I use. I am currently taking a course on nodeJS and my notes are very clear and the code is typed out so that if anybody see them they can follow alone and build the app from scratch. I do this for the following reasons, #1 I know I won't be able to remember it all #2 as you said, acting like I'm teaching it myself really helps to remember #3 never know if later I am to build the same app, the videos may no longer be available so my notes will be very valiable. #4 I may just create a blog or a how to page with my step by step notes. thanks for sharing this with us, I am also a self taught until I decided to take courses on udemy.
Love these tips, bro! Thank you for making this video. It's very encouraging! You really nailed the nails of priorities with learning. I'm a HTML/CSS novice & I work IT helpdesk for the VA. I'm going to repeatedly review the steps you laid out. My favorite point is #4, keep track of questions/whys. I find myself many times at work copying & pasting work notes for "busy work" tasks. I've discovered how effective keyboard hotkeys (ctrl+backspace, home, shift, end: so meta) are & taking notes that I can use ctrl+f & keywords to work arguably as effectively as my colleagues at a fraction of the effort. #4 really validates how I'm feeling about note taking, because it seems to be a strategy that is already serving me in the long-term.
These learning strategies apply to learning anything and everything, not only programming. 1: i am stuck in the conception als learning, i lack the discipline to actually sit down and start active learning. I know of the problem and struggle to get over it, but it will happen. 2: I tend to double down on this. Every day I move on one chapter in the book or blog tutorial, but I start every day with the yesterday's new chapter, doubling down in each chapter. When I have problems with something, I repeat that chapter for three days. 3: I always had an easier time learning something when I explain it to others. Back in school, I was very lazy and didn't review, study or do my homework. I learned almost exclusively by explaining it to others. 4: I am ridiculously pathetic at this point. I never write down my questions, don't have a "look into later" list or anything of the sorts. I try to remember despite knowing that I won't. 5: my problem is not that I don't rest, my problem is that I don't restart after resting....
I’ve been doing this longer than you’ve been alive, and I have at least one friend that’s not a spring chicken working towards becoming a developer (she’s tired of all that goes with working at Home Depot). I’m referring her to your videos because you’ve learned how to learn and make progress in a systematic manner, and you’ve posted the videos here. I’ve not been new to development in general for decades now, but my career revolves around constantly learning more, and a system is required for learning: if you stop learning, you stop earning and you dinosaur yourself. Particular technologies come and go but learning how to think and learn is timeless and transferrable.
Re: Active vs Passive learning. I really appreciate that you don't just say "passive learning is bad, always do active learning", which I hear from a lot of similar channels The thing is, sometimes you just don't have time for "active learning". If you are watching RU-vid tutorials or an Udemy course, it is of course "better" to follow along, but if you don't have the time to do that then it's still way better to do passive learning than no learning at all
I've noticed that with ANYTHING, when I teach about it I become that much more knowledgeable on it and it reinforces the concepts I already know about what I'm teaching even deeper into my mind. I've been taking online courses, and have been writing down key information along with scouring the comments below each course page to learn about what is being taught even further. Writing it all down is basically making me write a guide on how to learn the code I'm learning. It's very time consuming, but I tell you what, I still remember the concepts and everything I've learned since I started the course. It is well worth the extra time investment to nail that shit in there instead of having to come back often to re-remember stuff. I also play around with the code as I'm learning it and trying out all the different things I can do with it. Combining things I learned from earlier in the courses to the newer things I just learned. Just becoming familiar and comfortable with it. On top of all that, I've done what he mentioned in the video, keeping track of questions. When I feel my mind is overloaded in information, or questions, I write small reminders (5 words or less) or just keywords as "anchors" where when i read it I know what I was talking about. That way I can sort through all the information and write down the info and concepts on it and miss nothing. If I had questions while taking the course that wasn't answered by the course or the comments below on the course page I'd go on Google and research it until I fully understood it, then I would write down what I learned as if I were teaching it to someone. If I had questions but was done for the night I'd write them down for the next day. This has really helped me, give it a shot.
My style of self learning :- 1. Get intro by watching youtube video and code at same time also make notes 2. Read and code at same time for deepening your knowledge. So far this was effective for me...
since last month , I am overwhelmed with too much stuff to learn and tutorials that I bought from udemy...After , I watch your video , you give me a spirit to be more productive in learning to code. I love your tips . I want to implement it right now... Thanks, Andy
Thanks a lot for those advices, really useful and something that I will be applying to my life as a programmer because sometimes I feel that I am not keeping anything of what I just learned, that I do not rest enough, that I do not have enought time and that I do not have the concepts clear enough. Thanks a lot Andy.
Funny that you mention. I actually did study the philosophy of learning and it has been very beneficial in practical terms. :) In all I have learnt, the best strategy for learning that I can pass along is... an active interest. If you are not in the moment or falling asleep or even just not enjoying what you are learning, take a little break. Recenter, rest, motivate, or even move onto something else with the intent to come back if you need to. Your interest in what you are learning has a direct correlation with your ability to retain memory. If you are disinterested you’re mind will categorize the information as unimportant. On the opposite side, you’re mind will get excited, brain will light up, and you’ll retain since the information is seen as important and needs your attention. I have the privilege of being able to motivate myself so keeping an interested state while learning is easy to me. Hopefully you can get something from this.
I am a self-taught programmer. I am a college dropout, no degree. I worked as an assembler, then was offered a chance to become a digital technician, and I worked my way up to digital design engineer. I knew a little Basic and assembly coding. Then one day my boss basically put a gun to my head and told me it was time to learn to program in C. I had never seen C code before. He gave me a Kernigan and Richie book on C, a tutorial book on C, and a computer with a faulty C-based functional test program that intermittently crashed the computer. He said I had two weeks to fix it. The good news was that I had some idea where to look for the fault, due to my hardware background, and I pursued that line of attack as I tried to figure out the coding. After a day and a half I went to my boss, told him the problem was fixed (it was in the interrupt handler,) and I asked if I could have the rest of the two weeks off. "NO!", and then he started asking for changes and enhancements to the program. I figured it out on my own, improving and then replacing the code I had started with (spaghetti code.) I wrote every production test for every dial-up modem that company made, and I created a killer automated evaluation test for finding bugs in them. That was over 30 years ago. Since then I have been continuing to support myself and my family by programming in C to make automated test systems. I worked at Cisco Systems, Nokia, Tesla, and several other lesser-known companies. I finally took classes in C, after doing it for 15 years. I am still doing it, though I am coming up on retirement. I recently returned from China where I was supporting production of my company's products with the test programs I wrote for them. This video did not cover the key learning tool I used to push myself forward: I had a task that needed to be done, and that task involved programming. You need a goal, and then you muddle through the coding to achieve that goal, then you improve what you did. Make something, use a language that is in demand in the marketplace and make something admirable, or accomplish a task that demonstrates your skills. I am still using straight C, the LabWindows/CVI from National Instruments, but I am finding less and less demand for that. LabView seems to have more demand, but I don't like LabView. If I were going to pick a work-oriented direction to go, for cheap, I would go with a Linux system and use it to learn Python. Get a Raspberry Pi starter kit and go through the exercises. Then get an something with a serial port and make the Pi talk to it (I like Arduinos). Have them work together to accomplish some task, search RU-vid for ideas. For me, I learn by doing. Doing is fun, learning is boring. Andy Sterkowitz is right, work at it in short spurts of a couple of hours, maybe a couple a day with breaks. Some of my best ideas hit me in the shower. For me, I knew that what I needed to do I could do using a computer, the question was how to get the computer to do it without my constant guidance. I knew it could be done, the fact that I couldn't do it meant that there was something I did not know, and I needed to discover what that was and learn it. Once you have a success, do something else, but you can copy code from your previous project to speed you along. I like doing verification testing of hardware and firmware, it is a field that not many aspire to, so it is not hard to excel. It is not a glory job like a developer's job, but you get to embarrass those stuck-on-themselves developers. Some developers hated me because I made work for them, others loved working with me to make their stuff better. My bosses often could not do without me to protect then from shoddy design.
I think what is going to help me most from this is #1 and #4. I also appreciate #2 and #5 since that's how I've been learning. It helps so much to have balance. Thanks for the video!
Andy- thanks, this was a great refresher/new tips for me. Just what I needed at this point in my quest. I got the idea while watching this to write a small Question / Lookup tracking program to help me stay consistent with your 4th tip, and to have a good reference later for what I've learned.
Another way to learn programming (or something that I did) is to download something like Unity or Phaser and start making games. Then, follow various RU-vid tutorials to learn how to do things in those programs. In making games, it IS programming and one could learn programming in an exponential and accelerated way and it is also LOTS of fun. It is a way to put forth your creativity. And in making games, when one goes back and tries to pick up something like let’s say web development; one would have already have been working with one of the more advance forms of programming already. And JavaScript???? Well, THAT is partly what Javascript is about!!! And it is partly what Javascript is for!!!! It was made for interactivity in the browser!! And thus, THAT would be RIGHT down your alley as in Unity you would have been working with C# which is VERY similar to Javascript and in Phaser, you ARE working with JavaScript directly!!! And by the way, in making games, YOU ARE building your portfolio too and if you’d do web development, you could put those games that you made on your website; make your website that much cooler and it could be a way to demonstrates to your employer, etc. that you understand programming, how concepts are applied; you have applied concepts in various languages already and you have completed something, etc (i.e., your games and website). And heck, making animations, music; making scenes in 2D or 3D (with Unity) with tools like Blender, PhotoShop, Paint.nnet, Audacity, etc. demonstrates your proficiency with various software programs that you may have used to make your game assets; which in turn, could make you that much more useful to a company. So thus, it’s like feeding two or more birds with one piece of bread (because I didn’t want to use the analogy of “killing two birds or more birds with one stone.”). Anyway, the above is just my two cents and was my strategy for learning programming!
Thanks for another great video! So far I'm taking breaks when I really feel to have a stop. Regarding active and passive, usually when I follow a video tutorial I always code along, add comments to remember key concept and then upload on github. I was thinking to start a YT channel to show the learning process of someone starting from a low level, doing exercises etc...but I will take in consideration also maybe to do a blog, great idea!
I just began my coding. My second week to be exact. I’ve been unknowingly implementing all of these strategies lol thank you for confirmation that I’m on the right track! Also, I’ve found out reverse engineering basic pages and things like that help me to learn coding concepts better. It really make you think about what to use and how to write your code!
Great video! I really agree that there is a need for some kind of a coach to help people get their first/next job. What you are teaching in this particular video, is especially spot on. People learn differently and people push themselves past the point of diminishing returns and don't realize it. I think what people really need, is check in points with their coach for accountability and to make sure they are on the right track, spending their time correctly. Just like a Physical Trainer, a Technical Coach is something that is needed and valuable. When handling a client, I would think the toughest ones would be ones that have no formal college education because they don't have an established routine and years of practice of being disciplined to meet deadlines. It is one thing if someone has a Political Science degree and now they want to change to learn computer science, they know the routine and what it takes so they just put their head down and grind it out like they did in college. Those that never went to college, for whatever reasons (financial, learning disabilities like Dyslexia like I have, and maybe life stress) need to develop a routine and accountability. Those, IMO, would be the most satisfying to help, because they really needed you the most and it may really be a life changer for them. I say all this because I have a 20 year old son who is exactly in this situation and I want to help him and people like him. I love helping people in general and may have found something I may do in the future, so I'll be following your channel closely.
I’m the opposite. Such a “completionist”. I need to know why something happened, so when I’m watching tutorials I’ll pause it, look it up, usually get off in another rabbit hole, and then come back. There’s been a couple concepts that I don’t understand how they got to where they were. It tells me that their video is too advanced for me. I’m at the baby, stick your toes in the water, step of learning programming. I have an idea I want to figure out. It’s pretty complex. I have a feeling that by the time I actually get to creating it as I envision it, I’ll be down some deep deep rabbit holes and learn quite a bit of extra “fluff” if you will outside of what I want to create. I have no idea if a job is in my future or if this is just going to be something that satisfies my desire to learn new things all the time. Gives me a purpose. If I make money while I do it, great. If not, that’s cool too. The idea is by the end of me completing my project idea, it opens up so much to my understanding, that I’ll figure out the next thing to build. On a side note, can you do a video on organization within your computer to create projects, how your files are set up and why, how you keep track of all the things you need, what kind of structures you should create that you use daily to make long projects more efficient so you’re not re-writing the same code all the time over and over, etc.
During the rest and recover period you engage in diffuse learning, where you're processing information, forming neural pathways, and making connections subconsciously between what you're learning and what you already know.
Learned the final one just recently took a break when I came back i went straight to the challenges and I was surprised I remembered everything I learned a few special cases here and there but I was happy
Best way to learn...never put too much pressure on yourself, just relax create a neat plan and get on with it, after a few attempt you will learn the best strategy, next phase is to gradually but consistently build on it.
Hello, Andy. This is a very useful and helpful video. Whatever you have told has been backed by science. I’ll try to apply all of these. Thank you so much man. Keep up the good work.
I’ve learned the basics for python and now I’m jus ready to learn as I go and start workin on projects so I’m not jus watching videos and taking courses over information I already know to jus feel more comfortable when the goal is to be better at coding by actually coding! If this helped hit that like button!
What have worked for me amazingly is reading + writing summaries of chapters of every book I read.similarly, evaluating coding examples and coding up small programs off the top of my head that relate to the concept that was just explained; while reading and writing. I also love reading about the same subject from different authors. I've been doing this for a few years now. My memory and concept-dissecting skills are through the roof. To the point that I can remember pages and chapters etc even months without re-touching the subject. Also, I have adapted to certain reading / coding pattern ratios that I've noticed are efficient. So basically I've been learning how to learn. And when I need to review something I go to my notes. Also , this allows me to constantly read code from a lot of people . I don't skip paragraphs or code until I fully understand it. My code is always evolving. I have focused on only Java , paradigms , and algorithms the past almost 3 years. I usually recommend people to be more conceptually inclined rather than just syntax inclined. And avoid those learn x thing I just x hours Bs you find on youtube. Thank you for your tips
So true. I am sometimes so motivated to learn something that i would be fixated on it for months and when i am stuck on something and i don't get answers i get distracted and go on a google parade and waste time and slowly i start loosing interest and there goes my whole month of motivation. Thank you for these strategies, i think keeping track of questions would best suit me.
Those are some great points, I think when it comes to programming, beginners more focus more on watching tot than practicing what they have learned. This vid explain really well the importance of active learning. great vid
Hey Andy, Thank you for taking your time out to make this video. I'm a grad student and currently preparing for a certification exam. I'm gonna apply these principles.. and will let you know. This video is really a confidence booster. Thank you..
Yeah I have found number 3 to be VERY useful. I always start explaining what I learn to my parents even though I know they don't understand it, but they know that it strengthens my neural pathways.
You are right, its not possible to remember every library or Module you learned. You only remember things that you use more often. But if you need to use something you just check the dock or watch a fast tutorial and you will be like oh yeah i remember now and then you can apply it.
Been learning without any strategy (and knowing it) for years, and that slowed me down a great deal. I even lost motivation and seem to not be able to get myself to pull my head out of my ass. I'll try to apply those, hoping it'll work x3
I remember when I was just started learning HTML and CSS and didn't know anything. I watched and followed along 4 Travesy Media landing page tutorials over the course of 1 month. I redid the first one 3 times and the other ones a couple of times each, they were SOO boring and i could barely work for over 1 hour a day. Then at the end of the month, I made replicas of both the JQuery and Wordpress home pages all on my own. It took me like 8 hour to each of them, I even used media queries. I'm still not a pro, but I can do it now in half the time. In a few weeks, I'll be able to do it in 2 hours.
You make good points here. I have just started learning and there is a fair amount of passive learning. So at the ends or during the lessons I will experiment a little with what I just learned. Even just reworking 1 line of code from a tutorial has helped me learn alot.
The section on jotting down a question when you are learning material completely derails me. I pause everything, then go and search the missing piece up, but it may trigger another piece, then I find that was a 10 year old post, and I search for newer posts..... ah hour later, I get pulled away and may not return to the original content because of time constraints. Lynda has been a great resource for me. Thanks for the vid.