The Clean Coder: A Code of Conduct for Professional Programmers, by Robert C. Martin. Prentice Hall Pearson Education, 2011.

Software developers face many challenges that are human and not technical: collaborating; making commitments; learning to negotiate with others, to say ‘yes’ or ‘no’ and have it received and understood correctly; building collaborative teams that thrive.

Software developers face some internal challenges, too: learning to work with discipline and craft, avoiding and handling stress and burnout; managing uncertainty; fostering focus; overcoming writer’s block; and self-management.

Then there’s a set of practices that set professional developers apart. These include Test Driven Development; mentoring and apprenticeship; and continuous training and learning.

Bob Martin covers all of this and more in The Clean Coder: A Code of Conduct for Professional Programmers. He sets out a notion of professionalism which rings as true today as it did 15 or 30 years ago. He writes in a quirky, humorous historical view that only someone who’s been working in the industry from the start can provide. Martin entertains with stories of tape memory and the first computers, file systems, and early compilers. Clean Coder is a fascinating historical perspective on what has changed over the years — the hardware, the technology, perhaps the languages — and what has not. It is an engaging read from one of the leaders in the field.