Sunday, December 4, 2011

Book Review: Code Complete, 2nd Edition

Code CompleteCode Complete by Steve McConnell
My rating: 5 of 5 stars

This book provides a solid foundation of the things you need to “construct software”, as the author describes it, and covers a very broad topic.

The author isn't shy about referring the reader to additional reading materials; in fact, that’s a big part of the book and I love it!

The book goes over things that were barely mentioned, if at all, in my college courses. Things like: debugging, refactoring, measuring code complexity, when the right time to optimize code is and whether it even makes sense to optimize it. The author does a good job of showing different approaches to solving problems and gives many examples of “good” versus “bad” practices.

On the surface this book is similar to The Pragmatic Programmer, but goes in to a lot more depth. The book goes well with Clean Code.

View all my reviews

4 comments:

  1. I'm curious about a number of stars. Also, if you had to rank the three books, how would you rank them? How would you rank them for a new developer? How about an experienced developer?

    ReplyDelete
  2. I started using www.goodreads.com to keep a list of books that I want to read. Eventually I started posting reviews, because when you mark a book as read, you get a popup that urges you to post a review (damn that peer pressure!). Once you've posted to goodreads you get a nicely formatted html output that you can copy / paste in a blog.
    The way I use the star rating is:
    1. it sucked
    2. it was OK
    3. i liked it
    4. loved it
    5. (one of) best books I've read on the topic

    If I was only going to read one of the 3 books I mentioned in my post, I'd read Code Complete. I think Steve McConell offers very practical, and mostly unbiased, advice on how to write software well. I felt like TPP was too vague and Clean Code too opinionated. Don't get me wrong, I think all 3 books were good and I enjoyed reading them...but you asked for a comparison.
    As far as the new vs experienced dev, that's a tough question. Does experienced dev imply that they are experienced because they follow what are considered "good" practices and they've been coding for years or that they've been coding for years and are therefore "experienced"? I'm going to assume the latter.

    If the plan was to read all three I would do it this way:
    junior dev: Code Complete, TPP, Clean Code
    old-hand dev: Clean Code, TPP, Code Complete

    If the old-hand is familiar with good practices I'd consider Code Complete optional.
    That being said, I plan to re-read all three of them in this order:
    TPP, Clean Code, Code Complete.
    I just realized, that's the order I read them in originally ;)

    ReplyDelete
  3. Good stuff, thanks for taking the time.

    As far as the star thing, my question was more about how you'd rate Code Complete, which you didn't assign a star value to.

    ReplyDelete
  4. I updated my post with a star rating.

    ReplyDelete