Oliver Roick

The Pragmatic Programmer

Twenty years after its initial publication, Andrew Hunt’s and David Thomas’ The Pragmatic Programmer is still essential reading.

Every software engineer has opinions about how software should be built. The views are based on experience with a few programming languages, selected frameworks, and a small range of use cases. They make sense for a limited context, and we confuse them with wisdom and happily apply them everywhere. That’s how cargo cults are born.

The Pragmatic Programmer is a book full of opinions. But authors Andrew Hunt and David Thomas have been writing software for forty years, longer than most of today’s software engineers have been alive. The book’s opinions and advice are grounded in experience that forced them to review and change their views over the years, resulting in the updated second editing of The Pragmatic Programmer, published more than 20 years after its first edition from 1999.

The Pragmatic Programmer is a software-development primer focused on building habits that will make you a better engineer, like learning how to use the Shell and chosen IDE efficiently. It talks about building robust software using contracts and assertive programming and ensuring your software won’t become an unmaintainable mess by avoiding common pitfalls like complex class inheritance, coupling of modules and hand-coded configuration. You’ll learn when to refactor (always), and that writing tests aren’t a waste of time. And because software projects usually don’t fail when developers write code, but beforehand during planning, Hunt and Thomas also cover how to manage projects, gather requirements and estimate.

This book is language- and framework-agnostic. The programming languages used in the examples throughout the book vary from JavaScript, Ruby and Python to C++. Any patterns included are generic and can be applied to many scenarios, whether you build applications for the Web or mobile phones.

The Pragmatic Programmer is essential reading. You will find a ton of advice on how, generally speaking, you can be a better software engineer, advice that will hold up at any stage of your career. For new members joining your team, ditch the bag of useless welcome swag and buy them a copy of The Pragmatic Programmer. It’s better for the individual, your team, and the environment.