These principles have helped me tremendously in learning how to code with less time. And although this article is tailored towards coding, it applies to learning anything.
Learn the details last
When learning something new you should first focus on the most important principles. This is crucial because:
- Doing so will enable you to grasp the bigger picture. This context makes understanding the details far easier.
- Conversely, your lack of experience will make it hard to understand how the details fit into the bigger picture. Therefore little of it will stick.
- The most important principles are used a ton, whereas the details aren't. They can be learned as you go along.
- Trying to learn a ton of things initially with no prior experience will be extremely overwhelming. Take it step-by-step.
So instead you should learn the basics first and the details last. You're still learning both, you're just doing so in the most effective manner possible.
Learn from multiple resources
Don't just read one book, watch one video tutorial, or read one article on a topic. Learning from multiple sources provides you with a broad yet comprehensive understanding of a topic.
This is primarily because learning from multiple sources provides you with contrasting perspectives and different key pieces of information. This enables you to effectively understand the bigger picture, which as mentioned is crucial for learning something effectively.
Only learn from the best resources
Many of the books, videos, or tutorials you'll find will suck.
This is mainly because they convey little useful information through a ton of complexity. They're hard to understand—especially for beginners. It'll be very difficult to grasp and it won't stick well. So don't waste your time on them.
This isn't to say you should quit if learning something is difficult; being challenged is a given no matter how well something is taught. It just means you need to focus on the best resources so you can learn more with less time.
Trust the process
Learning how to code is hard. You can expect to struggle and break things. Just don't give up and trust the process.
You might sit there for hours with little progress to show for it, but that's normal. Over time you'll become proficient and it'll become far easier to learn new things in the domain.
Learn by doing
Learning through experience is absolutely the most effective way to learn. Even if you learn elsewhere such as through university, online courses, or whatever—most of the learning comes through real-world experience. It's mandatory.
Learning through experience provides you with context. This makes it easy to understand the details because you can clearly see how they fit into the bigger picture. In fact, I'd even argue you should spend very little time as a beginner learning theory. This lack of context means it'll barely stick.
Instead you should learn by doing. This enables you to experience how things work in the real world and how they fit together, which is exactly what develops an understanding of the bigger picture. You can learn the theory afterwards.
Not only will this mean you'll grasp it far easier, your experience will enable you to discern what's most important so you know what to focus on. If you don't know what's important, you'll inevitably waste your time learning unimportant things (which you'll also probably forget because you're not using them).
And not only that, learning how to code by building things is far more entertaining. You'll enjoy it more and learn more because you're enjoying it. Theory is something I only became interested in after gaining real-world experience because I now understand its relevance.
Choose a project to solve one of your problems, then build it. Or if you can't think of anything, choose a hypothetical problem. It doesn't matter what it is.
You'll have no idea what you're doing or where to start. You'll be forced to learn the things required to build it, which means you'll naturally end up learning what's most important. You'll naturally develop a comprehensive understanding of both the details and the bigger picture.
These are the main things that have helped me learn how to code most effectively. I use these principles myself and have tested them—they work.
If you want to learn more about how to learn, I highly recommend reading "A Mind for Numbers" by Barbara Oakley. It has a ton of useful, practical information for learning most effectively.