Hunt and Thomas's The Pragmatic Programmer is the logical companion to another great book about software construction, Steve McConnell's Code Complete. Indeed, these two books make great companion volumes. Were they from the same publisher, they could be sold as a set. While Code Complete focuses us the mechanics of writing code, with some attention paid to peripheral subjects such as unit testing and debugging, The Pragmatic Programmer focuses entirely on "peripheral subjects."
The stated aim of the book is to help the reader "become a better programmer," but not in the sense of teaching algorithms, syntax, or the latest design patterns. Rather, the authors' intention is to mentor the reader on the many tasks, techniques, principles, and strategies that go into being a professional programmer. Being a professional developer is so much more than writing code, and very few books make a point of covering these topics. Here is a partial list of subjects addressed in The Pragmatic Programmer:
In addition, the book is also filled with code-specific advice:
As you can see, the book is very much a mixed bag, covering a wide variety of subjects. This works, though, because the book does not attempt to be a book that you must read from cover to cover. It's very easy to jump around and read what interests you.
What I particularly like about this book is that it is representative of a growing movement of people, including myself, who are promoting the idea of software development as a craft, de-emphasizing the engineering metaphor, and stressing personal responsibility and pride of workmanship. Yes, there are parallels between engineering and software development, especially with certain types of software and certain sizes of teams, but even on the largest, most technical projects, where the rubber meets the road is the point that a developer sits down in front of a terminal and writes the code-and that's where craftsmanship comes in.
The trouble is, schools are not teaching this (not as far as I know anyway), and most programmers just starting out in their careers are not fortunate enough to work under a mentor who can and will pass on the lessons Hunt and Thomas do their best to pass on in The Pragmatic Programmer. If you've been in this game for several years, there may not be much in this book that will be new or exciting to you. However, if you're starting out, and want to expand your horizons and hone your craft, The Pragmatic Programmer and Code Complete are just what you need.
Finally, this is a book that is very much "in the now." Hunt and Thomas are very much in the vanguard of recent-favorite subjects of technology authors such as agile methodologies, test-first development, open source, and open standards. They are clearly Unix-oriented, and enjoy evangelizing the virtues of things such as plain ASCII text, shell scripting, and command line interfaces. Microsoft-oriented or GUI-oriented developers might feel a little left out, but don't let that scare you off. Hunt and Thomas make it worth your while, and exposure to an alternative point of view never hurts.