Typically I only skim over programming books. First I go through the contents, maybe the introduction to the language. From then on I normally use references and only return to the book if I need advice/background on some specific language construct. Most learning is done by reading code from others, searching for specific solutions on the web and understanding these parts
Examples, in this process, are often used as templates for a solution to a problem I am currently working on.
I admit that I probably miss some specific features of the language, because I only get to know them if they are used in some example code I find by searching for a solution. But, normally I get by with using language constructs that are more or less similar to other languages.
I deeply am convinced that the only way of learning to express yourself in any language is to use that language. This is both true for programming languages and natural (human) languages. Mistakes happen on the way but are caught by compilers, test-routines, or fellow humans. As with walking through cities, a detour always increases your knowledge.
I own some programming books, but I admit to use them only seldom. (I actually brought a C-reference-book from home today. Programming books tend to always be at the wrong place when you need them.)