This question is geared specifically towards finding out what techniques you employ when faced with learning a new language - feel free to skip to the last paragraph for the straight-forward question.
I'm an inexperienced programmer and would like to learn a multitude of languages (quickly (thirsty for knowledge ;), but thoroughly).
I've dabbled in computer programming since I was 10 years old (VB 6 - 19 years old now). I've played with PHP, C, Ruby and HTML + CSS (though the last two arent technically programming languages, though you obviously know that).
I want to structure my learning for efficiency and productivity as I develop my career and would like to hear how you approach learning a language.
For instance, I read up a little bit about a particular language and if I like the look of it, I usually do a bit of book research and buy a thoroughly (and positively) reviewed one since published content is usually better than a lot of the content you'll find on the web (don't quote me on that). I'll then follow the book and set myself mini-projects to complete, obviously from the first 'hello world' application to a CMS or minigame. I find setting myself projects is a good tactic - it requires research 'off the beaten trail' to find out what features of a language I need to know about to accomplish it in the most efficient way.
What works for you when learning a language? Anything different from reading books and setting small bite-size targets?