...is the hard way: build an entire application from scratch.
That's how I learned PHP and symfony back in 2005, when I wrote the Askeet tutorial with Fabien Potencier. Before that date, I hadn't written a single line of PHP. After that, I was able to understand the estimations given by fellow developers, I was able to read code from other PHP programmers, and I was able to test my usability ideas on real software (see my usability experiments on a multiple blog engine).
Recently, I had to learn more about Node.js in order to better understand the feasibility of highly concurrent applications required by our customers. I also needed a simple website monitoring application able to aggregate statistics from several targets into business reports (Pingdom, PRTG and the likes don't fit my needs). That was a perfect opportunity!
If you want to learn a new language, don't buy a book. Don't buy screencasts. Don't buy a week of training. Roll up your sleeves, and do something for real. There's generally plenty of documentation available for free online, and when the documentation lacks, you can always read the source code. You have to develop a new application as if you eventually had to sell it, otherwise you won't look for the best practices (performancewise, maintenancewise, timewise). You have to make mistakes and refactor ten times. You have to identify the pitfalls and the strengths and the common libraries and the community leaders.
Then, eventually, you will know a new programming language.
Published on 07 Mar 2012