For those that live in the land of the magic LAMP the name Mike Gunderloy might not ring any bells. For those in the Windows world it's more familiar, the author of too many books to count, articles in Microsoft Certified Professional magazine (among a fair few others!), his own Larkware site and now Coder To Developer.
The book draws upon the author's years of experience to cover the areas that coders new to the real world of development will find themselves unprepared for, especially if they have come from a hobbyist or purely academic background. It covers areas that are not typically taught and that you are expected to pick up as you go along. These include revision control, comprehensive application logging and managing the build process. The full chapter list is given below:
It is worth pointing out the ideal target audience. While the book assumes you have the ability to read modern object oriented code (basic exposure to Java or C# should suffice), it doesn't assume much beyond that. The code snippets and examples are clearly explained where needed and are pretty much self documenting. The other noteworthy aspect of the book is its focus on using Microsoft platforms, and .NET in particular, for both code examples and when pointing out the tools available. Most of the book is accessible and relevant to anyone developing in any language, on any platform. However a number of chapters, Chapter 6 "Pumping Up the IDE" being the most extreme example, are going to be a lot more use to .NET coders in particular.
The chapters follow the development of a custom built application, Download Tracker, from the design and requirements phase through to packaging ready for deployment. Chunks of its code are used to help make the examples more concrete. While the chapter ordering has been chosen to mirror the life-cycle of a real project as closely as a book allows, each one is mostly self contained and can be dipped into without the reader feeling lost.
Some of the book's highlights include the three levels of source control enlightenment explained in chapter 3, the bullet point summary at the end of each chapter and the coverage given to the available tools when a topic is being discussed. While the introduction and brief comparison of the available options are useful, these parts of the book are the most susceptible to rapid aging. While the principles and practices covered are likely to stand the test of time, the tools coverage will rapidly become out of date and require a second edition; something I'm looking forward to already.
The nicest thing I can say about this book is that it is "The Pragmatic Programmer" for the .NET generation, which is no small accolade. If you've been doing professional development for less than a couple of years then it's worth an 8/10 and a couple of days of your time. For more experienced people (especially those moving to .NET from another environment), it is still worth looking through; while it might not be as career-changing you will probably still find some of the chapters give you a new take on your day-to-day work. For those readers its more 6-8/10 with the score dependent on how .NET focused and experienced you are.