How do we learn stuff? Some of us do so by reading a book, then re-reading till it somehow gets in their brain while others learn by practicing as they go. I am part of the latter group, I taught myself PHP and, more recently, Ruby/Rails using this technique. Reading just wasn’t enough for me.
Does that mean I could learn any thing I want without ever touching a book? Of course not, it just means that I prefer to go practice the theory offered in the books quickly as possible and this is why I enjoy being a programmer! You get to apply what you learn at your own pace.
Sure, there are a lot of career paths out there that let you practice what you learn, i.e. surgeon, but before you get to cut people up you go through a lot of hoops so that they can make sure that when you do get to apply your scalpel to someone you do it the “right” way.
In the field of computer programming, correct me if I’m wrong, there is rarely a “right way” to do things. We have a series of methods, techniques and methodologies but there isn’t one way out there that everyone uses in the same way: we even indent our code differently, according to our own beliefs (or constraints in the case of an existing codebase). The contrary isn’t always true though, some ways that people program will certainly enervate or even infuriate others that have to work on the code later on.
TL;DR: If you want to learn a new language, tool, framework, or anything really, decide on a project you will work on that will let you use whatever it is you are learning at the time.