Average Customer Review:
( 297 customer reviews )
Write an online review and share your thoughts with other customers.
Most Helpful Customer Reviews
227 of 237 found the following review helpful:
A fresh, thoughtful, engaging approach to programmingJun 24, 2000
By Melissa D. Binde
I bought this on a friend's recommendation, but expected yet another book rehashing the same standard rules: write comments, don't duplicate code, have plans for your projects, eat your vegetables.
Hunt and Thomas vastly exceeded my expectations. This book is never dry, often humorous, and always educational. They don't always say what you expect them to say (e.g., about commenting code), and I didn't always agree with them, but every sentence is full of thoughtful analysis.
One of the best features is their incredibly practical advice -- while yes, this book does teach philosophy and encourages thought, it also provides many immediately-implementable suggestions.
If you aren't a programmer with 10 years experience, buy it anyway -- it is not just for experienced programmers. While you will absorb less of the book, there is still enough to learn, and it's a great book to keep and re-read.
The book includes a pull-out card of the pithy sayings the authors use to sum up each section. Perhaps my mind just doesn't work the way theirs does, but I didn't find their summations to be helpful all the time -- I found myself frequently having to flip back to the section to remember what a particular phrase meant. But it's still useful.
117 of 125 found the following review helpful:
Nicely doneMar 07, 2001
By B. Scott Andersen
Most software engineers don't have the opportunity to spend time with their colleagues and just talk about the craft of software development. While you can't have a conversation with a book, Andrew Hunt and David Thomas will talk if you will listen--and listen you should.
The Pragmatic Programmer is a collection of ideas, observations, and recommendations for software developers. Throughout the book, they highlight these notions in a set of numbered tips, about 70 of them, which are collected on a single tear-out card situated in the back of the book. Just reading the tips, without reading the text of the book, might make these gems seem trite, empty, and obvious. But, they're not!
Many of the tips actually build upon previous ones, like tip 4: "Don't live with broken windows", which urges programmers to fix problems and clean up messes, and tip 20: "Keep knowledge in plain text." With some books like this you can skip around--but this one is better read from beginning to end.
There is plenty of ideas to consider, agree with, and, perhaps, disagree with, too. You can also feel a little passion. "Conventional wisdom says that once a project is in the coding phase, the work is mostly mechanical, transcribing the design into executable statements. We think that this attitude is the single biggest reason that many programs are ugly, inefficient, poorly structured, unmaintainable, and just plain wrong." Hooray for authors who take a stand and then back it up with well reasoned arguments!
Reading this book isn't a substitute for having that conversation with a colleague about the craft. But, The Pragmatic Programmer is worth listening to in the mean time. It is a good, solid, fun read.
70 of 73 found the following review helpful:
Wisdom and Humor -- what a rare findJun 01, 2000
By Holm Court
This is, simply, a wonderful book. It is a book that celebrates the real depth of great programming -- something that is too often forgotten or ignored. This is not an idiot's guide to anything -- it is a remarkably entertaining set of dozens of tips to becoming better at what you do, especially if that happens to be programming.
The tips are deceptively simple at times, but only a truly naive or inexperienced reader would miss the rich depth that their combination presents. In fact, that is the real beauty of this book -- it does not present some short-lived miracle-cure approach -- instead, it weaves together small bits of wisdom and practical advice into a powerful work-style.
They have some controversial views -- these authors are witty and opinionated -- but agreeing or disagreeing with each individual idea is not the point -- "seeing the forest" is.
There are numerous specific code examples, but the book is a fun and easy read -- strangely, I also think it would be a wonderful book for someone who is NOT a programmer, but who works with them, perhaps a business manager having a major system built. Even skipping all the really technical parts, it would be a wonderful set of benchmarks to assess how good your programmers really are -- much more powerful than "he has 3 years of C++, 2 years of Linux"...
I am hoping this writing team will follow this book with some specific guides as well, but this one is destined to be a classic. These guys really know what they are talking about, and, as a wonderful bonus, they are terrific writers, as well!
The book has gotten great reviews on slashdot, as well as a couple of programming magazines, including Dr Dobbs and Software Development -- they were well deserved. Buy IT!
145 of 159 found the following review helpful:
Aesop's Fables for programmersFeb 04, 2009
By Lance C. Hibbeler
Well, after reading most of the glowing reviews here, I was pretty interested in the book. I thumbed through it at a bookstore, and ended up buying on Amazon (kudos for the lower price). I read the book, and became confused. I made sure the reviews matched the book title. I read the book again. Quite frankly, I don't see what makes this book so great- not that it is bad and/or a waste of money (though it is on the pricey side given how little you get- big font and big line spacing, like a 7th-grade term paper)- it just isn't the greatest thing since sliced bread.
The authors have compiled a list of several tips to keep in mind while programming. Ultimately, I think this is their answer to Fred Brooks' searching for a silver bullet in The Mythical Man-Month, based on their years of experience in the field. It ends up being a lot of "eating your own dog food," in my humble opinion. Just because they met with success using a certain method/tool (usually on financial software) doesn't mean you will. Not all programming practices transcend all boundaries and are generally applicable to all programming problems. Some people are faster and more capable (and more comfortable) with an IDE than with a plain text editor; get off your high horse. I don't agree with most of the tips. Some, however, are absolutely necessary, such as version control. Every tip is tied to an analogy or some story outside of programming- which may be nice to some, but I see it as an insult to a reader's intelligence. Every single tip? Really? Not necessary....really.
The majority of the book is language-independent, which is nice. There are a few humorous moments spread throughout the book, and it is overall a very easy read- not at all like reading a technical work, despite the content. I think the book is definitely worth a read...the tips are all rooted in common sense (or pragmatism, if you will). The advice is sage-like, which to me means listen up and listen closely, but take it with a grain of salt and adapt the morals of the story to your own coding practices.
29 of 29 found the following review helpful:
Learn. Think. Program. Perfect.Jun 30, 2015
By Peter J. Hanson
This book provides sound, practical advice that makes sense on almost any development project. The Pragmatic Programmer is not limited to a specific niche or language – any developer can take and apply these principles. It employs a good, familiar writing style which makes the book easy to digest, and the material is quick to absorb and apply.
Thomas and Hunt present content that is useful for everyone from the novice to the expert. They organize their advice into approximately 46 topics that cover a wide range of programming best practices. The tips build on each other throughout and are loosely categorized so that tips on similar themes are grouped together. To get the most out of it, I suggest reading the whole book, or at least sizeable sections, beginning to end to clearly see how they integrate. However, because there are so many tips, integrating them all at once initially may be difficult. It’s easy to bite off more than you can chew here, so perhaps a good starting point is to begin with the tips that are most relevant for you and branch out from there. A couple of sections resonated strongly with me:
1) A useful practice that I operate by and push my developers to operate by is refactoring (Chapter 6 – “While You Are Coding”, p. 184). This book provides a framework for the appropriate mindset to take on how to handle and maintain a code base. In refactoring, you don’t relate the software so much to a construction project but to creating and maintaining a garden – code is dynamic and its environment is ever changing. You’ll need to adapt and adjust code as the project moves along, and developers need to operate from the mindset that they’ll need to change things and adapt their code as they proceed.
2) Another practice that I follow extensively is Design by Contract (Chapter 4 – “Pragmatic Paranoia”, p. 109), or the idea that you build/structure elements to a defined contract. This could be a contract between systems, classes, or even functions. I use this approach with both my local developers and external developers, and this book gives a good framework and guidelines on how applications and classes need to work. For example, I can define a contract for how a base class and its subclasses need to work and interact, and then work with a developer to provide the specific implementation for that class. I also use this approach for APIs when coordinating with an external team to handle an exchange of data.
I’m a software architect and developer with over 20 years of industry experience across a number of languages and systems, and I’ve completed hundreds of projects both individually and with technical and cross-disciplinary teams of varying sizes. Most of the subjects covered in this book are best practices I look for or insist on establishing on my projects to ensure work moves along smoothly during development. This book covers the spectrum – it’s equally useful to me, my project managers and developers, and those just getting into our industry. It’s a solid book to return to every once in a while to make sure you’re in alignment with best practices. I highly recommend it to both new and experienced developers. I hope it helps you as much as it’s helped me.
See all 297 customer reviews on Amazon.com