I'm a book person. However, the TYPES of books I buy has changed over the years. When I started, I got text books. They have lots of example problems in the back of the book, and lots of guidance on style, etc.
When I wanted to learn C# recently, I got the C# Pocket Reference as my first book. It's about 100 pages the size of a paperback, not a 1000 page tome. I was able to read through that and grasp the essential nature of the language and start writing programs in Visual Studio. Don't get me wrong, it wasn't great, but I could read that book in a day and essentially know what's going on. Then I got C# in a Nutshell. Again, no problems to solve in the book, just a far more detailed reference to the language. That helped with with several concepts that had eluded me (LINQ especially).
I also read the books differently from when I started. When I was first learning C and C++, I would read a chapter, do problems, read a chapter, do problems. Now, I read programming books before going to sleep. I don't use everything in them, I try to absorb concepts and differences, then look things up again when I'm doing actual code, either in a book or online.