Code Complete and over one million other books are available for Amazon Kindle. Learn more



or
Sign in to turn on 1-Click ordering
Sell Us Your Item
For a $5.00 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Start reading Code Complete on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.
Sorry, this item is not available in
Image not available for
Color:
Image not available

To view this video download Flash Player

 

Code Complete: A Practical Handbook of Software Construction, Second Edition [Paperback]

Steve McConnell
4.7 out of 5 stars  See all reviews (177 customer reviews)

Buy New
$27.89 & FREE Shipping. Details
Rent
$24.61
In stock but may require an extra 1-2 days to process.
Ships from and sold by Amazon.com. Gift-wrap available.
In Stock.
Rented by RentU and Fulfilled by Amazon.
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Free Two-Day Shipping for College Students with Amazon Student

Formats

Amazon Price New from Used from
Kindle Edition $24.79  
Paperback $27.89  
Unknown Binding --  
More to Explore
Continue browsing in the Microsoft Press Resource Center for books on everything from essential skills for beginners to technical references for IT professionals and developers.

Book Description

July 7, 2004 0735619670 978-0735619678 2nd

Widely considered one of the best practical guides to programming, Steve McConnell’s original CODE COMPLETE has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practices—and hundreds of new code samples—illustrating the art and science of software construction. Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. No matter what your experience level, development environment, or project size, this book will inform and stimulate your thinking—and help you build the highest quality code.

Discover the timeless techniques and strategies that help you:

  • Design for minimum complexity and maximum creativity
  • Reap the benefits of collaborative development
  • Apply defensive programming techniques to reduce and flush out errors
  • Exploit opportunities to refactor—or evolve—code, and do it safely
  • Use construction practices that are right-weight for your project
  • Debug problems quickly and effectively
  • Resolve critical construction issues early and correctly
  • Build quality into the beginning, middle, and end of your project

Frequently Bought Together

Code Complete: A Practical Handbook of Software Construction, Second Edition + The Pragmatic Programmer: From Journeyman to Master + Clean Code: A Handbook of Agile Software Craftsmanship
Price for all three: $100.93

Some of these items ship sooner than the others.

Buy the selected items together


Editorial Reviews

About the Author

Steve McConnell is recognized as one of the premier authors and voices in the development community. He is Chief Software Engineer of Construx Software and was the lead developer of Construx Estimate and of SPC Estimate Professional, winner of Software Development magazine's Productivity Award. He is the author of several books, including Code Complete and Rapid Development, both honored with Software Development magazine's Jolt Award.


Important Information

Ingredients
Example Ingredients

Directions
Example Directions

Product Details

  • Paperback: 960 pages
  • Publisher: Microsoft Press; 2nd edition (July 7, 2004)
  • Language: English
  • ISBN-10: 0735619670
  • ISBN-13: 978-0735619678
  • Product Dimensions: 7.5 x 1.6 x 9.1 inches
  • Shipping Weight: 3 pounds (View shipping rates and policies)
  • Average Customer Review: 4.7 out of 5 stars  See all reviews (177 customer reviews)
  • Amazon Best Sellers Rank: #2,990 in Books (See Top 100 in Books)

More About the Author

I am CEO and Chief Software Engineer at Construx Software (www.construx.com). I've written Software Estimation, Code Complete, Rapid Development, Software Project Survival Guide, and Professional Software Development. I live in Bellevue, WA (near Seattle).

Customer Reviews

