A. Find out whether it's worth learning.
1. Find out the big picture as fast as possible, about 15-30 mins.
2. Skim through all the major parts.
3. Figure out how I can use this. If the intention of it is to be practical (i.e. not philosophical, scientific, historical knowledge) it needs to be immediately applicable. Something that I may use years later, like how to make mantraps or phrases in Russian, is usually not worth learning right now.
B. Find a way to apply it
1. I figure out the bare smallest thing I can build with this. Building things is possibly the fastest way to have an intuitive understanding.
2. Copy what someone else is doing. Don't bother trying to be creative in the earliest phase. People usually adopt some habits for good reason.
3. After it's in muscle memory, then I start experimenting.
4. Allow lots of "dead time" while learning. Meaning unconscious/subconscious periods like sleep, meditation, or just daydreaming. This is needed for it to go into long term. You'll know when if you get stuck on something.
It does not mean, you must have students - writing a blog post or even just imagining you are preparing for a talk about the subject is good enough.
I've recently written a blog post about the way I learn, which I improved gradually over years: http://nywkap.com/learning/effective-learning.html
1. First figure out what are the foundational concepts/terminology in the area.
Skim articles, books, papers, blog posts in the area. Take note when you are confused.
2. Understand the foundations properly. Build mental models.
3. Identify the skills you need to have. Tools, processes, mindset/thinking. this i key and is often missed. How do you think in this field? I. thinking computationally for programming
4. Practice key skills, process, tools, thinking
Rinse and repeat. The process is not linear
3.
It's a source of excitement and interest.
1. Learn about thing
2. Read about thing
3. Play with thing
4. Create something else using thing
5. Steps 2-4 in any order, any amount of times.
The hardest thing for me is to apply my knowledge. Sure I can read all I want about a database tech, but if I don't have any data to put in it, it's hard to feel like that is real knowledge, or to even keep that knowledge around.
There also needs to be a level of discussion with other learners to keep motivation. Can't wait until AR does all the stuff I want.