Code Complete, Second Edition
At last, a good book about writing code
Book review This is a book about a sorely neglected part of software development: writing code. It's not a book about the specifics of a particular language, programming paradigm or development methodology. Nor is it about UML, design patterns or data structures. It's about coding. About low-level design, about naming conventions, about all those things we spend so much of our time doing, but which are conspicuously absent from most books on development.
In that sense, Steve McConnell's Code Complete is fairly unique, and the first edition was justly acclaimed as a classic. Now a second edition - expanded and extensively re-written - confirms this status.
Covering every aspect of code construction, this is a mammoth volume packed to the hilt with sage advice, sample code, hard facts and figures, and sound arguments. Marrying data from countless journal papers and academic studies with war stories and anecdotes, the book does a great job in persuading the reader, rather than just laying down the law. McConnell wants to help the reader become a better developer. It's part of what makes this such a great book.
Organised into seven different sections, the topics range from metaphors for software construction to the use of pseudo-code, to variable naming, to code formatting and more. The treatment of material is comprehensive, so that even a topic such as variable naming gets a whole chapter that is both useful and interesting. Topics of religious significance, such as code formatting, also get an airing.
We could do a review that summarises the book section by section, but that would not do it justice. Instead, it's better to focus on some of the key themes. The first of these is complexity. Taming complexity is a key goal of the best developers. This means writing code that is well-structured, easy to understand and maintain. It means avoiding writing 'clever' code. This principle extends everywhere, from how you name routines and lay out your code, to what you call your variables.
Secondly, it's important to remember that code is read more often than it's written, which means making sure it's readable. Again, this means taking care with program structure, using naming conventions, commenting code and so on.
The best developers are themselves developing and learning along the way. This means striving to improve, being aware of what you are doing, keeping an eye on what's happening in the industry, and not allowing yourself to get complacent.
In addition to the technical content, the quality of writing should also be stressed. This is a huge book but it doesn't read like one. It is engaging and clear. There's sample code aplenty, with Java, C++ and Visual Basic, but the lessons the book really draws are independent of language, tools or methodologies.
There is so much more good solid material in the book, it's difficult to do it justice in a single review. Anyone who wants to improve as a developer should read it.
Code Complete, Second Editiion
Verdict: We can't recommend it enough.
Author: Steve McConnell
Publisher: Microsoft Press
Buy this book at Cash & Carrion!