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 book review – a review of “Essential C# 7.0 (6th Edition) (Addison-Wesley Microsoft Technology Series)” by Mark Michaelis.
Now, before I get started, I should probably give that important 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.
Overall, I generally liked “Essential C#.” On the positive side, it was readable and yet still managed actually to 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, and 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 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 an outstanding 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 particular 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 fun).
In my opinion, though, where this book shines is for the late beginner/intermediate C# programmer – in fact, I wish a book like this had been dropped on my lap about three 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 did enjoy this book for the couple spots where I don’t feel my C# knowledge is up to par – for instance, and 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 whet my appetite. The advanced topic sections 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 has a useful 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 three 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 this 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 😛