Would you read programming books if I offered you free pizza?
Do you remember Book It!, the reading incentive program by Pizza Hut that is still available to elementary school teachers? Just like the Scholastic Book Club before it, both provide children with an exciting avenue that fosters reading. It meant gold stars, the admiration of your peers, and quiet nights under the covers accompanied only by a flashlight and the intoxicating smell of an old library book. Of course, it also meant free pizza.
In our industry there appears to be some backlash against the reading of programming books in particular. I wonder if a nostalgic incentive would blow the winds of change. Would the re-introduction of free pizza and gold stars encourage you to visit your local book store? How about if I sent you a rickety flashlight and a fluffy comforter emblazoned with G.I. Joe characters to read under?
Jeff Atwood recently wrote about the sad fact that most programmers do not read programming books in his post Programmers Don’t Read Books — But You Should. Like the majority of content on the Web today, it was gleaned by few and misinterpreted by many. Jeff, like myself, actually loves a good programming book. The best of these books are timeless, and have a considerably long shelf life. Even the best language-specific references can offer nuggets of wisdom that stand out among the unremarkable majority.
The excuses are plentiful. Programming books suck is the commonly accepted defense. Books are too expensive is another — information on the Web is free. Besides, programmers do not learn by reading, they learn by writing. One hand on the mouse, and the other flipping pages leaves no room for typing. Our field ebbs, flows and swings in too many directions, so books are dead before they are even published.
I can agree to some extent with those sentiments. Nevertheless, there is a glaring contradiction that eludes even the most staunch detractors who scoff at reading programming books. Scientifically speaking, reading benefits you. Oh sure, any type of reading benefits you, but given your choice of profession, reading good programming books will really benefit you. If you do not believe me, perform a search on the phrase “the benefits of reading”. Then, consider the following:
Reading programming books increases your ability to communicate technical concepts
In elementary school they call this comprehension and expression. You may not be surprised to find out that the majority of programmers are completely unable to teach other programmers. The reason is primarily due to a lack of comprehension and expression. Coding is accomplished principally through memory recall, with little forethought into the execution. That means when someone else asks you how to do the same thing, you may have a hard time explaining it to them.
Especially if you have a great long-term memory, you can recall several programming techniques, but it is a singular experience. From your brain to the tips of your fingers, and onto the computer monitor. It is a great annoyance listening to programmers who complain incessantly about the novice in the cubicle next to them, but after closer investigation nothing is being done to remedy the situation. Holding hands is not necessary, but a greater ability to communicate alternative methods of engineering solutions is absolutely mandatory.
This is only going to be possible if you can take those highly specialized and technical concepts in your head and form them into coherent sentences. The best way to accomplish this is by reading authors who are doing exactly that.
Reading programming books helps you to understand the why, and not just the how
This is a follow-up to the previous point, but it concentrates on the benefits to you personally, as opposed to the benefits to others. Not only will you be able to communicate technical concepts to your esteemed colleagues, but you will understand why you do what it is that you do. This is the insignia worn by master programmers. It is a badge of honor that is recognized by all because it demonstrates that above everything else, you have passion. You are ill-content with piecing together a solution that does nothing except meet a deadline.
That has peripheral benefits as well. Because you understand why, you can feel comfortable questioning the how. You can disagree with commonly held perceptions because you are well read on several viewpoints, and can speak to each fluently. Experience in the field helps here as well, since academic viewpoints are typically frowned upon unless they are accompanied by work history. Yet, even if your career has been short-lived, if you are well-read it demonstrates initiative and drive.
In the long run most programmers are unhappy with the status quo, but only those who know the why can make a significant impact through change.
Reading programming books introduces you to refined (edited) paradigms
I would not venture a guess as to the ratio, but well-edited programming books are diamonds in the ruff compared to the plethora of cubic zirconia dotting the landscape. Programmers are notoriously bad at grammar and spelling, which is why technical writers can make a good chunk of change for a living. Digging up these priceless gems (okay, enough with that analogy) is difficult, but when you find one, you want to read it, re-read it and re-re-read it again.
These books offer up refined paradigms, and before getting to you they have passed through the hands of other authors, a technical editor, an editorial staff, friends and even family. That is one benefit of reading a programming book. Although it seems implausible, it will be more accurate, or at least on par with anything you will read on the Internet. At this point some of you are reeling with objections, but this is the harsh reality. Even if these books are a flop due to the lack of depth and organization, what is written will undoubtedly be factual.
I have been guilty of tossing out some poorly contrived notions and code samples myself because no one else was reading over my shoulder. No blogger is perfect. No author is perfect either. The latter, however, will always be at an advantage.
Reading programming books distinguishes you from your peers
The final benefit of reading programming books is intrinsic to the activity itself. It will distinguish you from your peers. It is doubtless a hardy majority will take my advice and go on a reading binge, but if you are one of the few who do, then you will be set apart from your coworkers. Even if the classics do not grace your personal library, do yourself a favor and read something remotely related to programming and software engineering. Pick up a book on startups, some tycoon’s biography, business management, usability and information architecture, or design.
Get a better handle on the industry you work in, and you will soon find that others use you as a reliable source of information. A wealth of knowledge is available to you. Please do not wait for your free Personal Pan Pizza reward coupon in order to acquire it.

