Every time I find someone trying to give an advice about how to learn something (programming mostly) they advice to start from the basics of it, leaning basic computer foundational topics or languages, truth tables, C, etc.
I’ll go straight to my point, start from the skill/framework that you want to learn, skip the basics and save time. Whenever a Computer Science scholar read those lines they might feel that a vein in their brains is about to explode, and I don’t blame them, studying 4-6 years to get a bachelor is not easy to see how a kid is just coming wanting to learn something complex from scratch. Take it from someone who have an Electronic Engineering bachelor, I’ve been there.
My approach is not new, I actually took it from Tim Ferris on his book of the 4-hour chef. The idea is simple, start from the most complex part of anything that you want to learn, struggle with it and then scale down the difficulty trying to understand why it is important to know the basics, also will help you to only learn what you have to for that specific skill and nothing more. With that, you are expecting to learn any practical skill faster and more efficiently.
No one studied mathematics knowing that we will use it in the future to count how many drinks you can handle before pass out. We learn it because “it is what it is”. Instead, knowing how to calculate how many drinks you can have in your system to get safe home, will encourage you to be a little bit more interested about mathematics. Having a reason, context, color, help up to give value to those things that are meaningless until they are not.
The “Start from the top” approach is not actually for everyone, again, I’m cheating about it because I already had a degree in a related field to my current career and some concepts where easier to understand. However, I knew how to create diagrams and PCBs, not microservices or software architectures. I tried from the top and whenever something felt empty I tried to look for that foundation that helped me to understand the higher concept. I can assure that feeling dump is my constant state since I understand that there will be concepts that I’m missing.
If you feel you should jump into that complex framework, skill, tasks. Go for it. Be responsible about it. Don’t do it for clients or anything that can affect you professionally (😉). Break as much as you can in your sandbox but learn, ask questions, be the dumb. Even thought, this will not work for everything, for what it does, will motivate you to continue learning with a purpose. If this is not stopping me to provide high value solutions, this shouldn’t stop you continue learning whatever you want in less time.