Don't get me wrong, I'm not saying you should only learn for "material" "monetary" "measurable" value, fun/thought has value too, but I think that in the context of this thread we are talking about learning to get better at job/craft, so
- languages, frameworks, concepts/theories/foundations, tools, and so on
Oh I totally get that, and as someone who likes to program for fun...
One of the ways you make more time available for the things you learn for fun (esoteric programming, rock climbing, ultimate, playing music, flying gliders) is by being very intentional about what you choose to learn for "your job."
Another comment made a good point: Perhaps we should call such learning "training." We expect automobile mechanics to know the basic physics behind ICE, but nobody expects the person changing their oil to learn about the computational fluid dynamics involved in designing fuel injection systems.
If you ask, "How can I learn about programming," I would expect the answer to involve a mix of both CompSci basics and practical direction for writing actual programs in a reasonably accessible programming language.
But if you ask, "How can I train to get a job working as a programmer in BigCo," I totally get that the answer should lean in, hard, on the practical and the currently marketable.