Our inaugural StackExchange Writing Prompt stems from a topic close to my heart as a developer:
I have heard a lot of people mention Code Complete as a book worthwhile reading. Unfortunately, I am so busy that I don’t have time to read it, so can anyone tell me what the key points of the book are?
In all honesty it’s not a bad question to ask. In my eyes Code Complete is one of the quintessential books for an intermediate developer to read in order to move forward as a senior developer. Much of its advice is very practical and deals with topics we encounter on a daily basis as programmers, ranging from how to write clean, maintainable, and readable code to topics like refactoring, continual testing and improvement, and my personal favourite topic, software craftsmanship. Based on my own experience with the book, I feel that any intermediate dev. reading the book will discover that they’ve been doing a lot of things right, and a lot of things wrong. What it really helped reinforce for me was how much the right attitude and work ethic play into becoming a better developer. However, if you read between the lines (hey-oh!) you’ll find the real hidden point of Code Complete nested underneath.
The issue lies in the frame of mind that this type of post indicates. Upon reading a question like this one can assume that the poster wants a Cole’s Notes version of the 800+ page book, distilled down into a single page for painless consumption because the poster can’t be bothered to read the book. Now I’m not one to judge — we all need a life outside of work and if the time isn’t there for one reason or another then there’s not much you can do. Really what this book encompasses are two overarching topics:
- Quality Coding Habits/Practices
- Correct Developer Attitudes
The accepted answer does a fantastic job of at least covering off habits and practices, such as showing sound judgement, committing to iterative development, and others at a high level. You’ll miss the lower-level specific advice (IE passing booleans to parameters) but after all, this is a condensed response.
However, what the poster calls out to some extent and what I’d like to elaborate on is Chapter 33: Personal Character. This chapter rather vehemently discusses the mentality of a good developer. This really talks about the pursuit of self-improvement as it pertains to development and how to get there. The principles themselves I won’t get into, but this does raise a question that I would love to ask to anyone who seeks to read a summary of Code Complete without actually reading the book:
By refusing to read a book by an author whose key message includes having the diligence and discipline to actively seek self-improvement, haven’t you missed the point of the book entirely?
The fact that you’re even asking the question is a great start, but you’ve missed the message behind the chapter on Personal Character, which in no uncertain terms reinforces the point of having that level of discipline and curiosity to make the time to learn and improve.
Thus, what is the key point behind Code Complete? The key point behind Code Complete is that you should read Code Complete.