24 comments

[ 3.1 ms ] story [ 78.5 ms ] thread
Great book. This is the one book that got me started getting professional about programming. I should really read it again these days.
This is one of the best books I've read about software engineering, along with Code Complete. I completely agree with the conclusion of the review, every programmer should be required to own and read this book.
Required to read? Sure.

Own? No.

Personally I'd say own simply because it's a book worth rereading yearly or at least every other year, which means I'm due for a reread.
I found the book underwhelming after all the praise I had read of it, because it seemed little more than a collection of common knowledge - I didn't get much out of it. On the other hand, for people very new to the craft, it may be more valuable for precisely the same reason.
You also have to keep in mind that this book was written 10+ years ago, when most of this was not actually common knowledge. :)
And that some common knowledge only appears to be.
Programming bloggers have strip-mined it for material over the years, so you've probably already read much of it by osmosis.

I prefer _The Practice of Programming_ by Kernighan and Pike, personally.

This, and it's also a great book to give to junior hires or interns.

Most of the stuff mentioned in the book should be covered in schools, but usually isn't.

If you found it underwhelming, you're probably a pretty good programmer, knowledgable about best practices.

This is more for people who aren't (yet).

"Common knowledge is not so common".

Especially true in IT, IMHO.

Yeah, I enjoyed it when I first read it (about when it first came out), but I tried to reread it more recently, and found it patronising. I think these pragmatic programmer books are like the pop-psychology of programming books. They're easy to read, written in a light humorous style, but have low density of information and lack deep insight.

This was the best out of their books that I've read, and at the time, like I mentioned, I enjoyed it and got a lot from it. Not now though.

A lot of the chapters are just a "word soup" with a bunch of motivational words and vague admonitions. For such a non-technical and imprecise book, I'm surprised how widely lauded it is among software engineers.
For me, the "word soup" was the authors trying to get across why they did the specific things they did. While many of the individual practices are widely known today, knowing the underlying why is the only way to get real value out of the techniques or to let you know when you should abandon or adapt them.
I was lucky enough to find this for $10 in the SUB at my school. Haven't delved too deeply into it, but it seems good so far.
The Passionate Programmer is another must read Prag Prog title.
What did you find enlightening about this book?

I've tried to read it 3 times now and each time put it back. I find it dry and lacking of any new insights or actionable advice:(

I really would like to get some worth out of this book!

Brief suggestion: You pages should mention the authors more prominently. I didn't bother to allow scripts, but as near as I can tell, I have to look at the (smallish) cover art or for a reference in the body text, to see who the authors are. (And if it's too small on the cover as represented, it's a click through to Amazon.)

Anyway, glad to see conversation around these books.

GUIs prevent truly proficient programming

I /hate/ this line of thinking. Do we really think that the perfect way to interact with a computer was somehow stumbled upon in the 1970s and can never be improved upon? The computer does not think in ASCII, WE do not think in ASCII - it's no less of an abstraction than any other form of GUI.

Like the colour syntax highlighting in your vim setup? Fond of autocompletion? Enjoy having multiple pages of code, side-by-side? YOU ARE USING A GUI.

I apologise if this sounds vitriolic, but it's important. Programming is the expression of intent. We're never going to progress to more pure forms of that expression if the people designing our tools believe that we've already reached nirvana.

Nice review, though; I'll check out the book.

Do check out the book. It's full of very good things.

> stumbled upon in the 1970s and can never be improved upon

Certainly it can be improved upon, and I'm pretty sure even GUI haters must know that. We're just waiting for that to happen, and maybe trying to think how to make it happen.

The big schism comes because there are "GUI people" who think it's the total answer to everything, if only we can make better widgets or something. I don't hesitate to tell such people they're missing something.

Indeed; the other pole is just as bad. I'm guessing at some point they're going to meet in the middle and something wonderful will be born. If I could create great software by staring into a flashing light whilst waving my arms around and humming, I'd be all for it - but we have a ways to go yet.
I agree. Nothing worse than having to cram your working memory full of arcane commands when you could be using it to help solve the problem at hand.
This book is like a self-help book... it mostly makes you feel good, otherwise mostly worthless. People who like this book are probably bad programmers.
This book is worth reading even for veteran programmers; there are a few good parts in it: the orthogonality idea, the DRY principle in all its implications, etc.

It's not the definitive book, if there will ever be one. But is a good reading.