Just finished The Clean Coder by Robert C. Martin. The predecessor, Clean Code
, was one of the best books on programming I’ve ever read so the expectations for this book were high.
Does it deliver? Yep. It might not be Clean Code good but still pretty damn good.
This book doesn’t really cover code at all but focuses on the coder, his behavior and on his methodologies. It tackles very many difficult issues in very few pages in a clear and concise way. To cover the ground Bob does in about 200 pages is a major feat; especially when he manages to sprinkle in a fair amount of amusing anecdotes from his programming career to support his arguments.
I may disagree on some points but in overall agree with more than 95% of the stuff anyway so I’m not going to nitpick. This is an easily approachable book and won’t last you many evenings. This should be on any apprentice, journeyman and master programmer’s must-read-list.
Short description of each chapter:
Chapter 1: Professionalism – How to act like a professional. Surprisingly few coders know how to do this.
Chapter 2: Saying No – Say no to stuff you can’t promise 100% as trying and failing will just make people distrust you.
Chapter 3: Saying Yes – When you say yes you should mean it. Commit to the stuff and don’t give vague promises.
Chapter 4: Coding – When you should code, for how long and what to do about external forces affecting your coding ability.
Chapter 5: Test Driven Development - Arguments for TDD.
Chapter 6: Practicing – Tips on how to practice and keep up with your craft.
Chapter 7: Acceptance Testing – How to do acceptance testing.
Chapter 8: Testing Strategies - Explains how and what to test on different levels. The levels being depicted in a pyramid from the lowest layer to the top like this: Unit Tests, Component Tests, Integration Tests, System Tests and Manual Exploratory Testing.
Chapter 9: Time Management – How to get stuff done and how to deal with interferences and time thieves.
Chapter 10: Estimation – Arguments that estimates are always uncertain and should be communicated that way. Proposes several methods of doing agile estimation.
Chapter 11: Pressure – Keeping your cool and staying clean under pressure.
Chapter 12: Collaboration - The most common collaboration anti-patterns you might be guilty of.
Chapter 13: Teams and Projects – Arguments for that teams shouldn’t be split up after projects.
Chapter 14: Mentoring, Apprenticeship, and Craftsmanship - How apprentices should be mentored into journeymen.
Appendix A: Tooling – The minimum tool set you should at least have in use if you wish to call yourself a Professional.