If you're interested in learning to code C++ but you aren't sure where to start (like me a few weeks ago), I hope my review can help you decide whether this book will help you or not.
First, you need to take your needs into account. Stephen Davis (the author) isn't great at explaining concepts to people like me, but he might be just fine for you.
I am a person who always has a ton of questions and I often find cursory explanations to be unsatisfying. Stephen regularly marginalized things that I felt I needed to know. After reading the book I had a text file full of questions that I feel the book should have done a better job of answering.
For example, he never fully explains when to enclose a string in single quotes (apostrophes) or double quotes. I looked it up online and found that there is a difference, but Stephen never gave any satisfactory guidance in the form of an explanation.
Following his example code perfectly does "show" you the proper way of coding, but if you truly have zero experience with any programming languages you won't catch the little mistakes in the code. In one snippet there were several lines that had two semi-colons at the end of them--semi-colons being the "end line" symbol in C++ (and many other programming languages). That probably wouldn't cause any huge errors in the code, but it would certainly leave a complete novice confused and looking for an explanation of when to double-terminate a line of code and when it's not necessary.
To answer that question, and to be completely sure that I'm not confusing you, the answer is that the double semi-colons were a typo - any time you need a semi-colon at the end of the line you use just one. But to complicate things further, there is a legitimate time to use two semi-colons in a row that Stephen uses quite frequently, just not at the end of the line.
Besides the minor mistakes in the source code, the book had several other minor typos. Sometimes it looked like blocks of text were copied and pasted in with the intention of making minor changes between the two blocks of text, but someone forgot to make all of the minor changes and it ended up being confusing. For example:
What it should say:
Idea ALPHA is used when you need to do task BRAVO.
Idea CHARLIE is used when you need to do task DELTA.
But they would have:
Idea ALPHA is used when you need to do task BRAVO.
Idea ALPHA is used when you need to do task DELTA.
These little oversights can cause a lot of frustration in trying to figure out exactly what you should be learning. Most of the time you can figure out from the context what mistake the author might have made, but sometimes the existence of those little oversights make you question whether you're not reading something right or the book contains an error that is confusing you.
With all of that negativity out of the way, here's the true bottom line:
If you are an intelligent person that is able to overlook little mistakes here and there and extrapolate ideas well, and you're not the type of person that is bothered by details and is content to push through content at someone else's pace without getting tripped up by questions that may or may not come up, this is a decent book to teach the most basic basics of the C++ language along with beginner code-writing principles.
I have read other introduction to code books (I read one fifteen years ago for Visual Basic) that were better written than this one, but with my experience writing code I was able to get through this one without too much damage being done and I feel like I am able to understand the concepts behind C++ syntax and methods on a very basic level. I enjoyed some of the author's humor, and I did learn quite a bit that I had struggled to learn in the past. I do not yet feel prepared to write any useful applications, but the book doesn't really claim to be able to prepare you for that.
I am using this book as the first step in my education. I intend to follow it up with a true textbook intended for use in classrooms (Object-Oriented Programming in C++, Fourth Edition, by Robert Lafore). I'll come back and review this mammoth of a book (over 1,000 pages) when (or if) I finish it. If nothing else, I expect this next book to be better edited.