Congratulations on making it to the end of the course! 🤩
If you’re new to object-oriented programming, the best way to improve any programming-related skill is to practice! Design systems, build them, and learn from your mistakes.
With that in mind, let’s recap what you’ve learned in this course:
A common programming paradigm is object-oriented programming, where objects - created from blueprints called classes - interact to produce behavior.
Objects have state and behavior. State refers to variables and data corresponding to that object, while behavior is present in that object’s methods.
Classes and objects can have different relationships with each other, which represent different concepts. Inheritance (“is-a”) relationships allow child classes to inherit and override functionality from their parent classes, while composition (“has-a”) relationships are when an object contains a reference to another object or objects, often used when an object contains, or is made up of other objects.
As a programming problem gets harder, so does the required design work. You can break a problem into smaller pieces that interact and divide your program into modules and packages.
Finally, you discovered - through learning about exceptions and first-hand knowledge - that programs can go wrong. There are built-in exceptions that let you know when you’ve done something wrong, and custom exceptions which you can write yourself to raise when a problem occurs.
If all of that sounds familiar, great! If it doesn’t, it might be worth reviewing the corresponding chapters before moving on.
Wherever your next steps take you, we wish you the best in your future development as you continue to Learn Programming with Python! 😊