| The "Absolute Beginners" series is typically great for learning a language if you are a complete newcomer to programming. The title "absolute beginner" suggests this. It's also great because the programming samples are in the form of games.
This book, unfortunately, would probably completely confuse or scare off a new programmer. It is likely to confuse even those who are not new to programming. I have a fair amount of experience with VB6 (medium sized database applications with SQL Server backends) and some with VB.NET (I bought the book mostly for the games, but also as a refresher course), and I found this experience necessary for understanding the first few parts of this book.
The book consistently uses concepts before they're introduced, and in one place even suggests skipping ahead to the next chapter if what you're reading doesn't make sense.
The author makes numerous references to C++ and there are way too many comparisons between VB.NET and VB6. The first few chapters of the book would be way over the head of any brand new programmer. Assembly and machine language are brought up, as well as client/server networks. Why? The author also uses some VB6 in his .NET programs. For example, the "MsgBox" function is not officially a .NET function (it's part of a library .NET keeps to maintain backward compatibility). Sure you can use it, but it may or may not be compatible with other .NET classes down the road (e.g., if you wanted to use it in conjunction with a C# program). It would be best to stick with the more .Nettish "Messagebox.show" command which is entirely compatible with the .NET libraries.
Also used are the VB6 "Len(String)" (instead of "String.Length"), "Instr", "Left" and "Right" functions from the VB6 library. After 5 or 6 chapters I wondered if I was really learning VB.NET or a hybrid of VB.NET and VB6. This wonder turned into a fear: would I have to unlearn anything I picked up in this book? This fear burgeoned to the point that I couldn't continue with the book. I stopped a little more than half way through and returned it to the store.
On the bright side, it was really fun programming the games included in this book. And to be entirely fair, I did learn a lot from this book regardless. His description of variables in VB.NET actually being objects was insightful and well thought out. Nonetheless, the fear that I was absorbing wrong information about .NET eventually overpowered me. It's unfortunate, it could have been a great book. Hopefully there will be a second edition that is more in line with VB.NET and does not mention VB6 or C++ once.
|