The Pragmatic Programmer: Your Journey to Mastery is a super classic programming book written by Andrew Hunt and David Thomas, originally published in 1999. The book is a seminal text in computer science literature and has gained substantial acclaim for its practical, real-world advice about programming. It is a must-read for any software developer.
I first read the book about 10 years ago as I was starting my career in software engineering and found it super inspiring and useful for the most part, but also a bit dated in some areas and examples. So when I learned about the 20th anniversary edition, which revises the original content and adds new topics reflecting changes in the industry over the past two decades I thought it was the perfect opportunity to read it again. And this time, take some notes.
The Pragmatic programmer isn’t focused on teaching any specific programming language, but instead provides general guidance on software development. The authors present concepts as a series of tips, with topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. The text is supplemented with anecdotes and case studies, making the material engaging and easier to understand and apply in practice.
The core thesis of the book is that programming is a craft, and that the best programmers - the pragmatic programmers - are those who:
- are constantly learning and improving their skills
- think beyond the immediate problem at hand, placing it in its larger context
- take responsibility for their work and the quality of their code
- find it easy to adapt to change
- understand that everything in software development is a trade-off, and that sometimes good is good enough
- are able to communicate effectively
- employ a pragmatic methodology to their work
- have mastered the tools of their craft
I’ll add some useful concepts from the book below as I read it and will complete with additional notes and commentary based on my own experience:
- A pragmatic approach
Written by Jaime González García , dad, husband, software engineer, ux designer, amateur pixel artist, tinkerer and master of the arcane arts. You can also find him on Twitter jabbering about random stuff.