
Pragmatyczny programista
Od czeladnika do mistrza
Authors: Andrew Hunt, David Thomas
I first read this book almost 10 years ago, but didn’t write a proper review at the time. Over the recent Christmas break, I revisited it and gave it a second read which resulted in bit of Go programming 😁.
Reading it in 2025, you can feel the book is dated. The authors are enthusiastic about Java and CORBA1, and use Perl for daily tasks. Even though I did similar things around 2015, my workflow has changed since then. Newer tools and architectures have made things even simpler.
However, some lessons from this book have stayed with me:
Learn a new programming language each year.
I still follow this advice. In 2025, I focused on Go and really enjoyed it. Go feels a bit low-level, similar to C, but with many modern conveniences like automatic garbage collection and efficient concurrency with Go routines. I still use Python for quick scripts because it’s faster to write, but for multithreading and algorithmic tasks, I prefer Go. It’s incredibly fast.
Choose one editor and learn it deeply. Use it for everything.
This advice also stuck with me. Over the years, I’ve tried many editors: Vim (never Emacs), Gedit, Scite, Brackets, Sublime, Atom, VS Code, and recently Zed. While I’ve switched between them, I try to use just one at a time, loading it with extensions for the languages I use, learning its execution and debugging modes, and optimizing small things like tab width for Markdown. I use the same editor for coding, note-taking, and even presentations .
I may not use every feature, but I rely on:
- multiline edits,
- block selections,
- moving lines up or down,
- deleting lines,
- syntax linters and completions.
This lets me focus on my work, with the rest handled by muscle memory.
Suggestions like “keep code in SCM2” or “use tests and assertions” may seem obvious now, but when the book was written, not every company or project used tests. I’ve worked in such places, and it wasn’t fun.
If you work in tech, this book is still worth reading. Its main concepts and lessons remain relevant: it emphasizes continuous learning as a core part of professional growth, and encourages you to master your tools-especially your editor and workflow-to work more efficiently. The authors stress the importance of code quality through version control, testing, and automation, and remind us to stay adaptable, ready to refactor and embrace change as technology and expectations evolve. While specific tools may come and go, the core principles of craftsmanship and pragmatic thinking endure.
The book’s practical advice on habits, tools, and mindset remains valuable, even as the technology landscape shifts.