A couple of years ago, two books came out within a few months of each other. The first, Beautiful Code, asked each chapter author to write about the most beautiful code they had ever written. The examples were good examples of code that performed as the author wanted them to. However, I opened the book at random and saw a major flaw in the premise — beauty is in the eye of the beholder. What made code beautiful to some authors made it an eyesore to me.
For example, I don’t particularly like C code. It is too easy to write code that is hard to read and mangled. How many other languages take pride in having a contest where the prize goes the program that is the least readable? But some people love the language and consider well-written C code beautiful.
The other book was Clean Code by Robert Martin (“Uncle Bob”). Immediately, just looking at the titles, I saw the difference. Clean code has objective standards. No matter the language the program is written in, if it follows certain guidelines, it is clean. They aren’t rules, because Uncle Bob wants software craftsmen — coders who know when to apply the guideline and when to not.
Clean Code instructs on how to recognize and eliminate messy code. Messy code is hard to maintain, fix, and expand when the customer wants a new feature. However, clean code lets you get right in, make the fix, and go on to the next problem. You make the code a better place for the next programmer (who might very well be yourself).
Uncle Bob challenged me as a programmer. As I read the book (and lots of code), I was constantly looking for what was right with the examples and what was wrong. I just read Beautiful Code; I wasn’t challenged to become a better programmer. Uncle Bob’s book did just that. While reading it, I opened some personal projects I had written before and started to clean the code. I pulled out common code to functions. I renamed functions and objects. I made existing code more readable so that when I come back to it, I will know exactly what I was doing. Just today, I opened one of those programs, TimeSheet, made a few quick fixes, added a whole new set of features, and went on my way. If I had not taken the time to clean the code before, I would have spent a lot longer extending it today. In fact, I probably wouldn’t have had the time to do it today.
The code I have written after reading Clean Code has always been cleaner than what I wrote before. Is it beautiful? Answers will vary. Is it clean? For sure. Am I a better programmer for reading Clean Code? Definitely.
Clean code is what we strive for at ArrowQuick. Clean code now lets us serve you better later.

