Object-oriented programming, or OOP, is a powerful way of designing software by creating your own types that encapsulate behavior and data. Your types can make use of other types through relationships. When I’m teaching programming, I don’t start out with this topic right away but I do recommend that you learn it as soon as possible because you’ll need to get used to a new way of thinking about your software designs.

Using the WordGuess game as an example, the core essence of OOP allows you to bundle behavior such as the scrambleWord method with data such as the word to be scrambled.

And along with this bundling comes encapsulation which allows you to scope methods and properties so they can have simpler names and to hide some aspects that are really only for methods in the new type.