Recently I talked about how I find that I don’t learn best from books. When it comes to programming languages, I do my best learning using what I’d call the brute force approach. If I have a problem to solve, I demand of myself that I solve it in the language that I want to learn, and then do whatever I have to do to get the program to work in that language. I usually end up with 15 browser windows open, at least one book by my side, and a splitting headache, but it’s the best way to jump start my knowledge of the language. I just keep repeating the process with additional problems until I can use the language, then I go back and start reading to see if I can get the philosophy and idioms of the language down pat. I’m not sure I’d recommend this approach to anyone else, but it works for me.