The Pragmatic Programmer, a timeless book
This year I reread the legendary The pragmatic Programmer by Dave Thomas and Andy Hunt. I personally believe that rereading technical books after some years of experience is worth it, you’ll always understand something more, or learn. With this book, it was no different, everything happened.
The first time I read it, I was a young developer starting my professional journey as a software engineer, I remember reading some chapters and doesn’t understand not at all, but the final feeling was that I was reading something nice and great, especially the first chapter, this part of the book helped me a lot to understand the software engineers life, and how to manage my work and future.
Overall, the feeling was even better, now with many years of professional experience writing software, all the wisdom of this book was more worthwhile and impact. Every sentence makes you think about it, and every chapter makes hours of reflection on our work.
A must-read book for every people working with software, with any experience, this book will be worth it and make you a better professional. This book is soft and doesn’t have many codes, but it will make you learn more than in any book with many pages of code.
Pragmatic Programmer is timeless, it will keep being read by many generations of developers, as is being by more than 20 years from the time this post is written. Even more worthwhile than reading it one time, is to keep visiting it for your entire career.
The following text as taken from the Pragmatic Programmer second edition Postface, it made me reflect on the importance of what we do and certainly gives a preview of the wisdom contained in this fantastic book.
In The Mythical Man-Month: Essays on Software Engineering, Fred Brooks said “The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from the air, creating by exertion of the imagination.” We start with a blank page, and we can create pretty much anything we can imagine. And the things we create can change the world.Dave Thomas and Andy Hunt, Pragmatic Programmer second edition Postface
From Twitter helping people plan revolutions, to the processor in your car working to stop you skidding, to the smartphone which means we no longer have to remember pesky daily details, our programs are everywhere. Our imagination is everywhere.
We developers are incredibly privileged. We are truly building the future. It’s an extraordinary amount of power. And with that power comes extraordinary responsibility.
How often do we stop to think about that? How often do we discuss, both among ourselves and with a more general audience, what this means?
Embedded devices use an order of magnitude more computers than those used in laptops, desktops, and data centers. These embedded computers often control life-critical systems, from power plants to cars to medical equipment. Even a simple central heating control system or home appliance can kill someone if it is poorly designed or implemented. When you develop for these devices, you take on a staggering responsibility.
Many nonembedded systems can also do both great good and great harm. Social media can promote peaceful revolution or foment ugly hate. Big data can make shopping easier, and it can destroy any vestige of privacy you might think you have. Banking systems make loan decisions that change people’s lives. And just about any system can be used to snoop on its users.
We’ve seen hints of the possibilities of a utopian future, and examples of unintended consequences leading to nightmare dystopias. The difference between the two outcomes might be more subtle than you think. And it’s all in your hands.