Monday 17 March 2008

The Pragmatic Programmer

I just finished reading The Pragmatic Programmer: from journeyman to master by Andrew Hunt and David Thomas. I'll be straight with you: I bought it because it is listed in Steve Yegge's list of great books. Okay, that's not the only reason; there are plenty of other bloggers that also have great things to say about it. I hoped that it might be particularly relevant to me because sometimes I am too much of a purist/perfectionist and not pragmatic enough. In this regard I misunderstood the title - I expected the subject matter would touch on the tension between perfection and pragmatism, but this is not the case. Calling the book "The Smart Programmer" would be more exact, though probably not as marketable. All programmers think they are smart, so who would buy a book with a title like that? This book is a bit odd. It reads more like a series of blog posts about good software development practice than a textbook. Part of the reason I say this is the sections are quite short and diverse - it never goes into a great deal of depth. Topics covered include error handling, debugging, testing, refactoring, gathering requirements, development environments, algorithms, prototyping and many more. But through all these topics, I can't really point out anything the book discussed that I wasn't already familiar with. Hence my previous comment about the title. Its about being a better and faster programmer - I don't equate this with pragmatism. The reason The Pragmatic Programmer had so little to offer me is that I've already read so many blogs and articles that touch on the same subject matter. Good software developers analyze their own actions and constantly seek to improve their processes and expand their knowledge. If you've already been doing this for a few years, then this book probably won't offer you much beyond some reinforcement. I can't help but wonder whether I will be saying the same thing about Code Complete by Steve McConnell once I finally get around to reading it. Its an extremely popular book, often listed as the number one mandatory read for developers. Apparently much of the book is 'common sense' and that rings very true of The Pragmatic Programmer also. Next book on my list is Domain Driven Design by Eric Evans. I was told to read this years ago but I was stupid and ignored the advice and now I'm worser for it. But, its never too late to set things straight - I'm a few chapters in and its proving to be excellent.


  1. Umm, any reason you weren't this enthusiastic to learn when you worked with me?

  2. Hey Mal,

    I tried to explain this in my very first blog post. But I didn't do a very good job of it.

    Basically, Steve Yegge's writing convinced me I was lazy and ignorant. I have tried to pick out a particular post to blame but the fact is that there isn't one. In addition to the posts hosted on his current blog, he wrote a bunch of really interesting stuff on an internal Amazon blog which can be found here.

  3. I just finished reading this book. Overall I found it decent though some of the detail in each section is too brief. To be honest, a lot of what he writes is common sense for a decent developer and while I'm satisfied with the content, I'm not too impressed.

  4. Sounds like you felt the same way that I did Alvin. I think I would only recommend the book to someone fresh out of uni with no practical experience. If you've been 'in the trenches' for a few years then you should already know this stuff.