I am a developer with a background in Visual Basic 6, wanting to learn C#. The book is written in classic textbook fashion, with language elements coming first, then assembling the elements to perform useful things, and finally how to optimize. Jesse Liberty not only delivers the flavor of the language and how to use it, but also notes the similarities and differences between C# and C, C++, and VB6. The writing is in a targeted, no-nonsense style and the examples are clear and concise. The longer examples are introduced piece by piece, and completely assembled at the end (some tech books just leave the long examples unassembled, which makes understanding more difficult).

One suggestion I would make for the next edition would be for a little more in the way of guidance: "You can do this, but it isn't recommended because..." or "Here is the best/clearest/most efficient way to do this..." Every language has its traps, and it is appreciated to know what mistakes to avoid before one makes them (ActiveX comes to mind). This is a minor quibble, as the book does what it sets out to do: teach me the basics of C#.

All in all, 'Programming C#' gave me what I was looking for. I give this book a 7.5 out of 10. Well done.