This week’s selection is “The Pragmatic Programmer” by Andy Hunt.
Apologies, but this book has NOTHING to do with 3D printing. Well, that’s not entirely true because many people involved in 3D printing projects just happen to also be programming. Many 3D printed objects are “smart”, and the “smart” part comes from the software that drives the system.
Some of you will in fact be those programmers, and you can obtain quite a bit of value from this book. In fact, it’s likely a number of you have already read it, as it’s one of the classics related to the programming profession.
Does it teach you how to code? No.
Does it teach you a programming language or platform? No.
What it does do is take you into the practical world of producing software, which in companies is most often done on teams. That environment poses specific challenges that must be faced by the programmer when they attempt to complete their software compositions.
The key to this book is a specific word in its title: “Pragmatic”. The book is intended to refine the process of programming to a more effective and productive level.
There are many ways to devise a computer program, and there really is no absolutely “correct” answer. Thus there are decisions and compromises all along the way, and this book provides a means to navigate them.
It’s written as a series of standalone stories, each of which teaches particular points. These tips, in aggregate, will no doubt improve your programming productivity.
While some of the tips in the book relate to the technology, many of them instead focus on relations between people involved in a software development project. For example, one tip says:
“Provide Options, Don’t Make Lame Excuses.”
This is outstanding advice not only for a programmer, but for anyone involved in completing a task. It ensures you take responsibility for your objectives and attempts to move the project forward. Hunt wrote:
“Instead of excuses, provide options. Don’t say it can’t be done; explain what can be done to salvage the situation. Does code have to be deleted? Tell them so, and explain the value of refactoring.”
This blunt style of advice is how the entire book proceeds, and offers valuable insight into how one should work both internally and with others on a software development project.
The book covers topics such as good design, estimating, editing, resource allocation, work-life balance, processes, refactoring, and naming. There’s also significant advice on how to work on a team with others and how to stickhandle through projects, particularly when requirements keep raining from the sky.
Many have said that this book changed their programming career trajectory, and it could do the same for you.
For those of you that are a programmer, would like to be a programmer, or are curious about how programming works, this book will provide tremendous insight.
We’re an Amazon Associate and earn a small fee from qualifying purchases. Help support our 3D print news service by checking out this book!