My experience with reading programming books is ambivalent. On one hand, they can provide enormous insight regarding the technology you are learning, on the other – they can get outdated pretty quickly.
I will sum up my thoughts about reading programming books.
A well written book is a series of well-ordered articles, which deepen your knowledge in many aspects. Most often, these books are written by people with long experience and thus give compelling examples of usage and also good arguments whether specific technology or paradigm is useful or not. Such knowledge transfer to the reader is desired.
Books are also “a bit” more polished than articles and tutorials you can find on the web. There are editor and consultations, so bullshit factor tends to be very low. Personally, I’ve read Pro C# 2008 and the .NET 3.5 Platform a few years ago and it gave me a really nice background regarding C# and .NET at the time.
Before you can write a book about technology, you have to dive deep into that technology itself. I’d say that half a year would be bare minimum if one wants to learn about advantages and quirks of a framework or a language. Plus, you have to write the book itself, which won’t happen overnight. I have no prior experience in the subject, but another half a year (from starting the process to publishing a book) seems like a fair amount of time. This gives us a year of delay in a fairly optimistic example.
There is also another aspect, which makes it worse for me in particular. Even though I am fairly proficient in using English, I understand more when reading in my native language. So, it is a tricky question, whether I should get a book in English or wait for a translation for my language. Waiting for translation, means the chance of outdating is higher.
Should you read books about programming? Sure, you sometimes need to order your knowledge, but to deeply understand what book said, you need to code. You need to face challenges the author experienced in order to fully understand what he meant and why he stated the opinions he wrote. Reading too much and using the knowledge you’ve read means that what you remembered will quickly wither.
Reading books about programming is fine, but be sure to also utilize new knowledge fairly quickly.