I'm a very picky kind of guy when it comes to buying books on programming. To see what I think of this book, you should read my little story.
When I entered the wonderful world of programming, I chose Visual Basic .NET. This language was famous for being easy to learn. What I didn't know was that it had grown into something more complex, and .NET is a bit tougher to learn than any of the previous versions. So I thought it would only be natural that I needed to buy a couple of books to master the language.
The more books I bought, the more I got sick and tired of authors who weren't able to follow simple naming conventions. Another annoying thing with .NET books is that you can find one sentence in almost all of them saying, "You don't need to know this" when it comes to using built-in functions. Whether I need to know something or not is my decision, not the author's decision. So the author's job is to explain it, and if I really "don't need to know it", I can skip the section. But to make matters worse, most authors didn't even switch to .NET and continued writing bad code as they did with previous versions of Visual Basic, which has nothing to do with .NET. In consequence, I switched to C#, hoping that things would get better.
After the switch, I could still use my Visual Basic .NET books because the syntax is so similar. But I decided to buy some C# books since I hoped that quality would get better. In fact, quality did get much better. But another problem was still the same: most beginning .NET books are too trivial, too superficial, and too incomplete. For a good start with .NET, you need quite a couple of books. The nine books on .NET I own range from beginner topics to advanced topics, but I still find it's incomplete and much too superficial. Not even all the books together give me the information I want.
In terms of syntax, C# and C++ are quite similar. If you can read C# code, then you can read C++ code and vice versa. I know that many C++ book authors go a bit deeper, so I decided to buy a book on C++ to see if that could provide me with the information I want and need. After some research, I ordered C++ Primer Plus mainly based on the excellent reviews here at Amazon.
The reader arrived quickly, and I started immediately. After the first chapter, I knew I had wasted a lot of money - on the nine books I own, that is. This one is a beginner's book, but it goes much deeper than all the other books I own together. If I had known this before, you can be damn sure that C++ Primer Plus would be the only beginner's book on my shelf.
The author has written a true jewel - coherently, concise, and fun to read. It even covers topics that you can't find in advanced .NET books, so I guess another switch is about to happen.
If I had to vote for the best beginner's programming book, this is it. No matter at what level you are, this book is great to have on your shelf. You'll appreciate Stephen's talent to get you started in case you've never touched programming before. If you think you're advanced, put this book on your shelf - it's great for reference as well. Fed up with superficial .NET? Come over to C++, Stephen makes it so simple. Want to continue with .NET? No problem, I have nine books for sale.