I think the problem is not learning from PDFs, the problem resides in the scripting languages it self (Ruby, even python is involved
). things differs from version to another one of the language (it's just like software). I think they should work on a standard version of the language, rather than deleting stuff and adding some more creepy stuff.
There is nothing wrong with books, but in my opinion, i think the easy way to learn a new language is to read a quick tutorial and have a general idea about the programming language. then move to read some book, doing a lot of practice, and tuning codes...
And when done from that, you start the real learning process which is working on some juicy projects... you can't say that you know a programming language without doing some projects on it.