|More Effective C# 2nd Ed
Author: Bill Wagner
This is the second edition of a book I know well but have failed to get around to reviewing - omission corrected. If you can't be bothered to read to the end of the review just buy a copy. If you are a C# programmer, you won't regret it. Also don't worry about it being "More effective" - there is a previous book along the same lines covering fundamental topics. This isn't a follow on and there is no need to read them in any particular order.
C# has a particular problem. It started out as a small simple language and over time it has had extras grafted on. If you learned C# early on you may not have adopted some of the new features, or if you have adopted them you may not be sure that you are using them properly. This book will help you understand what the best practices are in C# 7 and why you should use them.
Don't bother reading it yet if you are beginner - this is for those who are intermediate to expert in the language. But why would you want to read it if you are an expert - because when something is as subtle as C# it is nice to have things confirmed and explained. In short, even if you know about what you are being told, it is rewarding to read and explore.
The book starts off its list of 50 items to improve your C# with a look at data types. A lot of what you will read in this section should be known to you - in particular, you may be tired of the number of times you have been told to use a property instead of a data member, but it doesn't really matter. As a reminder, a refresher or something to think about, it is still a good read. Some points are far less obvious. I'd never thought about the importance of having zero as a meaningful default value or using tuples to limit type scope.
Chapter 2 moves a bit off core C# and considers how you can use the language to implement an API. This might not be relevant to all readers. Chapters 3 and 4 most certainly should be. Chapter 3 is about task-based programming - async methods in particular. I am still surprised that not everyone sees the need to use async methods but I have to admit that there are some subtleties that you need to be aware of. Chapter 4 moves on to real parallel programming with PLINQ and more. Chapter 5 is about dynamic programming, no not the mathematical theory of optimization, but dynamic typing. This is one of the newer features of C# and many a C# programmer raised on strong typing will find it useful.
The final chapter is a bit of a let down. It presents three items on "Participate in the Global C# Community". It's a bit waffley compared to the previous chapters, but it might be useful.
You don't have to agree with all of the suggestions. The ideas are explained well enough for you to disagree intelligently and I'm not sure I'd want to actually use some of the suggestions or if I did I think I would suspect that there was something wrong with my existing design. I also have to say that Chapter one was by far the best read, perhaps because it was so general, but the items on dynamic typing were fun as well.
Get it if only to disagree with it.
This title is certainly one to be added to our Programmer's Bookshelf, where it will join other recommendations in C# Books - Pick of the Shelf Revisited
|Last Updated ( Tuesday, 19 February 2019 )