a companion discussion area for blog.codinghorror.com

Programmers Don't Read Books -- But You Should


When did you sneak into my study and take a picture of my book shelf? Not a complete match but certainly there is a lot of commonality there, and just looking round one of the oldest I have to hand is Stroustrup’s Design and Evolution of C++ and although I did often buy reference books back in the pre-internet days they are all long gone. The classics just keep being useful, I mean you wouldn’t see a 20th anniversary edition of “The Windows 32 API Reference Guide” but The Mythical Man Month is just as relevant today and even my 20th Anniversay Edition is now 12 years old!

But even if programmer’s don’t read books they don’t read off the web either, the only time they do is when they need to do something and want to find the answer so you end up getting The CodeProject Programmer who just pulls together a bunch of code from sites like CodeProject but if something goes wrong have no idea how to solve the problem. Learning on the job is fine but then it needs to be structured and guided into better ways of using that knowledge and when indeed to use that knowledge. I know that my continued usefulness in this industry is only because I never stopped learning, and it pains me to see how many people think that having a degree means that is all they need.

All I would say is all us who care have a obligation to keep banging the drum wherever we are to ensure that we together raise the professionalism of this noble art.


Nice! BASIC Computer Games made the shelf! That was the first programming book I ever read.


I come into this upside down, I think, because I was a book lover before I was a programmer, and I read programming books before I got into university. Code Complete was the first programming book I read, and it was a good first choice.

There’s a big difference between reading for theory and reading for reference. Nobody keeps “Introduction to Automata Theory, Languages, And Computation” around for reference, but it’s valuable background for learning about compilers and high-level languages.

I have mixed feelings about Safari books online. They have some great books, but the formatting sometimes leaves something to be desired.


I guess I’m not the average programmer around here. I do a lot of scientific programming and data analysis. So I value books like “Numerical Recipies in {C, Fortran, Radish}”, and references about things like spectral analysis, and data mining.

I do like your bias toward good GUI design.



I used to buy computer books all the time and they would fill up my book shelves at home and the office. I got the safari book shelf from oreilly and I haven’t bought more than 4 books in the past 3 years since getting the subscription. As someone mentioned already, you had to buy “slots” for how many books you want to check out. Well now they have a new tier, which I jumped on, called “library” that removes the limits of what you can see online. This makes it great as a reference tool and if you find code that is good, you can copy much easier than from a book.


Oreilly books are the best!!!


It’s because of the internet, not because programmers don’t want to read books. Mainly all the content found in books can be found scattered on the internet, so why spend $40 for a book, when searching the internet is free.


I think the thing that makes the valuable books valuable is perspective. KR doesn’t just teach C; it teaches a useful way to think about learning a language, a useful way to organize a book, and a useful philosophy of programming (see also ‘The UNIX Programming Environment’). ‘The Pragmatic Programmer’ is a terrific meta-example of this kind of writing. There’s an attitude of curiousity, professionalism and craftsmanship that isn’t necessarily the focus of books like ‘Learn Blub in n units’. I sought out one of Jerry Weinberg’s PL/C primers just to see how a professional programmer thinks about programming and about teaching it, and was richly reward for the time (and thanks, ‘Amazon Used’!) At the same time, there’s a place for the more prosaic ‘how do I foo a whatzit’. I love the idea that stackoverflow will try to mediate between both worlds.


Also, those of you who have ACM memberships, it appears that all of the books listed except for “Peopleware” are available through your ACM PD/Safari.



My favourite interview question is “what is the name of the last book you read about software”. My favourite follow up question is “what is the last software book that you bought”.

Usually, the answer to the first question is “uh, … I can’t remember”, or worse “uh, … it’s been a while since university”.

Answers to the second question are almost along the lines of “I can’t remember when I last bought a book on software”.

This is all very sad.

I have purchased and devoured books on programming and software on a regular basis since the mid eighties. I no longer buy a book a quarter and I have long since moved on from how-to-use-technology-X books.

These days I am looking for books to change the way I think so pure technology books don’t cut it any more.

I suppose this is an experience thing. I’m past the point where I need books to tell me how to use something, I now use books to see how I can learn new ways to think.

Books with new, or challenging ideas are few and far between at the moment.

Also, I have become just as guilty as everyone else at using Google as my crib sheet. I no longer attempt to hold vast amount of information in my head about APIs or cryptic syntax since I can find that information very quickly.

Finally, I still have a copy of the 2nd edition KR C book, printed on high-quality paper. I think it is probably one of the best books ever written on an language. Everything about the language is there albeit only ever mentioned once.