If you are a software developer and haven't read this book, I highly recommend that you do so. Bryan C. Geraghty  |  55 reviewers made a similar statement
It's very easy to read. Steven  |  37 reviewers made a similar statement
Most Helpful Customer Reviews
253 of 271 people found the following review helpful
5.0 out of 5 stars A Great S/W Dev't Guide Got Even Better July 23, 2004
Format:Paperback
It was a pleasure to find out that this book had been updated when I reads news of it. CC2 is a great one-stop 'place' to go to when you want a great excuse to apply Stephen Covey's 'Sharpen The Saw' principle. This updated version has some solid, fantastic, expert instruction on designing from scratch, whether it's OO, writing better routines, psuedocode, nested loops, or at the higher level: agile methods, etc..
McConnell's approach of talking to you, the programmer, is ideal: not too much humor, and an easy to read, but professional approach in the way he donates the contents of his brain: i.e. McConnell's lengthy experience in the field.

I read just a couple of paragraphs in a chapter before work one morning, and the advice I picked up saved so much time that same day. And it wasn't even specific to coding instruction. It was a piece of advice on a philosophy on how he personally determines how much upfront design he should settle on before coding.

Reading Software Construction material of this caliber, as compared to some, yet another, new book on a specific language that might look impressive to know, is what makes for a solid programmer.

Refreshing your overall S/W construction knowledge gives you so much more of your life back, because you will have way less bugs and a lot more fun maintaining the high-quality code you are now writing because of CC2.
I mentioned already that he covers OO, but I wanted to emphasize the excellent material he offers in this area. I am now seeing the benefit of measuring the quality of your classes by this guideline: are they true Abstract Data Types. ( rather than just trying to use the syntax that the language provides to its potential).
Great job on a rather thorough re-write of a S/W development staple.
Was this review helpful to you?
104 of 110 people found the following review helpful
5.0 out of 5 stars The definitive book on software construction. August 4, 2006
By Steven
Format:Paperback|Amazon Verified Purchase
I don't know how much more I can say about this book that hasn't been said already but I will do my best to describe my experience with this book.

Have you ever looked at a class, or a method that seems to work fine but it just doesn't "feel" right? For some reason it seems as if that method or class may be hard to debug in the future or that the code is hard to understand. Or have you gone back to a class file you wrote months ago and you spend an awful lot of time trying to figure out what the heck is going on with that class file? Maybe the methods in the class are spaghetti like in nature, or maybe the names of your methods don't have a very good description so it's hard to figure out how everything ties together. I have had this problem. This book will teach you how to get out of those habits. You will learn what a solid class or method looks like. You will learn how properly naming your classes and methods can greatly reduce complexity in the long run. Everything is backed by hard evidence. I should also mention that this is just one chapter in this wonderful book.

This book really drills down proper programming practices. A lot of times you may read a passage and think to yourself "well, of course!"... but then you realize you don't practice what's contained in the passage you just read. This book is great for both new programmers and experienced programmers alike. New programmers benefit greatly because they will learn how to construct software properly without having to go through all of the hoops. Experienced programmers will also learn a great deal, as well as be reminded that some of their habits that they've developed over the years can hinder production and cause software development to become more complex then it really is.

Steve writes in a very clean style. It's very easy to read. You don't need to memorize anything in a book like this, instead you just need to gain an understanding of the concepts he brings forth. After reading this book I definitely follow a lot of his advice. When I build a new class, method or what-have-you I get a certain feeling of when it seems right and when something seems wrong. I am now much better at analyzing my code and figuring out what doesn't seem correct and I take his advice I learned in this book to help me to figure out - and correct the problem. After reading this book I feel like a lot of my rough edges as a developer have been rounded out. I feel as if I gained a years worth of experience just by reading this book.

This book is friendly for any software developer. The concepts he presents apply to all languages. This is a book that teaches you how to think about programming better and how to construct good solid code. This is one of the best books I've ever read. If you're even thinking about buying this book, then buy it.
Was this review helpful to you?
35 of 35 people found the following review helpful
5.0 out of 5 stars A wonderfully practical guide to programming May 2, 2011
Format:Paperback|Amazon Verified Purchase
The tragedy for books that become classics is that there are many more people who have heard of them (or perhaps also bought them) than people who have read them. In this case, the fact that Steve McConnell's "Code Complete" is approximately 900 pages long doesn't help, either. Even so, this is a book that not only deserves to be read, but also rewards multiple readings.

