Book Review - Essential C# 3.0
As SOTC has grown larger as a programming blog, we are always looking for ways to expand the range of our content – and so when we started getting asked to do some book reviews, we thought it would be a great way to branch out. So read on to see the very first SOTC book review (possibly the first of many) – a review of “Essential C# 3.0 For .NET Framework 3.5″ by Mark Michaelis.
| Now, before I get started, I should probably give that wonderful disclaimer. Yes, the publisher did send us a copy of the book for free. Yes, we do like getting free programming books (really, who wouldn’t?). But we do realize that programming books are pretty expensive as books go, and we wouldn’t want to lay down cash for a book that wasn’t worth it – so we won’t be pulling any punches when there are things we don’t like. Ok, end disclaimer. | |
![]() |
Essential C# 3.0 For .NET Framework 3.5 |
| by Mark Michaelis | |
| Publisher: Addison-Wesley | |
| Pub. Date: September 2008 | |
| ISBN-13: 9780321533920 | |
| Pages: 880 | |
| List Price: $49.99 | |
Overall, I generally liked “Essential C#”. On the positive side, it was readable and yet still managed to actually convey a decent amount of information. It covers everything that a book on the C# language should cover, although there are some spots that could have used more detail. On the other hand, the book tries to be too much to too many types of programmers at the same time – in trying to keep the C# gurus happy while not losing the beginners, the book can sometimes become frustrating for everyone.
The book is very much C# language oriented, which is different than many of the other C# books out there on the market today. It keeps away from the .NET framework as much as possible – this is not the book to pick up if you want to learn how to use the libraries and classes the framework provides. But in my opinion, that is a good thing, because it really is way too easy to get lost in the framework and forget about actually helping readers learn the language (as one or two other C# books that I own do).
While the book does a very good job helping the reader learn the language from the ground up, I would not recommend using this book if you are picking up C# as your very first programming language. The book assumes that the reader has a certain programming vocabulary, and if you as a reader don’t, it will probably get very confusing very quickly. But as long as you have some programming experience under your belt, you could learn C# though this book (although I’m not sure it would be terribly fun).
In my opinion, though, where this book really shines is for the late beginner/intermediate C# programmer – in fact, I wish a book like this had been dropped on my lap about 3 years ago. If you know how to read/write C# code and you feel like you are somewhat comfortable in the language, this is the book to use to strengthen in the holes in your C# foundation. And this would be the book to pick up when you look over at your co-worker’s code and you wonder to yourself if that is even C# code (I was in that boat once or twice). I really did enjoy this book for the couple spots where I don’t feel my C# knowledge is up to par - for instance, I found the LINQ chapter quite helpful.
For the advanced C# guru, the news is not quite so good. While every topic about the C# language under the sun is covered somewhere (the draft I had did not have an index – but the index for this book is probably huge), quite often the topics were only covered in enough depth to wet my appetite. The advanced topic sections really seemed to be geared at the level of intermediate programmer – almost like they were optional tidbits for the intermediate programmer, not required segments for the advanced reader. Now, I realize that this is supposed to be a full spectrum book – accessible for everyone from beginner to advanced – and that putting in a lot more advanced info would probably have added another couple hundred pages to the book. But it was often a little frustrating – for instance, there was only a single page for the advanced information on garbage collection.
As a reference book, I have a feeling it would do pretty well, considering that everything I can think of is at least touched on somewhere. I can’t give a definitive recommendation on it as a reference book, though, because my draft copy lacked an index - and so I was unable to use it as a reference! So assuming that the published copy actually has a good index, I could see myself using this book as a reference.
So I’m pretty sure that you know my verdicts already (if you read those preceding paragraphs), but if you just skipped down here for the conclusion, here you are:
-
Intermediate: Buy It!
This is the book I wish I had 3 years ago.
-
Beginner: Probably Not
I would say that you should only get this book if you are planning on rapidly moving toward that intermediate stage.
-
Guru: Don’t Bother
Many areas, while covered broadly, have a general lack of the depth I would want to see in a book for advanced programmers.
I hope you enjoyed the first SOTC book review. If you liked it, and you want to see more, let us know - and if you don’t want to see more book reviews, you should let us know that too
Posted in Book Reviews by The Tallest |


September 30th, 2008 at 12:36 pm
“C# in Depth” by Jon Skeet (Manning, 2008) is very good for the intermediate-to-expert developer who wants to learn the C# 3 features. It takes a similar tack in concentrating on the language, not the framework. You’ll probably still want to pick up a LINQ-specific book as well.