Design Patterns in Python (Udemy.com)
Discover the modern implementation of design patterns in Python
Created by: Dmitri Nesteruk
Last updated August 2020
Our take
Based on the ratings of 4,462 students, a sample of their written reviews and the syllabus, as the course stood in August 2020. No course pays to be reviewed.
This is a 9.2 hour tour of the SOLID principles and every Gang of Four pattern, spread over 107 lectures in 24 short sections. Each pattern gets a handful of live demos in PyCharm, and most sections end with a coding exercise. It is aimed at working Python developers. The requirements ask for a good grasp of Python and object-oriented design, and several reviewers repeat that it is not for beginners. About 32,000 students have enrolled.
Reviewers like the clear voice and the amount of code, and the 4.3 rating from 4,462 reviews is mostly fours and fives. Dmitri Nesteruk gets credit for in-depth knowledge. The complaints are consistent, though. Examples can be over-complicated, so the pattern gets lost in the implementation detail. Exercises are called vague, and one reviewer says a late test passes without any student code. Others want real-world scenarios and a plain explanation of each pattern before the code starts. A few point to mutable default arguments and files opened without a context manager.
The course was last updated in August 2020. At 9.2 hours it covers a lot of ground quickly, which suits a reference pass more than a first introduction. It makes sense for someone who already writes Python and learns by reading code. Readers who want use cases first may want to pair it with a plain-language guide to the patterns.
Pros
- Covers SOLID plus all the GoF patterns in 107 lectures across 24 short sections
- Most sections end with a coding exercise so each pattern gets practice
- Reviewers call the instructor's voice and explanations clear, with deep pattern knowledge
- Live PyCharm demos show each pattern as working code, with files to download
Cons
- Examples are often over-complicated, so the pattern gets buried in implementation detail
- Exercises are often vague, and one reviewer found a test that passes with no student code
- Last updated August 2020, and some code skips Python best practices like context managers
I loved how each design pattern had code examples so I could get a better idea of how they look like in practice.
Intermediate is right: it expects solid Python and OOP, and reviewers warn beginners off.
What you will learn
- Recognize and apply design patterns
- Refactor existing designs to use design patterns
- Reason about applicability and usability of design patterns
Course content
24 sections · 107 lectures · 9.2 hours of video 22 quizzes, 22 coding exercises
- 1The SOLID Design Principles7 lectures · 1 hour
- 2Builder 1 free preview6 lectures · 1 quiz · 33 min
- 3Factories5 lectures · 1 quiz · 33 min
- 4Prototype4 lectures · 1 quiz · 18 min
- 5Singleton 1 free preview7 lectures · 1 quiz · 30 min
- 6Adapter4 lectures · 1 quiz · 15 min
- 7Bridge3 lectures · 1 quiz · 11 min
- 8Composite 1 free preview4 lectures · 1 quiz · 20 min
- 9Decorator5 lectures · 1 quiz · 26 min
- 10Façade3 lectures · 1 quiz · 11 min
- 11Flyweight4 lectures · 1 quiz · 21 min
- 12Proxy5 lectures · 1 quiz · 15 min
- 13Chain of Responsibility5 lectures · 1 quiz · 28 min
- 14Command4 lectures · 1 quiz · 35 min
- 15Interpreter4 lectures · 1 quiz · 21 min
- 16Iterator4 lectures · 1 quiz · 24 min
- 17Mediator4 lectures · 1 quiz · 18 min
- 18Memento4 lectures · 1 quiz · 12 min
- 19Observer 1 free preview5 lectures · 1 quiz · 21 min
- 20State5 lectures · 1 quiz · 23 min
- 21Strategy3 lectures · 1 quiz · 13 min
- 22Template Method3 lectures · 1 quiz · 10 min
- 23Visitor6 lectures · 1 quiz · 32 min
- 24Summary and Extras2 lectures · 12 min
Who it is for
The instructor says it suits
- Software engineers
- Designers
- Architects
What you need before you start
- Good understanding of Python
- Familiarity with latest Python language features
- Good understanding of object-oriented design principles
- A computer with the latest Python release and (hopefully) an IDE
How it compares
Against the other 388 rated Udemy courses in Python on CourseDuck:
- Rating4.3 out of 5higher than 25% of them
- Reviews4,462#76 of 389 by number of reviews
- Length9.2 hoursshorter than 53% of them
- Last updatedAugust 2020earlier than 74% of them
Course Description
Course Overview
This course provides a comprehensive overview of Design Patterns in Python from a practical perspective. This course in particular covers patterns with the use of:
The latest versions of the Python programming language
Use of modern programming approaches: dependency injection, reactive programming and more
Use of modern developer tools such as JetBrains PyCharm
Discussions of pattern variations and alternative approaches
This course provides an overview of all the Gang of Four (GoF) design patterns as outlined in their seminal book, together with modern-day variations, adjustments, discussions of intrinsic use of patterns in the language.
What are Design Patterns?
Design Patterns are reusable solutions to common programming problems. They were popularized with the 1994 book Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, John Vlissides, Ralph Johnson and Richard Helm (who are commonly known as a Gang of Four, hence the GoF acronym).
The original book was written using C++ and Smalltalk as examples, but since then, design patterns have been adapted to every programming language imaginable: C#, Java, Python and even programming languages that aren't strictly object-oriented, such as JavaScript.
The appeal of design patterns is immortal: we see them in libraries, some of them are intrinsic in programming languages, and you probably use them on a daily basis even if you don't realize they are there.
What Patterns Does This Course Cover?
This course covers all the GoF design patterns. In fact, here's the full list of what is covered:
SOLID Design Principles: Single Responsibility Principle, Open-Closed Principle, Liskov Substitution Principle, Interface Segregation Principle and Dependency Inversion Principle
Creational Design Patterns: Builder, Factories (Factory Method and Abstract Factory), Prototype and Singleton
Structrural Design Patterns: Adapter, Bridge, Composite, Decorator, Façade, Flyweight and Proxy
Behavioral Design Patterns: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method and Visitor
Who Is the Course For?
This course is for Python developers who want to see not just textbook examples of design patterns, but also the different variations and tricks that can be applied to implement design patterns in a modern way. For example, the use of decorators and metaclasses allows us to prepackage certain patterns for easy re-use.
Presentation Style
This course is presented as a (very large) series of live demonstrations being done in JetBrains PyCharm and presented using the Kinetica rendering engine. Kinetica removes the visual clutter of the IDE, making you focus on code, which is rendered perfectly, whether you are watching the course on a big screen or a mobile phone.
Most demos are single-file, so you can download the file attached to the lesson and run it in PyCharm, IDLE or another IDE of your choice.
This course does not use UML class diagrams; all of demos are done via live coding.
Instructor Details
- 4.3 Rating
4,462 Reviews
Dmitri Nesteruk
Dmitri is a quant, developer, book author and course author. His interests lie in software development and integration practices in the areas of computation, quantitative finance and algorithmic trading. His technological interests include C# and C++ programming as well high-performance computing using technologies such as CUDA and FPGAs. He has been a C# MVP since 2009.
More courses by Dmitri Nesteruk
Learn Parallel Programming with C# and .NET (2019)
4.6 (4,564 Reviews)
Provider: Udemy
Time: 5.3h
$14.99
More Python courses
Python 3: Deep Dive (Part 1 - Functional) (2024)
4.9 (13,534 Reviews)
Provider: Udemy
Time: 45.8h
$22.99
Python 3: Deep Dive (Part 3 - Dictionaries, Sets, JSON) (2023)
4.9 (1,996 Reviews)
Provider: Udemy
Time: 21.9h
$17.99
Programming for Everybody (Getting Started with Python)
4.9 (717 Reviews)
Provider: Coursera
Time: 12h
Free
An Introduction to Interactive Programming in Python (2013)
4.9 (554 Reviews)
Provider: Coursera
Time: 6h 40m
Free
Python: Python Programming Language | Tutorial | Beginner (2023)
4.9 (239 Reviews)
Provider: Udemy
Time: 5.1h
$19.99
An Introduction to Interactive Programming in Python (Part 2)
4.9 (225 Reviews)
Provider: Coursera
Time: 25h
Free
Reviews
By Nikolay Rublevskiy on 3/24/2026
Biggest concern is that some coding excercises plainly state "we're no excercising the concept here, instead we're doing something else" I want to understand the concept of a pattern, it's use-cases and how to identify a place where pattern can be used. I don't really care about naming convention for values in coordinate systems. More focus on the topic would greastly benefit this course
By Boris Urman on 5/14/2023
Design patterns are explained ok but instructor doesn't seem to follow best python practices. For example, in many examples instructor used empty list or class instance as default argument. Mutable default arguments should be generally avoided. And others: opening file without context manager, using `==` to compare same object instead of `is`, etc.
By Joris Jansen on 7/12/2021
Great course, teacher explains everything very well! I did actually need some extra resources every now and then (google the design pattern to get some simple real life example), but that wasn't annoying. A few design patterns and their example where "hard" to follow because I didn't had a good idea about what we were going to build. So I had to re-watch these lectures, but also not annoying to me and after watching such lectures twice the concept became more clear. Thanks!
By Chi-Hui Chou on 1/21/2021
The course covers all 23 design patterns from GOF. Some of the examples are not easy to understand. Well... I've read the design pattern from GOF and other books. To learn design patterns, you still need to do lots of practice and have lots of experience in the development. Besides, the teacher uses many advanced features in Python, magic methods, iterator protocols, metaclass, so I don't think it's good for beginners.
By Gangadhar on 12/13/2020
The examples provided in SOLID principles should have been with more practical cases rather than some random use cases.
By Rohit Singla on 12/13/2020
Concepts are covered but at a very high-level. No explanations of why we are doing or using things. Not getting even a single idea of how the design patterns work.
Need to watch videos multiple times to understand and need to do own research lot. Not suitable for anyone.
By John Cochrane on 12/6/2020
Gave me some pointer on better coding techniques/approaches. I'm probably gonna need to do some refactoring of stuff I wrote previously. There is a lot to take in and internalize here!
By Charalambos Maxoutis on 11/25/2020
Thank you Dimitri! It was a great course with a lot of insight into the Design Patterns using Python. Definitely 5/5 stars
By Jeheon Park on 11/15/2020
It was a perfect lecture for me to improve my coding skills.
By Pranay Devarasetti on 11/12/2020
Really enjoyed this course! Implementing the patterns with examples is what i loved the most
By Eyal Segal on 10/27/2020
Great course! from basics to advance. highly recommend
By Prakhar Dev Gupta on 10/18/2020
This is explained very well. I got the intuition of SRP. But the class and variable names should have been more proper.
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 86 / 100









