I stumbled upon this post by a certain Reddit user that made me rethink the way I should look at learning through books.
The tl;dr version is you read books when you are learning new concepts in order to figure out what questions you need to ask.
Here’s the post in full:
1. How do I build a rocket?
2. What ratio of rocket fuels do I need to reach orbit?
3. What kind of helmet does my duck need to pilot the rocket?
If you don’t know that rockets take rocket fuel, you’ll never get to the second question. If you don’t have a basic understanding of rocket building, you may not know that you don’t need a duck pilot. Additionally, if you just read a book on how to build a rocket, you’ll have a bunch of information in your head, but unless that rocket book has labs where you have to actually do something and verify what you have done, you still won’t really know how to build a rocket.
So no, books don’t contain information that is not available via Google or SO but unless you get that initial understanding of the technology or problem space, you won’t know what questions to ask or worse, ask the wrong questions.
This applies very well to programmers. There’s a massive amount of knowledge in the Programming field and it can be very difficult to find a good place to start. I know this phrase gets used a lot but reading a book on the subject will really give you a good push in the right direction. It won’t answer most of your questions but it will give you a foundation on which you can ask better questions.