Object-oriented programming is both a necessary tool and a difficult hurdle for new programmers. One reason it is difficult is that you have to learn why to use it before you learn how. So in this lesson, we'll take a real-world programming problem and try to solve it first without object-oriented programming, and you'll see where it breaks down and how the code becomes unmanageable.