Brief synopsis of Illustrated C# 7
First and foremost, I will be approaching this Illustrated C# 7 review from a Unity 3D game developer’s perspective. This is considered a beginner-intermediate book, but some previous programming experience is required. The author does spend some time explaining the .NET framework, but no pages are specifically dedicated to orienting a brand new programmer with zero experience. Someone with absolutely no idea where to start would struggle with this book as a result. As such this is a better second book than it is a first book.
The author makes numerous references to the C++ language in passing. Almost as if he expects many readers to have some experience with that language already. It is not at all necessary to understand these C++ language references, but it is interesting they are included in the text.
The book does a great job taking the reader from a beginner to intermediate skill level. A great deal of effort is invested in explaining why things are the way they are in C# and how they work behind the scenes. This is not just a book about syntax and rules. The author will almost always take the time to answer your questions about how something works, why it works that way, and any lingering “what about this scenario?” questions you might have. I admire the ability of the author to almost telepathically predict my follow-up questions in this regard.
This book is 783 pages in length not including the index.
The book states the intended skill level is beginner-intermediate. The content is generic C#. No specific platforms (like Windows) are presented beyond a few brief examples which probably just serve to promote the author’s other book focused on Windows C# and WPF. The author does not over-promote his other work; it’s very modest and done well. Some previous basic programming experience is required.
Relevance to game development
Remember, this is an Illustrated C# 7 review from a game dev’s perspective. The relevance of this book to Unity 3D game programmers is high. This is because the C# being taught is platform-agnostic. However, because the book is a complete language reference it covers all of the object-oriented programming (OOP) abstractions C# has to offer. Some of the OOP abstractions are probably not immediately useful to a Unity 3D programmer. And, what’s more, if you haven’t read at least a single book on programming patterns you’re going to struggle to think of ways in which all of these abstractions might be useful.
How Illustrated C# 7 should be read
This book should be read linearly from start to finish and kept as a reference. I would not spend too much time trying to memorize all of the OOP abstractions. Since, again, this a complete C# language reference and not all of C# will immediately become useful to you, the reader. Instead, just be aware those tools exist and refer back to them as needed. Focus on higher level concepts and the kinds of problems that could be solved with a given bit of C# functionality. Your goal should be to understand what the tools are in your toolbox and generally what they are used for.
The best features found in this book are the diagrams, code examples, and code explanations. The diagrams are a boon for visual learners; the author uses them to convey complex concepts and they are highly effective at achieving this purpose. The code examples are clear and useful. The code examples are explained in a succinct bullet-point style which is tremendously helpful for learners.
What I wish was different
Where this book falls a little flat is its coverage of programming patterns (even extremely basic ones) or at the very least some greater depth in regard to the applicability of the different C# features being introduced. That is, more discussion about the kinds of problems the OOP abstractions can solve or interesting ways in which they might be combined. There is some discussion, mind you, just not enough in my opinion. However, in the author’s defense the book is already nearly 800 pages in length as it currently stands. One could easily argue this is simply beyond the scope of the book.
The writing quality is high. Only a few typos were identified; much fewer than average. The author slips in a few humorous lines here and there, but they are few and far between. The writing does not convey much in terms of personality, but it reads well.
Code quality in Illustrated C# 7
The example code segments are done quite well. They serve as clear and purposeful aids to written explanations. The code examples are also clearly explained in a bullet-point style format. I did not feel it was necessary to type anything into Microsoft Visual Studio myself.
As noted previously the writing does not convey a strong personality or much of the author’s own opinions. It feels more “factual” and objective. But, when the occasional opinion does show up I get the impression the author is humble and not at all arrogant.
Should you buy Illustrated C# 7?
The conclusion of this Illustrated C# 7 review is that this is an essential book; it bridges the C# beginner and intermediate levels. It also serves as a very useful reference and the diagrams are a rare treat for visual learners. It should be emphasized this is not a great first book, but it is an excellent second or third one. It is a rather large book and assumes the reader generally understands what programming is and to some extent how and where to create programs.