Book review: Code Complete 2nd edition
In Sweden we have a common view on American technical literature to be bloated, pages full of words but little real content. Somewhere I heard that American writers are paid per page. I don't know if that's true, but most of the books I have from American writers could be cut to a quarter without loosing content. So, when I got hold of Code Complete 2nd edition, my first reaction was, "oh, another 800 pages that could be cut down to 200 pages", and it really isn't a book that you bring with you on the commuter train to work. A reason for you to bring it with you would be as a weapon when you pass through the park late at night. One hit with the Code Complete could make a grown programmer unconscious for hours.
The first thing I ask myself after reading Code Complete 2nd edition is, what target audience did Steve McConnell intend for this book? First I think that the target audience must be people that have never seen a line of code in their life, because this book describes programming in a way even my grandmother would understand. Then again it takes for granted that you know linked lists and is written in a way that suggests that you have probably met this problem before. Some of my colleagues gave the suggestion that this book could find its place as an introduction to programming at the university, but I must disagree. When you're going to learn programming you need to get your hands dirty with code at once. You need to focus on one language and learn that language well. When you are able to craft most of the things you can think about, you could move on to the principles of software development to tune your skillset. By that time this book does not bring anything new to the table. So, where should I place this book? I could use it as a reference when a junior developer does something stupid and I need to prove to him why you should not write programs as he does. You could use this book as a base for coding conventions, but that would require you to agree with everything in this book, which I say that I cannot. Chapter 9, Pseudocode Programming Process, was very amusing but not really something I would recommend someone using. I would not say that this book is useless, but I find it hard to read because it never gets to the point (quite common with this kind of American technical literature). If it does have a target audience, I'm quite sure that I was not part of that target group. It does not inspire me to become a better programmer, but it is a good back reference to all the wrongs we all did becoming good software developers.
I have huge respect for Steve McConnell, for his many years in the IT business and the amount of experience he has. I also heard that he has written a good book about software estimation that I'm sure to check out. However, I will not recommend Code Complete 2nd edition to any of my colleagues.