9780735619678fMany of you know Steve McConnell’s Code Complete. It’s been one of our most popular books since the first edition was published in 1993 and after we published Steve’s update, the second edition, in 2004. We see this through Amazon reviews, responses to our anonymous survey (http://www.microsoft.com/learning/booksurvey, via which you can give us feedback about any of our books), and ongoing sales and relevance years after initial publication (a goal for books in our Best Practices series, by the way), but here’s another measure that helps describe Code Complete’s importance and impact:


Three years ago someone asked this question on Stack Overflow, and since then Code Complete has often (perhaps always?) topped the list. Also, the question is currently the second most popular question of all time on Stack Overflow, with 1416 votes: http://stackoverflow.com/questions?sort=votes

An aside: Stack Overflow’s creators, as well as its users, greatly admire the book. Jeff Atwood named his blog, Coding Horror, after one of the book’s icons and calls it his “all-time favorite programming book.” And Code Complete and Rapid Development are on Joel Spolsky’s list of “all the books that I honestly think that every working programmer needs to read”: http://www.joelonsoftware.com/navLinks/fog0000000262.html.

A hearty congratulations to Steve McConnell for creating a book that so many find useful!

Here, for those unfamiliar with the book, are Code Complete’s contents:

Laying the Foundation
1 Welcome to Software Construction
2 Metaphors for a Richer Understanding of Software Development
3 Measure Twice, Cut Once: Upstream Prerequisites
4 Key Construction Decisions

Creating High Quality Code
5 Design in Construction
6 Working Classes
7 High-Quality Routines
8 Defensive Programming
9 The Pseudocode Programming Process

10 General Issues in Using Variables
11 The Power of Variable Names
12 Fundamental Data Types
13 Unusual Data Types

14 Organizing Straight-Line Code
15 Using Conditionals
16 Controlling Loops
17 Unusual Control Structures
18 Table-Driven Methods
19 General Control Issues

Code Improvements
20 The Software-Quality Landscape
21 Collaborative Construction
22 Developer Testing
23 Debugging
24 Refactoring
25 Code-Tuning Strategies
26 Code-Tuning Techniques

System Considerations
27 How Program Size Affects Construction
28 Managing Construction
29 Integration
30 Programming Tools

Software Craftsmanship
31 Layout and Style
32 Self-Documenting Code
33 Personal Character
34 Themes in Software Craftsmanship
35 Where to Find More Information

The languages used in the book's code samples are C++, Java, and Visual Basic.

As always, enjoy.