Some people learn more efficiently by understanding the overall concepts first before proceeding to more concrete details. Other people learn more efficiently by intermixing abstract concepts and concrete examples. Regardless of the preference for a breadth-first approach or a depth-first approach, there are necessarily some ideas that must be learned before others because the ideas build on each other and are not independent. In both styles, a single reading is usually not sufficient. Backtracking and revisiting earlier concepts often enriches understanding and allows the formation of deeper insights.
The overall structure of the material presented here is shown in the Figure 1.1. The design strategies are shown at the left. It is possible to read about these design strategies top-to-bottom and obtain a broad overview of object-oriented concepts and ideas. At any point it is also possible to