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
"Fairly senior experienced" people learn in a variety of ways ... but mostly we learn via diffs
In other words, we have a baseline of knowledge, and we're looking for what has changed / is new / is different
This can come from videos, books, papers, blog posts, one-on-one examples, seminars, conferences, etc
The best folks then take what they think they have learned, synthesize it into a teachable format, and teach others[0] the "new" thing (crystallizing it in our own minds)
In the world of programming, there are basically 3 broad types of development: object-oriented, functional, and procedural
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
Likewise, if you know one object-oriented language language, learning another is pretty straightforward
And the same for functional languages
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.
I learned PHP (...4? I think?) back in 2004 by reading the manual pages on php.net over the course of a couple weeks.
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
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
-----------
[0] https://www.electronicdesign.com/technologies/dsps/article/2...