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.
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.
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.
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.
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.
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.
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.
24 comments
[ 3.1 ms ] story [ 78.5 ms ] threadOwn? No.
I prefer _The Practice of Programming_ by Kernighan and Pike, personally.
Most of the stuff mentioned in the book should be covered in schools, but usually isn't.
This is more for people who aren't (yet).
Especially true in IT, IMHO.
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.
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!
Anyway, glad to see conversation around these books.
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.
> 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.
It's not the definitive book, if there will ever be one. But is a good reading.