I'm sure a lot of people here will recommend doing a lot of side projects, but is there a more boring yet effective way? Similar to flash cards instead of writing for vocabulary. The biggest contextual block from coding with an unfamiliar language is the syntax and basic API.<p>If I could draw an analogy, it would be trying to learn a language in a foreign country without any fundamental understanding. I find it much easier to absorb new materials when I have a basic set of common phrases memorized beforehand.
For the past seven years, whenever I learn something new, I put it into my set of Anki (<a href="https://apps.ankiweb.net/" rel="nofollow">https://apps.ankiweb.net/</a>) cards. Details tied to a job are tied to that particular job; when I leave, I delete those cards. Almost everything else stays.<p>Anki may have been designed for learning languages, but it's a great system for learning anything.