Today’s recommendation will be Clean Code - A Handbook of Agile Software Craftsmanship by Robert C. Martin, first published in 2009.
The title says it all
What a book titled Clean Code deals with, is hardly any mystery, no matter your professional background. Its content can quite easily be summed up: the book teaches you, the coder and aspiring or practicing software developer, how you should write code. The book calls the code clean, but what that looks like in detail, you should learn from the master himself, not me.
The master himselfWhy Robert C. Martin is a master at crafting code, seems to be self-evident; the man is a programmer of the first hour, and therefore has decades of experience writing code, but also providing consultation and training and authoring a bunch of influential book on software development, such as architecture, agile, OOP and more. So, if i am to trust anyones opinion, on what code should look like, it is this guys'.
“I think I’m pretty good at coding”
That is at least what I thought after having completed the major part of my computer science studies and having worked as a software developer for over a year. Oh boy, was I wrong. Because, as I am aware now, just because code does exactly what it should, without any flaws, it can be far from perfect. The code should be readable, clearly structured, display only expected behaviour, follow consistent naming, etc. Clearly, the code will work just the same, but code is not only read by machines; humans have to read it, too.
Maybe a good metaphor is: if you can give your code to the new coworker, ask him to change a few things and fly off to the north-pole for 2 months without checking your e-mails and have a good conscience, then your code is “clean”.
I rest my defenceI think I made my case and motivated, why this book is a must-read for every programmer. Of course Martin, or "Uncle Bob", as he calls himself, reasons way further what goals the design of your code should achieve and how to do that. It truly changed the way I look at (also my old) code now and how I approach any new project. I'm convinced that everyone can learn a few new tricks from the book. Actually, I am quite disappointed that the book was never promoted or mentioned during my studies!
But you, the reader, are lucky that you received this recommendation now from me and so I hope the next thing you read after this post is Clean Code by Robert C. Martin!