You get excited about learning a new skill and suddenly got filled with so much motivation that you feel ready to crush your goals. So you sign up for a course, but after only a few weeks, all that passion and motivation just cooled off and just didn’t last.
This is because learning technical things is hard, and self-learning is even harder.
Just because you immensely studied through a couple of courses doesn’t necessarily make you well equipped to utilize it in the real world. Learning technical things involves a lot more than just taking courses, as that is only 20% of the effort required to succeed.
The Framework for Learning
This is a sure framework to successfully self-study technical things.
1. Learn just enough 2. Do a project 3. Iterate 4. Accountability
Now let's discuss each step in detail:
1. Learn Just Enough
The problem with learning technical things isn’t that there aren’t enough resources. The problem is that there are too many resources available and is easy to fall into the trap of the paradox of choice which often leaves you feeling overwhelmed making you abandon your goal of learning in the first place.
Understand this: It doesn’t really matter which course you pick. The market for introductory courses is oversaturated so you can get amazing courses either for free or at an incredibly discounted price. Just choose any of the best-selling courses/materials and you can be guaranteed high-quality educational material that teaches you the basics of the field.
Once you start using an introductory learning material, you may face another potential problem I'll like to call 'The Learning Gap'.
The Learning Gap
Consuming information from a bunch of courses won’t get you far. There is a gap between beginner and intermediate that cannot be crossed with doing courses. We learn technical things so that we can use them. In some other fields, eg. Biology, the point of learning is to get knowledge into your head. But with technical things like programming, the focus is on application. This is why it doesn’t matter what information you have in your head if you don’t know how to implement it.
Doing a bunch of theoretical courses is just about 20% of actually being able to independently implement. The best way to learn is by directly practicing real-life implementation. Hence the importance of project-based learning.
Real learning begins when you work on a project. You will soon notice your theoretical knowledge come alive and start serving its purpose, helping you become a better programmer.
Let's face it, it's boring when you're just learning a bunch of information. It's a surefire way of losing interest because what makes learning technical things exciting and interesting is when you're actually using the skills to build projects.
Learn the Minimum:
- Choose an introductory course or book to learn the basic concepts and terminologies of the skills you want to learn.
- Don’t try to memorize or learn every single detail.
Even after doing all of this, It's just the beginning of the learning process. Real learning starts with the project.
2. Work on a Project:
Pick a project that interests you and attempt to build it by yourself. This is the best way to learn.
Iterate, Iterate, Iterate: Now that you’ve built yourself a project, you have just opened up your path to really mastering the skill. Choose another project to do, and you will find out there are a lot of gaps in your knowledge, but that’s okay, you have the right frame of mind and you realize that’s the whole point. You 'interate' on what you learned by filling the gaps in your knowledge and diving deeper into the areas that will help you complete your project.
As you become more skilled, you also have a better grasp of what projects interest you and how to choose the best projects to fill in skills that you want to learn so you can do more awesome projects. That’s what most people get wrong about learning. Learning is a cyclical process
This importance of this is seen in a few weeks or months after starting the learning process when your enthusiasm and motivation starts wearing off and your goals start looking unachievable, when you become overwhelmed by all the jargon and concepts, when you’ve spent 5 hours trying to debug your code, when you hit a roadblock and all you just wanna do is give up, when you start asking your self questions like ‘is the goal really even worth it?', maybe I’m just too dumb to do this anyway.
These times when you are at your weakest and most prone to give up are when accountability matters the most. It truly is your key to pushing through and succeeding. But how can you gain accountability?
Introspection: Figure out what actually matters to you. It may be money, prestige, or family and friends.
Optional Framework Upgrade
How do you know when you’ve learned enough to start doing your project?
Start your learning by finding your project first!
Get a job in that field or start your project with consequences that matter to you
Take notes of only high-level concepts and focus on understanding. Do not take copious amounts of notes and try to get all the details because knowing it won’t help you much in doing it. You will pick up the practical details anyway when you’re implementing the project.
Don’t get married to any learning resource. Resources are just tools, what matters is accomplishing your goals. Learning is not a linear process. If you feel like a course is going into details or subjects that are not really relevant to your project, then skip it or find another resource. Maybe the parts you skipped will become relevant when you’re going through the iterate phase, then revisit it. Do not feel obligated to finish a course you don’t think is relevant anymore. Remember, your ability to complete your project is your guiding light so do what you have to do to learn just enough so you can start working on your project.
Thank you for reading the article till its end.
Understand this: You can learn that new skill you've always wanted to learn.
If you found this article helpful, be sure to follow me on Twitter for similar contents.