Object Oriented Programming (OOP) with Python for beginners (Udemy.com)
Structure code with Classes, Inheritance, Polymorphism, Encapsulation and Dependency Injection and learn Unit Testing.
Created by: Loek van den Ouweland
Last updated January 2026
What you will learn
- describe OOP by its official definition, its features and the role it plays in building robust software
- group data in objects by using classes, initializers, encapsulation and inheritance
- visualize and communicate your classes with the help of UML diagrams.
- decouple and refactor growing code by using polymorphism and dependency injection
- avoid an explosion of subclasses by knowing when to favor composition over inheritance
- test your code for correctness, by creating and executing unit tests.
Course Description
Are you a beginning Python programmer who wants to prevent spaghetti code by organizing code better? Do you often have to work with unstructured code that is hard to understand?
Or are you a developer that brings experience from other programming languages and want to learn how to use OOP in Python?
Then this course is for you!
The 'Object Oriented Programming with Python' course guides you through an exercise, starting with a small, naive approach that gradually is turned into a well structured Object Oriented Design. Each step of the journey introduces new challenges, communicates intended changes with UML and uses tools from the OOP toolkit to solve problems.
Target audience
Developers who especially benefit from this course, are:
Beginner Python developers who want to organise their code better by using OOP
Developers that bring experience from another programming language who want to learn using OOP with Python
Developers that inherit spaghetti code from others at work and need bring structure to it
Challenges
You have heard that object oriented programming can help you to structure your code. But many tutorials overwhelm you with technical blah blah and seem to focus too much on how to implement OOP features. But if you do not understand why to do things, you will use OOP without without using its full potential.
This can lead to writing ineffective code or worse: give up on the idea of OOP.
This course is different! It starts with the absolute beginning and introduces common challenges that are solved by using Object Oriented Programming. This way, you will learn OOP from the ground up, step by step.
What can you do after this course?
You will organize your code better so changes in the future do not cause nightmares anymore
You can visualize and communicate your code to your colleagues with UML, before writing a single line of code
Your code will be organized in small, predictable and testable units
Topics
Introduction OOP: Understanding the problems that are solved with OOP
Classes and objects: Create classes, the class initializer, and instantiate objects
UML: Visualize and communicate the class diagrams with the Unified Modeling Language
Inheritance: Prevent duplicate code by creating subclasses
Encapsulation: Prevent access to class information
Dependency injection: Decouple your code by injecting dependencies
Polymorphism: Allow your code to be extended with minimal changes to the system
Composition: Prevent an explosion of subclasses by using composition
Unit testing: Write Unit Tests to test the correctness of your code
Duration
2,5 hour video time. 5 Hours with exercises.
The teacher
This course is taught by Loek van den Ouweland, a senior software engineer with 25 years of professional experience. Loek is the creator of Wunderlist for windows, Microsoft To-do and Mahjong for Windows and loves to teach software engineering.
Students of this course tell me:
* * * * * “An excellent, concise and clear explanation of the basics of OOP. Fantastic course! Thanks Loek.”
* * * * * “This is the Python OOP course I've been searching for a long time. Many courses teach OOP syntax but few courses help you understand the "why", and then followed by the "how". This course does it and also with realistic scenarios that make it more relevant to the workplace. Highly recommended!”
* * * * * “I thought OOP it was really difficult. But through this course, OOP is something that makes coding much readable and robust. I am sure this course will help people who have hard time coding plain and simple.”
Instructor Details
- 4.8 Rating
531 Reviews
Loek van den Ouweland
Loek van den Ouweland (Wunderlist, Microsoft Todo) is a born teacher. Right from the start of his career, he was told that a programmer helps his customers best when he shows what his products can do and how they are built.
He worked in many companies as programmer and trainer and enjoys to share the secrets of programming with others.
Loek has 30 years of experience training people with different backgrounds, all ages, working in branches ranging from medical systems to manufacturing and academics to aerospace.
More courses by Loek van den Ouweland
Neural Networks In Python From Scratch. Build step by step! (2026)
4.5 (440 Reviews)
Provider: Udemy
Time: 3.1h
$54.99
More Introduction to Computer Science courses
The Horse Course: Introduction to Basic Care and Management
4.9 (156 Reviews)
Provider: Coursera
Time: 22h
Free
Operating Systems from scratch - Part 2 (2022)
4.8 (1,662 Reviews)
Provider: Udemy
Time: 12.3h
$10.99
Introduction to Programming Crash Course + Python Primer (2025)
4.7 (3,814 Reviews)
Provider: Udemy
Time: 4.7h
$59.99
Object-Oriented Software Engineering with Java (2023)
4.7 (210 Reviews)
Provider: Udemy
Time: 6.5h
$84.99
Python Coding Intermediate: Python Classes, Methods and OOPs (2025)
4.7 (200 Reviews)
Provider: Udemy
Time: 5.9h
$44.99
Reviews
By Jardar Dyrseth on 8/29/2026
Excellent course! Loek van den Ouweland is an outstanding teacher who explains OOP clearly and directly, without unnecessary detours. He breaks down difficult topics in a way that makes them genuinely understandable, even for someone who has never encountered object-oriented programming before. The progression from basic concepts to inheritance, polymorphism, and dependency injection felt natural and well-paced. This is exactly the kind of course that teaches you the "why" behind OOP, not just the syntax. Five stars, highly recommended!
By Felix Rojas on 5/13/2025
This course clearly explains what is OOP and why is used. Using a sample problem all the aspects of OOP (refactoring,class, object, inheritance, encapsulation, abstraction, polymorphism, composition) come into play. In that sense we can directly see what are the problems we face when designing a code and how we can tackle this problems using OOP philosophy. For me was really helpful because it goes through What?(problem), How?(to solve it), Why?(we use the specific approach), Where?(in the code we use a specific approach), and finally When?(we should use a specific approach). In that way everything is clear and on spot, specially for me that I am new to OOP and code design. I think it could be helpful if the main diagrams that are used, to make the point of the different OOP concepts, be shared as downloadable slides. This is a good reference to go back and avoid going all over the video again. Overall amazing intro course!
By Gregor Burghardt on 1/5/2025
Hello Loek, thanks for your very good introduction to object-oriented programming in Python. Your tutorial is well structured and detailed. You have conveyed the material in an understandable way, although it does require basic knowledge of Python. I enjoyed diving into the world of OOP. Everything worked out for me except for "Unit Testing". I will soon start your course "Object-Oriented Pirates Programming Adventure In Python".
By Alberto Navarrete Peón on 8/25/2024
This course is hands down the best I've taken in udemy, as Loek really explains why you should use the different tools in the OOP arsenal. Not only that, you develop a single program, and get to whitness the entire evolution of the idea, from start to completion and testing. This is good because in other courses you do little, shallow programs that do not correspond with the complexity of real software. You'll really learn to think with Loek's guidance, and that's much better than just doing lots of small, unsignificant, shallow examples of coding.
By Yannick LARBAT on 12/30/2023
Mr Loek van den Ouweland is an excellent and a amazing Teacher...I'm Senior software engineer (Java, spring boot...) and i'm very happy to gain knowledges on python and How python implements OOP principles...Thanks a lot Mr Loek van den Ouweland...Your courses are must to have ..Next steps your courses : SOLID principles courses, python/Django ....
By Don J Schwirtlich on 6/6/2023
I am excited about this, the questions you said you had regarding oop, are the same I had. I think that someone who has muddled through oop or is the early years of getting into ths awesome world of software development truly needs this course. This course outlines as why, the what and the how of what it takes to do object oriented programming.
By Nguyen Thi Ngoc Han on 4/20/2023
The course covers the basics of OOP in Python. The OOP concepts are well-explained by the instructor. However, as the title of the course, this is just an introduction course to the topic. It would be great if the instructor gives some hints about what students of this course should follow in the next steps to enhance their Python OOP skills.
By Allen Frasier on 3/23/2023
I've made the effort to try to learn Python OOP in many books and way more expensive courses but this outshines them all. It is short, succinct and stays on the rails of ensuring we don't get a treatise on Computer Science theory which obfuscates and confuses many self taught OOP learners. You'll get a single clear use case that evolves to encompass the primary principles of Python OOP. The use case is limited in scope and easy to code along to while still providing the necessary learning elements. If you are a self learner and want a great introduction to Python OOP that will serve as a foundation for further learning, I highly recommend this course.
By Oleksandr Chasnyk on 1/21/2023
Excellent way to present OOP, good explanation , rich in examples. I have only one comment, the example wan't selected properly, same work is easy to do in Excel like software then using oop. Anyway this is doesn't not affect the quality of course. I may recommend this one as instruction to Python OOP.
By Guy Pyetan on 5/7/2021
A truly excellent course -very very clear. I loved the development of the example. This is no criticism but I'd liked to see the course extended to include some of the things that it clearly doesn't and states it doesn't in the conclusion (or make another course which is more advanced which covers these things) I'd like to see a bit more explanation of dependency injection. I'd also like to see if or how one can do encapsulation a bit better (in Python) and understand how Pythons limitations in this area hinder things. I think the course should also be developed to fully cover SOLID code principles and design patterns. 5/5 Very Well Done
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 96 / 100







