Now it probably won’t have escaped your notice that neither of the phrases “OOP” or “Object-Oriented Programming” appear in the title of this book. So you may be wondering why it was recommended as part of my OOP education. Well, the reason is that the main middle section of this book deals with the core range of OOP topics in great detail and in a way that makes it, well, easi-ier.
Let’s face it, there isn’t really an easy way to learn all the ins and outs of such a varied and complex topic as OOP. If, like me, you have come to VB.NET from Classic VB and have not had much previous exposure to true object orientation then the bump on your forehead as you run into the glass wall will be that bit more painful.
At least if you have the help of a book which covers topics in a logical order, carefully explained and with code snippets that work (Thank you, Tech Editors!) then you would soon be on your way upwards through that learning curve.
In my opinion, this is just such a book. The authors work through the topics with a clear narrative style, reinforcing important issues and referring back to earlier points where relevant. On those odd occasions where I found myself reading a code snippet and saying “Wait a minute! Shouldn’t that be….?” I almost invariably found that in the next paragraph it was explained clearly why the approach used was the best one. (Of course this was only in those few areas where I actually did have some prior knowledge! The rest I take on trust, but it hasn’t let me down yet)
The target audience for this book is clearly described by the authors:
"The typical reader is assumed to be an intermediate to advanced developer who has experience with Visual Basic, C++, or Java. You should already know how to create a simple class definition that contains fields and methods. You should know why it's important to use encapsulation and how to define certain class members as private. Finally, you should understand the difference between a class, an object, and an object reference.
It's helpful (but not essential) that you know the basics of computer science. It would be impossible to conduct an in-depth discussion of developing software for the .NET Framework without talking about issues such as scope, lifetime, the call stack, the heap, and threads. If you lack this kind of background, I ask you to ponder how things work at a lower level."
Clearly, not for rank beginners then. However, I did find that even where the technicalities got deep and difficult the explanations were clear enough to enable me to get to grips with them.