Most C++ programmers are not experts, and they often need preliminaryeducation in various C++ language features, coding techniques, and designpatterns before they can be fully productive. Programmers who need thiseducation include: (1) domain experts who are C programmers, but have onlybasic knowledge of C++; (2) new hires who may have an excellent appreciationof C++ from college courses, but have no practical experience; (3) expert Javaprogrammers who tend to program in C++ the way they do in Java; (4) C++programmers with years of experience maintaining programs, but noknowledge beyond the basics required for that task. What they're missing is thecommon knowledge among experienced C++ programmers, what it takes towrite production-quality programs. That common knowledge is the topic ofthis book.