In a career of software engineer, you need to learn new technologies very often and always in less time due to deadlines. So just need to know how programmers should go about learning the technologies really quick still thoroughly. What approaches do you follow?
In my eyes it's quick XOR thorough.
The key point here might be that you figure out just enough of the new framework, e.g. Spring's dependency injection, to get the project going, because most often you won't need the complete framework, but just a few pieces of it.
I usually write vertical prototypes to get familiar with the technology. They might be helpful to explain things to the developer as well later.
This is a sort of trade-off: you either learn something "thoroughly" or "really quick".
In many cases you don't have to learn everything "from scratch". If you want to learn a new technology, for example ORM, you can still learn it using your favorite programming language (Java or C#), just learning how to perform abstraction from your data model. If you learn a new language, for example Python, you can just try to implement something you know how to implement in other language/framework already, for example you can try to implement the page you previously programmed in ASP.NET MVC using Django to see the differences between those languages and approaches.
As long as you know a similar technology you can find a tutorial where you can just learn the difference. This is true, for example, for functional languages: you can find many Haskell tutorials for Ocaml or Java users etc.
In my view, learning all things will take time. What all i do is search for new technologies, by subscribing Microsoft website or any leading platform blogs or website, so if they introduce any new things, we will automatically come to know and then for the next time when u think to do something new, think of these new technologies.
Because you can only learn if you use it..