Skip to content
UdemyPythonPaid courseIntermediate levelCertificate

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.

Best forWorking Python developers who know OOP and want every GoF pattern shown in code, with an exercise in most sections.
Skip it ifPeople new to Python or OOP, or who want real-world use cases explained before the code starts.

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.
Luciano Cabrales Ferrer, a student

Intermediate is right: it expects solid Python and OOP, and reviewers warn beginners off.

icon
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

  1. 1The SOLID Design Principles7 lectures · 1 hour
  2. 2Builder 1 free preview6 lectures · 1 quiz · 33 min
  3. 3Factories5 lectures · 1 quiz · 33 min
  4. 4Prototype4 lectures · 1 quiz · 18 min
  5. 5Singleton 1 free preview7 lectures · 1 quiz · 30 min
  6. 6Adapter4 lectures · 1 quiz · 15 min
  7. 7Bridge3 lectures · 1 quiz · 11 min
  8. 8Composite 1 free preview4 lectures · 1 quiz · 20 min
  9. 9Decorator5 lectures · 1 quiz · 26 min
  10. 10Façade3 lectures · 1 quiz · 11 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

icon
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.

icon
Udemy Discount

The discount is applied through our link. Open the course from here and Udemy's current promotional price is applied at checkout on most courses, no code to type.

Some courses are excluded from Udemy's promotions. If the price does not drop, clear your browser cookies and use the button again.

icon
Instructor Details

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. 

icon
More courses by Dmitri Nesteruk

$124.99

$13.99

$14.99

$14.99

$14.99

$10.99

icon
More Python courses

$22.99

$17.99

Free

Free

$19.99

Free

icon
Reviews

4.3

4,462 ratings on Udemy

Select a bar to show only those reviews.Select the bar again to show every rating.

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.

Showing 12 of 136 reviews

icon
Quality Score

No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 86 / 100