a companion discussion area for blog.codinghorror.com

Programmers Don't Read Books -- But You Should


To learn C, even as a first programming language “C for Dummies” is brilliant. He even offered free extra chapters online because they wouldn’t fit in the two volumes (and claimed he wanted it bound sold as one book but couldn’t publish that). It’s what I learned from, and I’ve had offers from the big players with infamous hiring practices fresh out of school.

It does have some concepts that are widely applicable, too, but the focus is on learning how to make C go. Not how to make C go efficiently, not how to make sound architectural decisions (beyond a certain point). It’s a bit dated, with sample code that only runs in pure DOS with compilers using long-deprecated functions and formats that aren’t valid C99. But it does what it advertises and it does it well: read it and you will know C thoroughly (and have a very minor grasp on what C++ adds/changes) and will be able to understand strange edge-cases and and the strangest, most convoluted code; fake classes like a champ; understand common data structures and fundamental algorithms like quicksort. I have never found pointers in the least bit confusing; maybe I’m far more brilliant than these Internet people, or maybe this guy just explains it well. Or both. I think both :).

I would never claim that every, or most programmers should read this book. It’s not anything close to Code Complete in importance. But I would definitely recommend it for somebody trying to learn C, despite the datedness. And it’s far more entertaining than any of those other books.


Hi Dude,

hows the Job at Amazon going? :wink:


Hi Jeff,
I read your blog for some time (almost a year) and I love it. But I just had to say; I disliked your comment about PHP. I know it was a joke, but still…

I started with PHP (as a regular script-kiddy ;), went back and forth between a whole lot of other languages (including REAL languages, such as Java), but am now back to PHP again. Why? Because the power of PHP is endless. And they keep developing the language, which is a good thing.

I just wanted this off my chest, because everyone who seems to call himself a ‘good’ or ‘respectable’ programmer seems to dislike PHP. But I challenge every one of those programmers to get the best out of the language. Because what most people do with PHP might be lame, but what you actually CAN do with PHP is certainly not.

P.S: I blame the general PHP books for giving PHP its bad name. There are so many PHP books where the scripting (easy hack-fix mentallity) is explained, but almost none seem to care about the great OO-sides of PHP.

Things will be better for us PHP-programmers one day :frowning:


The quality of technical books varies, from author to author, from publisher to publisher. Around the time of the original Internet bubble, like the tech market, the book market was flooded with crap.

I think the typical quality has improved, but there’s still a lot of useless stuff out there. You don’t need books on syntax – web references, rich IDEs, robust compiler messages and Intellisense-like features take care of syntax.

There are, however, certain software books worth reading. GoF, Fowler, most of the Pragmatic Bookshelf, McConnell, etc. There are also more technical books on specific products worth reading, like Richter’s stuff on .NET that really gets deep under the hood.

On that same note, there are LESS technical books that every good developer, or anyone with any sort of ambition, ought to be reading, like The Innovator’s Dilemma and Crossing the Chasm.



This blog made a great read. It would be great if you could take a look at another problem which programmers need to look at. This would be the approach on taking up a new technology in a time constrained project. An analogy would be the following:

If you are asked to learn to drive a car within a specified time, does it make sense to spend some time and effort to learn rudimentary ideas about internal combustion engines, gearboxes and brakes? It is entirely possible to drive a car without knowing about anything under the hood. But does having the basic knowledge help in anyway?

I have blogged about the approaches at http://wesleyneo.wordpress.com/2008/05/01/learning-methodologies/ It would be great if you could provide some insights into this.



No new blog today? I’m guessing you’re not reading a book but are instead playing GTA4 non-stop…


I read alot of programming books and can’t remember any language that i’ve learn’t solely with writing code. My style : read about the language , write some code and optimize code.Tech blogs are gradually replacing programming books.Is that a good thing ?


I found the Head First Design Patterns book to be a very easy and interesting read.

The Art of SQL was also a very useful book.


My view is there are four types of programming books …

1 : Overview how to - Most of your top 5 : no specific language (maybe for examples) but lots of explanation of why : Buy to Read

