This post was migrated from my old blog which used to be hosted on Blogger. As a result, some links might be broken.
I am constantly surprised at how many professional engineers seem reluctant to read a book. By book I mean any form of literature that has several hundred pages and goes into depth on any topic that is related to their profession. Often I would recommend reading a book on a topic, and all of a sudden people lose interest in it. It is scary, but book shelves at software companies are very often just decoration. Having books makes people feel smarter.
It seems the maximum of effort many people are willing to put into self-education is skimming over a handful of blogs or posts on StackOverflow-ish sites. I do this very frequently myself, as I believe it is a good way to get some quick answers to common problems. I would even go so far and say: every software developer should know how to utilize the community knowledge we find on the internet to solve problems.
Unfortunately, this kind of research has some very serious limitations. Finding quick answers and short tutorials on the web will almost never be as useful as reading a good book on that topic. I bet this might sound backward to some of you. After all, how can something as old-school as a book be superior over reading <insert fancy blog/wiki/q&a site>?
Most of the time we do not spend more than a few minutes skimming over blogs/wikis in whatever is on the first page on Google. Come on, be honest with yourself. We have a more detailed look at one or two of them, but in the end we rarely spend more than 30 minutes to an hour reading that stuff. Usually we are looking for a quick answer to some problem, like “what is the exacty syntax for XYZ” or “what does error code -31 mean”.
Authors on the internet know that. They try to keep blog posts short and interesting. A blog or wiki will contain posts that were written in minutes or hours. Good ones might have been reviewed by the author a few times, but generally, they are cranked out pretty fast. That is great since knowledge, especially regarding computers, changes constanly and quickly. But it still means that most articles in blogs and wikis are more shallow and/or of lower overall quality than most books.
A good technical book, on the other hand, is a huge project. Authors often spend several years on a single book. It is edited and reviewed by other experts. Publishers put a lot of money into writing, editing, printing and avertising it. Competition amongst publishers forces them to have an actual strategy when producing a book. It will be structured in a way that makes sense and is readable. Errors are difficult to correct and therefore the matter has to be researched with care. It might have code examples and tools on a CD to get started right away. The moment you are holding a book in your hand, you can already be pretty sure that it has undergone a certain degree of thought and review by some people.
I am aware that there are also tons of crappy books out there. Ones that are hard to understand, boring to read or simply just sloppy attempts to make money off fancy buzzwords. Some publishers keep bringing out new “editions” of popular books with minor changes only to get people to buy them a second time. But even bad books have gone through some process or another, and people generally do not invest money into a project such as a book without having some confidence that people will buy them so they can (at least) get their money back. That said, how many blogs are there on the internet that are hardly read by anybody? (Tip: you are looking at one right now) It is easy to write crappy blogs, but it costs money to publish crappy books.
Fortunately, it is very easy to distinguish good books from bad ones. Most websites that sell books allow for users to submit ratings - read them! People who rate stuff on the web are either really happy about it, or really pissed off. Why else would you actually sit down and spend valuable minutes writing a review or clicking stars if you were not either psyched or mad. So if you find a book. e.g. on Amazon, that has 11 ratings, and 9 of those gave the book a good review, you can be farely sure that it is worth reading.
Aside from those ratings, it is usually even easier and faster to just do the same thing you always do when you need a quick answer: enter “best book [MyTopic]” on Google or StackOverflow and you can be farely sure to find various recommendations. Check the ratings and reviews for those on your favorite book sale site. I do this all the time and have not been dissapointed yet.
There is another, much more important reason why many engineers prefer to skim over blogs and do Google searches instead of reading books. Because they are lazy bastards. You need to dedicate some of your precious time to read a book. You might have to bite the bullet and read chapters that are not full of witty jokes or comic strips or pictures of cats making funny faces. If you want to finish it in time to actually use whatever you can learn from it, you might have to read in it at home instead of doing other important stuff like watching The Big Bang Theory.
That’s right, reading a book is not always a quick answer. Instead, it is actually learning. Remember back in school, when all the teachers were telling you “learn for life, not for tests” or saying crazy stuff like “you never stop learning, even after school”? This is it. The ugly truth. They were right. Now stop whining and behave like a professional. If you want to be considered a professional engineer - and I am sure you really want to be paid like one - then stop wasting time and read a book for god’s sake. RTFM.
Some of mankind’s most important knowledge is in books. They have helped us learn for thousands of years. Blogs and whatnot are good for some things, but there is still no better way to really learn about a topic than reading a good “old” book.
No, getting the eBook/PDF instead and skimming over it on your PC/smartphone/reader just like you would do with a way-too-long blog post is not going to make it better. And ripping that eBook from questionable sources on the web because you are too cheap to spend 40 bucks on improving your skills should really make you wonder why anyone should consider you to be a professional in the first place.