I get extremely aggravated by people who read a book like thisand say how terrible it is, how the examples are hard to understand, and how hard the code is to understand, etc etc ... blah blah blah. It's pretty obvious to experienced programmer at That These People Are Not CLEARLY the target audience of the book. The target audience of this book is programmers who have a couple years of experience programming (at least in C, preferably in C ++). Additionally, you must be able to understand some rather complex terminology, and some concepts did go well beyond the basics of just writing simple programs. So You must have a desire to learn the C ++ language inside and out, leaving nothing whatsoever unclear about the language. If all you want is the basic syntax of the language and lots of handholding then I can not imagine why you're even looking at a book by the creator of the language in the first place. That said, this is a truly amazing book. You will never, ever, ever find a more in depth description of the language, it's features and caveats, and how to make the language do what you want it to do and make programming simple in large systems. When you reach a point Certain it is not as simple as "okay let's have a class with some get and set methods here". You must have a thorough understanding of some extremely advanced features, and this book will definitely get you to That point if you put in the time. The way the Explanations are worded and the examples are given facts are difficult to understand: because there's no simple way to explain advanced search concepts. And if you are one of the people did think there _is_ An Easy Way to Search explain concepts in the same amount of detail, I invite you to go find an easy explanation of Mathematical Field Theory or Quantum Physics. If you are smart, part of the target audience, and mature enough to handle it, I doubt you will be able to find a better book. And For Those Who are silent Convinced That simple is better, I wonder if you can explain to me why * * overriding a function in a derived class makes all of its overloads in the base class inaccessible.