Book Review - Essential C# 2.0 by Mark Michaelis
If and when I ever get around to learning C# (after Ruby and Ajax and ...), this book would appeal to me on many different levels... Essential C# 2.0 by Mark Michaelis. It sets out to do a lot, and it actually delivers...
Contents: Introducing C#; Data Types; Operators and Control Flow; Methods and Parameters; Classes; Inheritance; Interfaces; Value Types; Well-Formed Types; Exception Handling; Generics; Collections; Delegates and Events; Reflection and Attributes; Multithreading; Multithreading Patterns; Platform Interoperability and Unsafe Code; The Common Language Infrastructure; Download and Installing the C# Compiler and the CLI Platform; Complete Source Code Listings; C# 2.0 Topics; Index
When you get a book that focuses on being a tutorial for a language, you can pretty much plan on it not appealing much to the intermediate coder. In most cases, that person already knows the basics of the language. As a result, the value of the entire package is pretty much limited. Michaelis tries to go beyond that, to give the "beyond beginner" a reason to keep reading. He includes a number of "sidebar" insets that are labeled "Beginner Topic" and "Advanced Topic". These advanced tips are things that aren't normally spelled out for beginners, nor are they necessarily flagged in the documentation. For instance, have you ever given any thought as to whether the increment and decrement operators are thread-safe? You might be surprised, and there are ways to make sure you don't get bit by an error that would be very hard to find. He also starts out each chapter with a mindmap diagram to show the topic and the mental branches that will be covered in the material. I like the idea of knowing visually where you are going before you start reading. It helps me to put everything in some sort of mental framework, to "know what I don't know", so to speak... Finally, he also deals with syntax and structured flow programming before diving into object-oriented stuff. For someone like me who came from a procedural language background, this is far more comfortable for me than to try and solve both syntax and OO concepts at once.
This is definitely one of the more solid learning tools to a language that I've come across. Plenty of code, the promise of on-going value over time, and a few references to the movie "The Princess Bride" thrown in for good measure. How can you *not* like a book like that? :)