2: Getting started - Dummies guides, xxx in 48hrs etc - Mostly good books, but read once and throw away so better to read online? : Don’t bother? with a very few exceptions (The C Programming manual)

3 : Reference books - (overlap with 1) in depth algorithms and guides and lookup tables : Buy to keep

4 : How to Guides : Cut and paste step by step guides - Usually badly done, out of date, and mindless with no explanation and so worse than useless (except in a very few cases) : Avoid!


Using online tools is much quicker.


When I started programming, I read MANY books. Over time, as my skills improved, I found I read fewer books and used the Internet more. Looking back, I think that once I had the base skills I needed, learning new languages was just a matter of adapting to different commands/syntax.


I found a lot of my big thick “reference” books at goodwill for about $2 each.


Mostly I refer to official manuals, but I also read books.


“And yes, it will always be better to have a paper book of 900 pages than a big pdf file to read in a screen.”

That’s entirely a matter of habbits and opinion. If you just want to go read your book on the beach sipping your drink and look like in a movie… well, you have no other choice.

If you want to search trough books concerning your probmlem at hand, WHY would you have to get up from the computer and start flipping pages if instead you could enter a search and have the references list of WHOLE LIBRARY!!!

I would say there are (still) SOME uses for books printed on paper but I would be brave enough to say, that most of them are “historical” or traditional nature. Books on paper will be something you will see only in museums in 50…100 or so years, when everything will be digitized and recallable on devices with more convinient user interfaces.

Even today books are printed “on demand”… which already tells me that it’s a thing of a convinence, not necessity.

Programmers should be first to drop this aristrocratic abstraction of information as “books” and start seeing well packaged chunks of “the flow”, “learning sessions”, “verbal experience” or whatever is suitable according to content. I understand this is a paradigm shift that will not be well accepted until generation (or two) changes.

This does not stop programmers as technologycally un-challenged people to adopt such attitude YESTERDAY.

Or as your article already kind of confirmed, they mostly have done this in one way or another.

So this is "A Good Thing"™. Programming books are prime candidate for trying out digital distribution models, go with it! And take your publisher on the ride with you.Then complain that sales have dropped.

Right now your article mostly says:“Look, I’m cool the old way! And you should be too, because… emm… ojeah! reading stuff on the computer display is shit!!”

My proposal: buy a better monitor. It probably costs only 2…3x more you paid for your current crap.


Personally I find programming books to be a great resource for building my programming skills/knowledge. I especially favor O’reilly books.


frankly, i don’t think you can beat a good book when starting out in a particular technology. you can ramp up much quicker cranking out a book than piecing information together on the internet. for the quick answer, the internet is the best.

you can also gauge someone’s knowledge in other tech fields by the books they have on their shelf. for example, i probably wouldn’t hire you if you’re an oracle dba and never read a tom kyte book.


Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers) (Pragmatic Programmers) [ILLUSTRATED] (Paperback)
by Michael Nygard

It changed the way I think when I am programming. It helps me keep the big picture in view.


People don’t read books because they don’t care about why things work the way they do. Like any other profession or endeavor taken seriously, one needs to know not only the what, but the why.


I hear a lot of comments about the price of coding books. I am not sure what city you live in, but I live in Milwaukee, WI and have checked out your top 5 books (and many others) from our public library for free. True I don’t have them on hand as a reference, but that is what the internet is for. I am looking more for high level concepts. They also give me some direction in my internet searches.


My proposal: buy a better monitor.

Uh-huh… where can I get a 1000dpi high contrast display that requires no power to use, that I can scribble on and can be stuffed in my bag, thrown around and then read in the bath?

I’d love to hear your example of a ‘better monitor’.
“Man books are expensive! You can read this stuff just as easily for free on a $3000 monitor.”

I like O’Reilly Safari and Google Books - very useful for looking stuff up quickly, but I wouldn’t want to read through all 960 pages of Code Complete on a screen - no matter how good the monitor was.

Can you honestly say you would?