This morning I saw an interesting discussion where someone was asking how they should about learning to code. This got me thinking about how I personally learned, and the transferable lessons from that process for picking up new skills / knowledge in general.
From that, I realised that I believe that intrinsic motivation - i.e. you first have to want to know for your own sake / to meet some of your own goals, rather than it being like "someone says I have to do it". I suspect this is one of the first major barriers many people face: For many people, their experience with learning in general has been through their schooling years - an fraught experience where the answer is often, "I do it because the adults made me do it" (i.e. extrinsic / non-self-motivated)
The easiest way to learn is not to go through a tutorial / course "just because", but rather, if you set yourself a goal of "I want / need to be able to make <x> happen"
From there, it really focuses your learning:
* What do I need to know to do that?
There's nothing better than a real concrete need / roadblock in the here and now that you need to overcome in order to get to the next step towards your goals, focussing your attention in ways you may not have considered possible.
* How does what I'm learning / coming across tie into what I'm doing, or how does it compare to what I've seen working on my project? (I.e. what's the point of all this)?
For example, from experience, this was what helped me get through some of the most boring series of lectures I'd encountered at Uni, where we were going through this dry abstract set theory stuff on database operations. I found it really helped to reframe those abstract concepts back into the more concrete world of how I'd go about implementing such a thing in code using a for-loop going over such collections of objects.
* What else could I easily do now that I didn't originally consider?
This is where you start engaging your creative juices, and start coming up with new idea for other enhancements or features or even completely new projects come from. Those in turn will drive a lot more experience building and hunting for new and better ways to do things, and pretty soon, we'll not be having this discussion here at all, as you're too busy trying to feed all your projects!
(That's why I also believe that if you manage to get your kids hooked on some pursuit where their drive for personal improvement can start taking over - i.e. for example, anything from programming, playing a musical instrument, sports, or various forms of art - they really won't have time or the inclination to bother with drugs or petty youth crime)
For an additional piece of fun reading, I came across the following article this morning about how lab rats taught to drive "rat cars" apparently looked forward to the experience, with the anticipation for that having many positive benefits (including making their tails look more like those of "friendly cats"). Interesting food for thought...