DEV Community

Ben Steadman
Ben Steadman

Posted on

The Pragmatic Programmer 20th Anniversary Edition Series

This post originally appeared on

For twenty years, the lessons from The Pragmatic Programmer have helped a generation of programmers examine the very essence of software development, independent of any particular language, framework, or methodology.

-- The Pragmatic Bookshelf

The original version The Pragmatic Programmer by David Thomas and Andrew Hunt has been an extremely influential book for me and (without a shadow of a doubt) many others. However, although a large amount of the essence of the book is still relevant today, most of the technological references are very much outdated. The authors recognise this:

But 20 years is many lifetimes in terms of software. Take a developer from 1999 and drop them into a team today, and they’d struggle in this strange new world. But the world of the 1990s is equally foreign to today’s developer. The book’s references to things such as CORBA, CASE tools, and indexed loops were at best quaint and more likely confusing.

-- "Preface to the Second Edition" The Pragmatic Programmer 20th Anniversary Edition

So I was indeed excited to hear that the 20th anniversary edition will contain brand new topics alongside revised/updated topics from the original book! The new edition follows the same format as the original, with challenges and exercises throughout each section - perfect for a blog post series. In this blog post series I will be providing my own answers to the challenges and exercises as well as thoughts/analysis on some of the topics.

To end this introduction, I would like to thank David Thomas and Andrew Hunt for their dedicated work on The Pragmatic Programmer and I encourage readers to purchase the book from The Pragmatic Bookshelf.

  • Note that at the time of writing, the book is in Beta so minor changes and updates may be made before it's full release (all of which are available to Beta purchasers as and when the updates are made public).

Top comments (0)