C# is undeniably one of the most versatile programming languages available to engineers today. With this comprehensive guide, you'll learn just how powerful the combination of C# and .NET can be. Author Ian Griffiths guides you through C# 10.0 and .NET 6 fundamentals and techniques for building cloud, web, and desktop applications. Designed for experienced programmers, this book provides many code examples to help you work with the nuts and bolts of C#, such as generics, LINQ, and asynchronous programming features. You'll get up to speed on .NET 6 and the latest C# 9.0 and 10.0 additions, including records, enhanced pattern matching, and new features designed to remove "ceremony" to improve productivity.
I have slightly mixed feelings. It's an OK book to learn C#, but that's it.
As a tutorial to the language, it does a great job. Seems to cover everything important and doesn't leave big blanks when it comes to the fundamentals. If your goal is to learn C# and you picked this book, you're likely to be good.
It fell short for me in two ways.
First, the "advanced" concepts like multithreading, rx, asyc/await and even LINQ are not explained well. Sure, you can get a sense of them, but you don't get a methodical exploration on what's there and how it works. The multithreading chapter in particular was the biggest offender. A lot of concepts were mentioned and a lot of sentences were written about them, but you'll struggle to actually grok how it works in C#, even if you're an experienced developer that has done multithreading. I was already very proficient with Rx from both RxSwift and RxJS, but I doubt somebody new to this would get it from the book. It just doesn't explain things well.
Second, it's light on code examples, and a lot of the examples are unnecessarily weird – either they are more complicated than they need to be, or don't show everything that they should be showing. Instead, there is a lot of narrative, which is again, tricky to follow.