Essential C# 4.0
Author: Mark Michaelis

Publisher: Addison Wesley; 3rd ed, 2010
Pages: 984
ISBN: 978-0321694690
Aimed at: Intermediate level programmers
Rating: 5
Pros: An in-depth look at the C# language
Cons: Not for the complete beginner
Reviewed by: Ian Elliot

We start our Best Book's 2010 with Ian Elliot's choice of a C# 4.0 reference for developers who are already familiar with earlier versions of the language.

 

Author: Mark Michaelis
Publisher: Addison Wesley; 3rd ed, 2010
Pages: 984
ISBN: 978-0321694690
Aimed at: Intermediate level programmers
Rating: 5
Pros: An in-depth look at the C# language
Cons: Not for the complete beginner
Reviewed by: Ian Elliot

This is a really good book but you still need to be the right reader to appreciate it. It covers C# 4.0 in great depth but it uses a large font and lots of white space to make it all look approachable. The explanations are very clear and well paced but they do go into some technical detail that a beginner might find difficult.

Banner

The whole book reads like a cross between a reference work and an informal discussion of C#.The most important thing to realise is that while the descriptions are expressed in a clear style this is no dummies' book. What it describes can be quite technical and probably unsuitable for the complete beginner.

For example, right at the start it takes a look as the output of the compiler and discusses what is going on under the covers. A complete beginner would probably find this confusing and unnecessary. If you are slightly higher up the levels then the asides are great fun  - informative and they give you a glimpse of what is going on and make connections to higher concepts.

It starts from the very basics - a Hello world program - and works its way through the foundations of the language - data types, flow control,  methods, classes, Inheritance, Interfaces - and goes to more advanced topics such as delegates, the effect of LINQ on collection objects, reflection, PLINQ, multi-threading using the Task Parallel Library, interop and the CLI. 

Each chapter starts with a map that attempts to show you how the current topic interacts with others. For me this didn't work well but it might suit others and it doesn't take much space in a book that would otherwise be mostly devoid of illustrations!. 

Having said that this isn't a book for the complete beginner, it would make a good choice for any programmer making the transition from another language. There are even box-outs that compare C# to other languages to provide a contrast.

It is also important to know that it really is about C# and not about the very many associated .NET technologies. So while there is a chapter on LINQ, because this is rightly regarded as being a core C# language technology, there are no chapters on WPF, WF, WCF or even on the user interface in general. It certainly doesn't cover writing web-based applications using Silverlight or ASP .NET.

This is a book that focuses on the C# language and only strays from its core topic if it illuminates the way the language is used. This is as it should be unless you are mistakenly expecting a book on the whole of .NET. This is the one you buy to find out about C# and you will probably need to find another book to help you put this knowledge to work.

This is a very good book if you want an intermediate level almost reference work account of C#.

Highly recommended.

Banner


TinyML: Machine Learning with TensorFlow Lite

Authors: Pete Warden and Daniel Situnayake
Publisher: O'Reilly
Date: December 2019
Pages: 504
ISBN: 978-1492052043
Print: 1492052043
Kindle: B082TY3SX7
Audience: Developers interested in machine learning
Rating: 5, but see reservations
Reviewer: Harry Fairhead
Can such small machines really do ML?



Software Development Pearls

Author: Karl Wiegers
Publisher: Addison-Wesley Professional
Pages: 336
ISBN: 978-0137487776
Print: 0137487770
Kindle: B09BF6CS9T
Audience: General developers
Rating: 2
Reviewer: Ian Elliot
Who can resist a good pearl or two?


More Reviews

Last Updated ( Thursday, 23 December 2010 )