I find that studying books and going through tutorials to learn programming languages usually doesn't stick. I don't really learn a language until I use it to write real code. Most programming languages have a lot in common with each other, and I can learn the parts I need incrementally as I need them. Learning by doing will stick with me a lot better than learning with contrived examples and toy projects.