Don't be a Scholar, Be an Engineer
Many software developers I know seem obsessed with learning new technologies, even some of them use this is as a scale to measure how much progress they've made in their career and how much they have benefited from working at a certain company. You can hear something like "Hey! company X is so cool I learned to use this and that while I worked there". Don't get me wrong I'm not against learning new technologies, learning is a fun activity (to some people at least) and it can feel pretty good after you've finished reading that 500 pages book, It's just that I think software developers should always be thinking of how they can add value, maybe by coming up with new product ideas, adding new features to a product, creating new tools to make work more efficient or product easier to test! By doing so not only will you create more value but also you'll get a higher return on all the efforts you've spent to learn the technology and here is why.
You will learn the technology better:
No technology can be learnt by only reading a book and doing a couple of samples. You have to use it and the first time you will you'll be shocked by the amount of details the tutorial book didn't mention, and and the amount of details you actually miss-understood. Not to mention, a book can never cover every use case and introductory books end up covering the most basic ones, which is a small part of what you'll encounter in a real project.
You will learn it on the Job:
I've just read this interesting post by David Heinemeier, his answering the question "How do you keep up with new technology?" Basically he learns the technology on the Job when he needs to do something that requires him to learn a new technology,and not the other way around. He learned Ruby because he had a new project and he was sick of PHP, created Rails because he needed it for that same project and also learned Ajax because he wanted to create a compelling UI experience. The motivation here is building software not learning new stuff.
And finally, stick with what you know!!
The first few weeks of using a new framework or a programming language are usually a nightmare. You'll have to do somethings that the tutorial book didn't mention and you'll have to figure out how to do it. You'll start finding bugs in the technology or missing features, or even worse, you'll find more than one approach to do something and you have to decide which way is best.
After those few weeks are over you start to get productive, you have to make less decisions and you'll stop facing new problems. It's only by then you'll start to really benefit from the time you spent learning and by then, the more you use the technology the higher your return on investment will be.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)