This is a book about learning by doing and is aimed at programmers familiar with programming, but not C++. C++ is one of the most used object-oriented languages and is used when speed and reliability are required. It is designed for many system-level tasks, such as operating-system programming. The key exercises in this book are not simply listed at the end of the chapter, but are integrated into the main text. Readers work hands-on throughout the book. Each lesson poses numerous questions, asking readers to write answers directly in the book. The book includes answers to all questions, so readers can check their work. These exercises are not simple cookbook-style recipes (e.g., "Write a program to do xyz"). Instead, they are explorations--structured labs that guide readers through a series of steps to highlight specific features of C++.