C++ FAQ Celebrating Twenty-One Years of the C++ FAQ!!!
(Click here for a personal note from Marshall Cline.)
Section 28:
[28.4] Should I buy one book, or several?

At least three.

There are three categories of insight and knowledge in OO programming using C++. You should get a great book from each category, not an okay book that tries to do an okay job at everything. The three OO/C++ programming categories are:

Legality guides describe all language features with roughly the same level of emphasis; morality guides focus on those language features that you will use most often in typical programming tasks. Legality guides tell you how to get a given feature past the compiler; morality guides tell you whether or not to use that feature in the first place.

Meta comments:

  • Don't trade off these categories against each other. You shouldn't argue in favor of one category over the other. They dove-tail.
  • The "legality" and "morality" categories are both required. You must have a good grasp of both what can be done and what should be done.

In addition to these (emphasis on "addition"), you should consider at least one book in each of two other categories: at least one book on OO Design plus at least one book on coding standards. Design books give you ideas and guidelines for thinking at a higher level with objects, and coding standard books establish best practices across your organization, plus help make sure everybody can read each others' code (e.g., so you can move people around if one of the teams falls behind).