I’m finally through and my head did not explode. Code complete touches a lot of fields of software development, however the majority is about actual software construction which means coding and debugging. It’s a book worth reading for junior and senior developers and after you have read it first, you should keep it close, just to be able to glance at the one or the other chapter again during your daily development work.
All code examples (there are a lot of them) are in Java, C#, C++ and Visual Basic which makes some sense since these languages are widely spread and even people who haven’t worked with one of them can easily “get” it. Most of the techniques are easily applicable on all the other languages out there, so no matter what’s you favorite language, there’s no excuse not to read this book.
Let me go real quick over the parts of Code complete in order to give you a little bit more of an idea what you can await:
Part 1 – Laying the Foundation
Part 1 is sort of a longer introduction defining the scope of the book and useful metaphors which help to understand software development better. Furthermore McConnell talks about prerequisites before you actually start with the construction of your software and about key decisions you have to make for construction.
Part 2 – Creating High Quality Code
Even though the intention of the book is mainly coding and debugging, the second part touches software design and defines the importance of design in construction. Moreover basic rules about when and how to create classes and routines are covered. There’s a lot of really useful information in there, but if you want to dig deeper into object oriented design or design of software in general you probably should consult some additional books. If you don’t know which ones Code Complete helps you out with “Additional Resources” sections all over the book and a whole chapter with additional information at the end.
Part 3 – Variables
If you’ve read part three and you still have the feeling not to know enough about variables, you should make sure that you have the right book in the hand. The first chapter of the third part covers some of the generals issues you face when dealing with variables: Scope, initialization, persistence and binding time. After that you get a whole chapter about the power of variable names, which you should not miss if you still name your variables x and y while not dealing with coordinates… Part 3 rounds up with two chapters about data types.
Part 4 – Statements
The forth part is all about conditionals, loops, table-driven methods and other control structures. There are a lot of hints how to make your code more effective, more readable and more maintainable. This is one of the parts I probably will go back to more often.
Part 5 – Code Improvements
Part 5 starts with an overview over the software quality landscape. There are a lot of good statistics about the cost of bugs vs. quality assurance and what kind of testing finds what percentage of bugs. This is great stuff if you need to persuade your manager for or against a certain type of testing / quality assurance. Additionally you’ll find chapters about developer testing, pair programming, debugging, refactoring and code tuning strategies.
Part 6 – System Considerations
While parts three to five are mainly about the actual coding, part six covers some of the side topics of software constructions. This doesn’t mean they’re less important, these topic are just a little bit less in the focus of Code Complete. You’ll find information about how program size can affect construction and how programming tools can help construction. There’s also a chapter about managing construction. Again, it’s nice to have it there, but you’ll easily find better books about software development management.
Part 7 – Software Craftsmanship
Topic are Layout, Self-Documenting Code and Personal Character. Personal Character might sound a little off-topic but makes actually some sense, since software development requires a certain mentality.
As I said, this is a must-have and certainly one of those books which are not out of date in near future. Be aware of the focus of the book though. It’s almost purely about software construction even though it also touches other fields of software engineering. If you want to know more about software design or another topic you’ll find some information in Code Complete and for sure recommendations for books with additional information about a certain topic.
I'm a Software Developer, currently working at