Book Review: The Pragmatic Programmer
Another seasoned (read: old-ish) but fantastically practical book for programming students, enthusiasts, or pros looking to improve their ability is The Pragmatic Programmer by Andrew Hunt and David Thomas. I stumbled onto this one while browsing randomly through the local bookstore, and I’m glad I discovered it. If you are serious about software development as a career, I’m convinced that you will benefit from owning this book.
Although Pragmatic Programmer has plenty of expected how-to best coding practices, such as orthogonality, code generation, object orientation, and other tips designed to save you time in the long run, the overarching theme of the book rises above; this theme is something the authors refer to as the DRY Principle – that is, “Don’t Repeat Yourself.” The book bullet-points a total of 22 bluntly succinct tips (these tips are also collected into a quick-reference tear out sheet in the back of the book), and most of these involve concepts to help you fulfill the DRY principle. Though the book is highly conceptual, Hunt and Thomas include a few brief code snippets to make those tips tangible (my only wish is that they could be fleshed out a bit more).
One of the coolest things about the book, in my opinion, is that the authors have made an effort to cover nearly all the aspects of the software development process — from gathering requirements, writing prototypes and tracer code, to coding, testing, debugging, deploying, and writing documentation — brushing each against the DRY goal of non-duplication. This thorough book also includes some out-of-the ordinary sections, such as how to understand algorithm speed and performance. Hacking code, I am realizing, is only a part of the big picture in a successful project!
Some of the suggestions are harder to put into practice than others (such as learning scripting languages to automate routine tasks, and taking the time to learn powerful text editors like Emacs or Vim which have keyboard shortcuts for everything up to organizing a world takeover), but I have no doubt that once the initial time investment is made in learning a scripting language or two, it will pay itself back many times over. I find myself preferring, and ultimately relying perhaps a bit too much on comfy IDE’s and UI’s and costing myself time and wasted mouse manuevering in the long run for the convenience and viewing pleasure. (For the record, though, I’m hooked on the Eclipse editor and I’m not budging!)
In short, it’s hard to read a section without being slightly convicted in one way or the other about things we all should already know (yes, you have to comment your code; yes, you have to document it; and no, your team shouldn’t allow anonymous code). But the topics quickly progress beyond these points and into many other, less obvious, tips and warnings. Hunt and Thomas have drawn from their experience and have done a great job in combining so many great principles into a book that is easy to read, humorous, and fluff-free (say that 5 times fast). Now if only I can gather up the courage to crush those lazy habits, and then tackle Perl and Latex…
Next up for review: Advanced Windows Debugging by Mario Hewardt and Daniel Pravat.


August 8th, 2009 at 6:05 pm
[...] sensible object orientation, Test Driven Development, and so on — pretty much the textbook pragmatic programmer stuff, at least in the [...]