I've been programming in perl for years, but I was ready to move on to bigger and better things. Wanting to learn C++, I was in search of a 'good' programming book, whether it go to an intermediate level or just the basic fundamentals, that a person looking into learning C++ would want. What more could stick out than a programming book that not only teaches you the C++ language, but the basic tenants of game programming? Here's the 'deal'. As a person with a lot of prior programming experience, I can say this book is huge when it comes to teaching you the basic fundamentals, and I mean for you to take the word basic to its very most possible meaning. This book is a bit more on the 'technical' side, and should probably be for a person who is fairly new to programming, can't stand scanning through long code excerpts, or wants to connect the dots; if they had thrown themselves into the realm of programming in the past without taking the time to acquaint themselves with the foundations.
The first eight chapters are almost beautiful. I really enjoyed going through those simple things that you haven't seen since your first introductory programming class in college. When you get to chapters nine and ten, the book gets a little rough. It does a good job of explaining the topics of chapter nine, like dynamic memory allocation, memory leaks, etc, but it's not as thorough, so I could see that a 'true' beginner could possibly get lost. The chapter 'does' explain everything, but you have to be more careful and pay much closer attention to the words you're reading or you might be left asking 'why' in the heck some things are the way they are.
One thing this book lacks is a good, solid introduction to the C++ language. It could get a bit more into the technical details of really learning the fundamentals to ensuring a 'nice' C++ programming environment other than tossing you at Dev-C++. In the past, I used the Eclipse IDE a lot with Java. I tried to use that for this book, at first, but found it rather difficult to set up, so I gave up and used the default IDE the book recommends; Dev-C++. I had code completion turned on, and I can say the code completion is rather sad in comparison with Eclipse. There are definitely some 'fine' details this IDE could work out to become just a bit more user friendly.
The book doesn't give you a good conclusion. I enjoy a technical book that points the reader to more resources or a 'direction' to go in. This book drops off a cliff at chapter ten and leaves you wondering where to go next? It'd be nice to get some perspective, honest perspective, and be 'informed' of a good book to pick up afterwards. I'm sure leaving the conclusion out of the book was the intent of the author and publisher, but it's always a nice thing to have.
I do recommend this book to a beginner as well as anyone that might have unfairly been thrown into a 'lower' level, low and high in C++'s regard, language like Java or C++ and wants to smooth out the wrinkles they might have with some of the basic fundamentals; myself included in some instances. If you wanted, you could probably run front to back in a day or two, but you won't learn anything that way, especially since the book slowly increases the learning curve as the chapters go on; very slowly. Nonetheless, I recommend you type out the examples by hand, instead of downloading them from disc, and try some of the exercises if time can't afford you to do all of them. If you do that, you'll surely be 'ahead' of those who might have breezed on through when it comes to the sponge factor. Spending extra time on chapters nine and ten would also do you a lot of good(!). Oh, yeah, and the book does a good job of bringing you into the wonderful realm of Object Oriented programming (OOP), but you might have to go 'research' some things like operator overloading, which will probably leave you a little dazed. Underline and italicize that last statement. For a person with a lot of perl experience, this book actually made me appreciate perl so much more, and increase my desire to really pick up a lot more C++ as well.