The Independent Magazine for
Software Development Professionals
Two Ways to Keep Up
1. Newsletter
Our newsletter policy:
No list sharing of any kind.
No "special offers" from "partners."
No "webinars." No "Special Reports."
No junk.
2. RSS Feed
Are you missing out on RSS?
Click to learn more.

Articles

Blogs

Add to Your Reader:
Search Now:
VBScript Programmer's Reference
Discover the full power of VBScript. Windows Script Host, ASP, ADO, Microsoft Script Control, error handling and debugging, regular expressions, classes, FileSystemObject, Dictionary, script encoding, script components, and more.
All content copyright 2000-2006 by the individual specified authors (and where not specified, copyright by Daniel Read). Reprint or redistribute only with written permission from the author and/or developer.*.
A Classic in the Field, Updated & Expanded
Foreword by Andrew Hunt
Nearly 60 Essays by a Software Pioneer!
“One of software's most versatile and creative writers.”
20% Off the Cover Price in the US!
More Ordering Options
Google
Web
developer.*
Book Review

The Pragmatic Programmer: From Journeyman to Master

By Andrew Hunt and David Thomas (Review by Daniel Read)

Addison-Wesley, 2000, 321 pages (ISBN 020161622X)
Posted September 1, 2002

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:

  • Requirements
  • Design
  • Choosing tools and utilities
  • Teamwork
  • Testing
  • Documentation
  • Automation
  • Change Control
  • Source Code Control
  • Estimation
  • Quality

In addition, the book is also filled with code-specific advice:

  • Algorithm speed and tuning
  • Prototyping
  • Language choice
  • Debugging
  • Assertions
  • Exception handling
  • Coupling
  • Refactoring
  • Code Testability

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.

Related Information

Daniel Read is editor and publisher of the developer.* web magazine. He lives in Atlanta, GA, where he works as a software architect and programmer. He is currently at work on about a million different things.