Stay far away from this book of you are not an OOP programmer. All examples are in Java but most C++ programmers should be able to mentally translate the ideas. There is also too much focus on Java specific tooling. While there are some good points this book makes, it disregards many good programming techniques used in standard imperative languages without objects. It completely disregards functional languages and given gives some terrible advice when it comes to writing good code in a functional style. Overall it's pretty good up to about chapter 7. After that it's pretty much downhill.