The Good: McConnell deserves credit for writing the first (and only?) readable encyclopedia of best practices on software quality, covering topics such as how to build classes, use data and control structures, debug, refactor, and code-tune. Yes, it would be nice if the book was updated to include substantive material on languages like Ruby or Python (cf. p. 65, Python "also contains some support for creating larger programs") but, in the words of Gertrude Stein, "Not everything can be about everything" -- though Code Complete does come pretty close. This book contains an astonishing number of practical points on a variety of topics. Here is a quasi-random selection: a) don't use booleans as status variables (chs. 5, 12), b) when you feel the need to override a function and have it do nothing, don't; refactor instead (ch. 6), c) when choosing variable names, avoid homonyms (ch. 11), d) if you decide to use a goto, indenting your code properly will be difficult or impossible (ch. 17), e) trying to improve software quality by increasing the amount of testing is like trying to lose weight by weighing yourself more often (ch. 22), f) make your code so good that you don't need comments, and then comment it to make it even better (ch. 32), and finally the oft-repeated g) you should try to program into your language, not in it (ch. 34). McConnell also sprinkles the text with classic words of wisdom, e.g. "The competent programmer is fully aware of the strictly limited size of his own skull" (Edsger Dijkstra), "Never debug standing up" (Gerald Weinberg), "Copy and paste is a design error" (David Parnas), "Any fool can defend his or her mistakes -- and most fools do." (Dale Carnegie). It is important to point out that even though this volume is encyclopedia-like, it does have both a sense of humor (e.g. "the encryption algorithm is so convoluted that it seems like it's been used on itself") and a clear authorial voice (e.g. "Though sometimes tempting, that's dumb."). Another example of the latter: in ch. 33, after quoting Edward Yourdon at length, McConnell adds "This lusty tribute to programming machismo is pure B.S. and an almost certain recipe for failure".

The Bad: overall the writing is very good, but the occasional infelicity reminds us that McConnell is human (e.g. p. 369 "A loop-with-exit loop is a loop in which", p. 809 "A program contains all the routines in a program."). In a technical book of this breadth, minor mistakes are bound to creep in. For example, in ch. 10 McConnell mentions the different possible levels of a variable's scope in C++, and then adds that in Java and C# one can also use namespaces, thus effectively ignoring the existence of the namespace concept in C++ (which is baffling, given that he then discusses precisely that topic in ch. 11). Another example, this one more serious, is McConnell's recommendation that you should use a pointer - not a reference - if you want to pass by reference in C++ (ch. 13), something which is contrary to C++ best practices (see e.g. Sutter & Alexandrescu, "C++ Coding Standards", Item 25). A less technical point: in ch.2 McConnell criticizes Frederick Brooks for writing (in 1975): "Plan to throw one away; you will, anyhow". I found this to be bizarre, given that in the 1995 edition of "The Mythical Man-Month" Brooks states in no uncertain terms that he has changed his mind on this: "This I now perceive to be wrong" (p. 265). Given that Code Complete 2 was published nearly 10 years later (in 2004), criticizing Brooks for his publicly repudiated former opinion seems improper. On a different note, although some of the on-line accompanying material is fascinating (e.g. the links to the original Dijkstra and Lawrence articles in ch. 17) many of the links are just electronic versions of McConnell's checklists or bibliographies, while some are simply disappointing. To name only a couple of these, as of this writing the link on p. 856 on the economics of XP is a dead link, while the one on p. 76 is downright embarrassing (it links to a google search for "emergent design"). Finally, even though the book has a dedicated website, no list of errata is provided there. If you dig deeper, you can find one on the O'Reilly website, but that is woefully inadequate, e.g. it contains no information on separate printings.

The most common criticism one hears about this book is that any decent software developer should already know the material covered in it. Ironically enough, this is true. To quote Dr. Johnson: "People need to be reminded more often than they need to be instructed".

