Code Complete A Practical Handbook of Software Construction
Steve McConnell, 2004
Code Complete is a unique book in the industry in that it covers arguably the most important subject in our industry with precision and sobriety. I believe that Steve McConnell’s book is as important to us as are Feynman’s lectures to physics. The book itself is very well structured and can be read from cover to cover or used as reference material. It covers all aspects of writing code at a very low level. There are chapters about variable names, conditionals, loops and debugging, for example. These may seem basic if you’ve been in the trade for more than a few months or even just out of school but there is much more to it than it may seem. Steve McConnell covers each of these subjects using a scientific approach dispelling many popular myths and presenting proven best practices that will change the way you program. You also get several chapters about class design, testing, requirements, refactoring, tuning, integration and there is even one called “Personal Character” that touches on the hidden human aspect in the software industry.
There are two editions of the book and the latest was published in 2004. This second edition adds significantly to the first and you do want to get it even you read the first edition from 1993. I recommend this book to all software developers that I come across regardless of their seniority and it represents to me milestone in my career which is clearly divided in BCC and ACC.
The author’s blog: http://stevemcconnell.com/
Debugging Microsoft .NET 2.0 Applications
John Robbins, 2007
This is a very interesting book that explains many techniques and tools that are not very well documented. It is also one of the very few places you will learn how to use WinDBG and other debugging tools applied to the .NET world, which makes it mandatory reading for anyone aspiring to more than mundane programming. But John Robbins goes beyond debugging techniques and details how to setup your debugging environment, locally and team-wide, tells engaging debugging wars stories and shares many tips and gotchas. One of the highlights is his treatment of tracing and assertions which are worth the book just by themselves. He also ships with the book a large amount of very high quality software in the form of add-ins, MSBuild scripts, FXCop rules, code and assorted scripts. The components are tools that you should add to your toolkit and use them. I certainly am doing that.
The book is not an easy read as sometimes it falls into reference mode with pages and pages describing commands. Although it may be hard to go through them I can’t think of a better way to digest that amount of information. And the positive side is that it is easy to find those commands later. He also shows several 2 or 3 page long code listings which I personally doubt about its usefulness, especially as they are not in color and thus hard to read. John also covers other subjects like VS.NET add-in development and FXCop rule creation which are interesting but a bit peripheral to the main subject of the book.
In conclusion this is a must have book if you are a .NET developer. This edition is titled 2005 but since it was published in 2007 I wouldn’t wait for a 2008 version. John Robbins is also writing another debugging book that covers the Win32 world which I am looking forward to reading as soon as it is published.
The author’s blog: http://www.wintellect.com/cs/blogs/jrobbins/default.aspx