Book Reviews

Effective C# (Covers C# 4.0): 50 Specific Ways to Improve Your C# (2nd Edition) by Bill Wagner

ISBN: 978-0321658708
Publisher: Addison-Wesley Professional
Pages: 352

As the millennium was young, I plowed through Scott Meyers Effective C++ books in order to bring my C++ skills up to date. And reading Meyers books saved me a lot of time by helping me navigate the minefield that large-scale C++ is. I still consider Meyers books essential reading for anyone serious about C++. As I recently needed to sharpen my C# skills, getting Bill Wagner's book was a no-brainer. Unfortunately Effective C# doesn't deliver on the same high level as Scott Meyers books; it's not that it is a particularly bad book, it isn't, but it sure has its flaws.

Before discussing the omissions and flaws, let me start with the strengths. I'm a big fan of the format of the effective-series. The organization into different items makes it easy to find information quickly. Since each item can be read stand-alone, the book serves well as a reference too. One could of course argue about the technical level and scope of some items (e.g. "Distinguish Between Value Types and Reference Types", "Use the new Modifier Only to React to Base Class Updates"). One could go further and argue that the bulk of the items are due to accidental complexity of C# itself. One could even say that I agree, yet I find value in the presentation; a book such as Effective C# is basically a collection of idioms for the given language. And when you start to code in that language, it's probably wise to accept its constraints and conventions. At least for now.

Scope and language issues aside, Effective C# could have been a much better book. My major problem with the book is the code samples. Most of them simply lack context. That makes them unnecessarily hard to parse cognitively and distracts from the point they're trying to make. I would strongly recommend the inclusion of more complete code samples. And while we're at the samples, why not use some syntax highlighting? A second problem is the writing style. At times, I find it unfocused and repetitive with some double-negations thrown in for extra effect. Since its basically free text within the items themselves, the text gets ever so important. That said, I do find the raw material promising. But it's in need of some ruthless editing to turn it into a good book.

Reviewed February 2011