Alex Gezerlis
Was this review helpful to you?
Most Recent Customer Reviews
5.0 out of 5 stars Provides a great foundation
I was having difficulty conveying some foundational computer science principles and best practices to some junior team members, this book really helped me formulate good talking... Read more
Published 13 days ago by Nick Swider
5.0 out of 5 stars excellent!
Although I have not made it through the whole book. I am enjoying this, how crazy is that! I am trying to wrap my head around OOP and I have tried to read other books, but just... Read more
Published 28 days ago by D. Hickenbottom
5.0 out of 5 stars One of my favorite books
I actually liked the first edition better. But either is fine. If you want to write good software, read this book. It is well organized, clear, and full of good information.
Published 28 days ago by Daniel A Goldman
5.0 out of 5 stars Great Reading...
Enjoyed the reading... I would recommend this book to anyone who would seek to find out about how specifically to plan out and structure your computer programming process. Read more
Published 1 month ago by dveenk
5.0 out of 5 stars Very nice book
This is one of the best books about programming I have ever read! It is very clearly illustrated and easy to be understood. You will learn a lot of useful knowledge
Published 1 month ago by Mingrui
3.0 out of 5 stars Good advice, but nothing new.
I can see why people love this book. It has good dev advice and would be a great help to developers who may not have formal training. Read more
Published 1 month ago by S. Paist
5.0 out of 5 stars Programmer's bible
This is my go-to book for overall coding standards and suggestions. It is well-written and clear. The principles and guidelines it covers are things that every programmer should... Read more
Published 2 months ago by J. Sledge
5.0 out of 5 stars A Necessity for any Software Engineer
I cannot stress how useful this book is to a software engineer. Reading this book and taking its lessons to heart will make you code far more sensible, better structured and... Read more
Published 2 months ago by coolstorybro
5.0 out of 5 stars wonderful collection of knowledge
It's very wonderful how the book avoids a language oriented approach to coding and focuses on some very important heuristics which can be followed to improve quality of... Read more
Published 3 months ago by Bosco Mutung'a
5.0 out of 5 stars Software construction at its best!
If you want to read just one book on software development then this is the book. It has wide coverage of almost any aspects in SW starting from design to testing. Read more
Published 3 months ago by Andrew
Search Customer Reviews
Only search this product's reviews




What Other Items Do Customers Buy After Viewing This Item?


Forums

Search Customer Discussions
Search all Amazon discussions

Topic From this Discussion
A book to rapidly help your career as a Software Developer Be the first to reply
Kindle edition eventually? n/t
We can only hope they'll be one.

I had the 1st edition and threw it away years ago when I was moving. I had every intention of buying the 2nd edition to replace it, but have yet to do so. If a Kindle version were made, I would buy it today.

I have the same issue with another book called... Read more
Jun 15, 2010 by Steven A. Fletcher |  See all 2 posts
What's so great about this book?
You have a terrible attitude for a programmer - to paraphrase a quote from Code Complete that might put your problem into perspective: "You don't write code for the computer - you write code for people." You are (somewhat) correct in what you say, but you are not taking into account why... Read more
Jul 11, 2007 by William D. Stepp |  See all 6 posts
Good for beginners?
"Code Complete" is not a book for beginners-I'd wait to read it.

In my opinion, I believe the "Head First" series (published by O'Reilly) are excellent books for beginners.

http://www.amazon.com/gp/series/93629/ref=pd_serl_books?ie=UTF8&edition=paperback
Jun 10, 2009 by James |  See all 2 posts
How do you use this book? Be the first to reply
A Focus?
The languages used in the book's code samples are C++, Java, and Visual Basic.
Nov 5, 2007 by D. Musgrave |  See all 2 posts
Start a new discussion
Topic:
First post:
Prompts for sign-in
 






Look for Similar Items by Category