Software engineers learn key concepts effectively using real-world examples & problems. Following this method, this title is built around the idea of using object-orientation from the very beginning, including the requirements analysis stage, which is how it's done in the field.