I mostley, create a project I want to make with the programming language and then I start. When I have problems, I look for solutions and after some time I know the language better and can use it.
Its maybe not the best way but it works for me :)
I think that's probably the best way to learn any language. Unless we get our hands dirty, we won't properly understand the pros and cons of the language.
This is the way I do it as well. Just dive in, hit walls, go crazy, break through and repeat :-). Combine resources like code examples, tutorials, screen casts, etc to create your own dynamic curriculum.