A day late and a dollar short... comments are closed.
Very Nice !!
Comment by:
Serge
i like pizza
Comment by:
g
As do I.
Comment by:
Brian
I agree a bit with the why and the refinement arguments. I now find myself reading books like “RESTful Web Services” mainly because they provide some notion of strategy. Another book, “Pro XHTML and CSS Design Patterns” provides excellent cross browser strategies that may be spread out in various places like “a list apart”.
Comment by:
Bud Gibson
My 2 cents:
Reading books exposes you to new paradigms, but only if you’re reading the right books. The books in your sidebar (Refactoring, Prag Programming, Design Patterns) are great books that do just that. Reading the latest “Pro Ajax” or “CSS Unleashed” or whatever, won’t. These latter books are about implementation, and will help you get up to speed on a certain technology, but the first set of books are about ideas and will expose you to new ways of thinking. The Little Schemer is a wonderful book about recursion that blew my mind… but it wasn’t really about Scheme and I can’t really write anything useful in it. Structure & Interpretation of Computer Programming is an amazing, amazing book that opened my eyes to a lot of different ideas that I’d never seen before… but I didn’t exactly learn a language from it. There is value in reading any book, but the paradigm exposing ones offer something more (dare I say enlightenment?)
We regularly do book clubs at work, and about 1/2 the sessions are catered w/ pizza or sandwiches. Management is totally on board with it. I work for a publishing conglomerate, so we’re also lucky in getting 60% some great titles (Addison Wesley, Pearson, and others). The books are expensed too, that’s nice.
I highly encourage everyone to start a book club, and my suggestion is to pick a higher level book that will help shape your career instead of your project.
Comment by:
Hamlet D'Arcy
From the article, 2nd to last paragraph: “It is doubtless a hardy majority will take my advice and go on a reading binge, but if you are one of the few who do, then you will be set apart from your coworkers.”
I found this to be confusing. It feels like the author meant to use the word doubtful.
Paraphrased:
“It is certain a hardy majority will take my advice and go on a reading binge, but if you are one of the few who do, then you will be set apart from your coworkers.”
How can he be saying the majority of people who read the article will take is advice and then suggest that if you do you are in the minority?
Perhaps I’m just crazy though. That hung me up for a minute and I thought I’d mention it.
On topic however I love reading fiction and non-fiction. However I’ve read far more programming books than fiction. As I went through school I met very few people who read anything that wasn’t assigned material and even then only if an assignment required and verified that you read.
Even in classes where we were assigned fictional material, most managed to pass with wikipedia cliff notes.
Comment by:
syecon
I think Book-it got canceled because it was a ‘unfair marketing program by pizza hut targeting kids’, and it made kids fat. *sigh*
Comment by:
rob
@Hamlet
The book club is something I have seen work at several companies as well, and it tends to be a forum where a reclusive programmer can feel free to express ideas about what they know best. Thanks for throwing that out there for others to consider.
@syecon
After reading it more carefully, it is not written as clear as it should have been. A few of the hardy majority would be a minority, which should be worded differently — thanks for pointing that out — see, not all bloggers are perfect :)
@rob
Book It! was not cancelled. However, it has received criticism because a few editorialists believe it links unhealthy food with the healthy practice of reading.
Comment by:
Brian
No, but I’d gladly eat pizza if you offered me free programming books.
Comment by:
Michael
I’ve read Homer’s “The Iliad” to set myself apart from the masses. I think that is more than enough to stroke the ego. No need to go overboard. Seriously, I consider reading challenging books with no practical value to be one of the traps of the intellect. Oh, the pale life of the mind!
Comment by:
Robert S. Robbins