I'll take "engineers" out of your question and answer it as I've done personally as I become more experienced, and as I've watched other experienced people learn<p>"Fairly senior experienced" people learn in a variety of ways ... but mostly we learn via diffs<p>In other words, we have a baseline of knowledge, and we're looking for what has changed / is new / is different<p>This can come from videos, books, papers, blog posts, one-on-one examples, seminars, conferences, etc<p>The <i>best</i> folks then take what they <i>think</i> they have learned, synthesize it into a teachable format, and teach others[0] the "new" thing (crystallizing it in our own minds)<p>In the world of programming, there are basically 3 broad types of development: object-oriented, functional, and procedural<p>If you know one procedural language, picking-up another (or a new framework for that language, or the new version of language) is going to be pretty trivial<p>Likewise, if you know one object-oriented language language, learning another is pretty straightforward<p>And the same for functional languages<p>I made the jump from procedural to object-oriented as a teen in the 90s. Encapsulation kinda broke my brain for a few weeks, but once it clicked, I had added a new way to think to my mind.<p>I learned PHP (...4? I think?) back in 2004 by reading the manual pages on php.net over the course of a couple weeks.<p>I learned [enough] Java 1.3 & 1.4 the same way the same summer to update a bunch of Java 1.1 and 1.2 applets to a newer version<p>I do not do a lot of "programming" any more - it's more scripting, tool-specific search language, etc ... but what I learned over the last ~30 years has enabled me to pick up the Next Big Thing™ with [relative] ease<p>-----------<p>[0] <a href="https://www.electronicdesign.com/technologies/dsps/article/21771563/continuing-education-how-to-teach-yourself-almost-anything" rel="nofollow">https://www.electronicdesign.com/technologies/dsps/article/2...</a>