Is this a beginner’s book or not? It claims to be aimed at programmers wanting to learn C# but it cover things at a level that only a beginner would need. Lots of screen dumps and obvious stuff covered in painful detail and minute step-by-steps telling you what to click next. Then it moves far too quickly onto advanced topics that would leave a beginner in the dust. What is more difficult to forgive is that there are no clearly stated ideas just a jumble of dos and don’ts and how things work at a superficial level. The step-by-step approach tends to obscure overall principles but if you are tedious enough to follow each step you might gain a spurious confidence that you can make it all work. What is more difficult to forgive is that when concepts are introduced they are often confusing for the expert, let alone the beginner. For example the coverage of parameter passing doesn’t make it at all clear that parameters are always by default passed by value and confuses passing mechanisms with the effect of variable type. If you read all of it carefully then eventually, and by contrast with pass by reference, it does make sense. Equally disappointing is the explanation of boxing and unboxing which simply explains that this happens and offers no insight into why it happens in any real situations. The final verdict has to be that this is shallow, long winded and muddled. If you really need a step-by-step introduction to C# you might benefit from working through the book but there are better ways of spending your time.<Reviewed in VSJ>