I remember a colleague of mine once telling me that how much she hated the KR book. For her it was a terrible book because there wasn’t enough reinforcement of key ideas throughout it. She found it hard to find things in the book. She preferred one of those 500+ page books on C that were popular in the early nineties.

The thing about the KR book is that it is meant to be read like a novel. It is not a manual. I think that this is why I still find it to be one of the best language/technology books ever written.

I suppose, more than anything, the KR book is about how you think with C. It is far less about how you write a program in C.


Big fan of programming books here too. Websites tend to be a mess of someones else’s code. But more importantly… you have to know what you are looking for when searching the web, whereas a book lays out everything right in front of you. I cant tell you the number of times I reread through an old C# book and saw something very basic, but new to me. Books all the way. I avoid the web as much as possible.


As a developer with intermediate programming skills, I absolutely love reading technical books. When grappling with a difficult concept or technique, it is very helpful to consult different explanations by different authors.

Most technical books are available on-line via bit torrent, and I will typically print out selected chapters related to difficult concepts. Then, to assuage my piracy guilt, I will actually buy the hard-copy of a programming book every few months.

My favorite part of programming is those “aha! moments” when everything fits together. I often experience such moments when physically coding, but I also experience those moments when reading through excerpts from programming tomes. Regardless of the medium, such moments feel great!


Really enjoyed this post. I love reading and discussing programming books, especially in reading groups with coworkers, chatting about what we’ve learned w.r.t. our shared code base.

Typically with programming-related books, the more meta, the more likely it’s readable and shelf-worthy. By the time there’s a book published about learning the syntax of a language or library, often either (1) the beginner’s stumbling blocks have changed in the latest version or (2) there’s a better, community-pounded version online.

My favorite books (and the only ones I could actually sit through reading without a REPL in front of me) are the ones that teach me lessons from the patterns I’ve encountered before, or gently suggest that, hey, a certain way of doing things exists, and maybe come use this as a solution when you have a similar problem.

My most-referenced books lately have been the ones I’ve taken away rules of thumb from. Clean Code (e.g., name and extract your methods/variables so your code is self-described, code at the right level of abstraction, relocate code when it’s green with envy), The Pragmatic Programmer (e.g., tracer bullets), and, if they count, random blog posts from Jeff (e.g., flattening arrow code). What I like most about @codinghorror’s posts is that it’s nice to be able to link to an essay inline when it’s behind a certain decision.


Out of curiosity, are there any good programming audio books or especially good podcast episodes out there?


Is a shame.

I have only read 2 books in full and i’m already ahead on the mean? The C programing language - Ritchie (2nd ed) and Operating systems: design and implementation - Tanenbaun (1st ed [how come I have the 1st ed if i never touched a 5’25 floppy?]). Other books i have only read small useful chunks when class demands.

Im looking forward reading The mythical man-month.


I’ve been on a programming fiction book binge.

I really enjoyed Lauren Ipsum, and highly recommend it. The story was Alice in Wonderland / Phantom Toll Booth-esque, only under the guise of computer science. It does a wonderful job at going into the ‘thinking’ behind programming and it was story driven enough to read it to my non-developer wife (with her enjoying it). Its littered with cute puns and really clever double entendres through-out and the whole story culminates into a very powerful ending that really impressed upon me. Its approachable enough in its language that it could go well as a children’s bedtime story much the same way as Alice In Wonderland might be used…

Another excellent book is the compendium “The Wiz Biz” which is actually two books from a 6 part series (I have yet to bother picking up). A somewhat high-fantasy novel, It involves a ‘computer wiz’ who is teleported to an alternate dimension where incantations take on a form quite similar to programming languages. The book is a wild ride that follows his journey as he explores that universe and beings to teach others about how to perform that computer wizardry.


Really enjoyed this one too. It’s definitely one that stuck with me after reading a number of other books over the past few years.


Here is why books and the Internet make a great match. As a programming author myself and blogger at http://lampload.com I have found that the two compliment each other a lot. The web is great for answering and solving a problem; especially if you can make sense of the answer and know good code from bad, or the best code.

On the other hand, books allow you to learn something new since you may be reading information and are presented with something new. Although you can just read websites and learn too, you may find books that have been edited and polished to be a better source than sorting through tons of websites to find gold.

Then comes the eyes, ereaders and books are much easier on the eyes. On top of that, you may find the odd book that is irreplaceable and referenced lots and solves your problems faster than web surfing.

In all honesty, the more sources you read allows you to learn more and developer a deeper understanding into coding.


Programmers don’t read any books to be precise. How long this can continue? Do read the information only in short forms like tweets, if given a 4 or more lines it becomes reluctance .