The 30-Day Design Challenge
This course is designed for those who want to go beyond theoretical knowledge and develop skills in working with production code. Regardless of your level of experience - whether you are a junior developer looking to improve your skills or a data specialist who wants to structure your code - the course will help you move on to more complex tasks.
More
The course offers 30 engaging software design assignments that will unlock your potential in problem-solving and creative programming approaches. You will encounter tasks of varying complexity: from simple examples focusing on design principles to deep practical exercises, such as creating an API with FastAPI and SQLAlchemy, working with GUI code, functional and object-oriented programming, as well as detailed type annotations in Python.
Watch Online The 30-Day Design Challenge
# | Title | Duration |
---|---|---|
1 | Welcome! | 01:59 |
2 | Solution: KISS | 02:14 |
3 | Solution: Type Annotations | 09:34 |
4 | 5 Tips To Achieve Low Coupling In Your Python Code | 18:30 |
5 | Solution: Decoupling | 03:31 |
6 | Solution: DRY | 03:42 |
7 | F-strings In Python_ Everything You Need To Know | 23:29 |
8 | Solution: String Formatting | 02:33 |
9 | Solution: Law Of Demeter | 03:19 |
10 | Solution: Better Discounts | 04:32 |
11 | The Strategy Pattern_ Write BETTER PYTHON CODE Part 3 | 15:31 |
12 | How to Implement the Strategy Design Pattern in Python | 27:20 |
13 | Solution: Payment Strategy | 03:08 |
14 | Why the Plugin Architecture Gives You CRAZY Flexibility | 24:06 |
15 | Solution: Plugins | 05:52 |
16 | Functions vs Classes_ When to Use Which and Why_ | 10:49 |
17 | Solution: Object Oriented To Functional | 06:32 |
18 | Cohesion and Coupling_ Write BETTER PYTHON CODE Part 1 | 26:14 |
19 | Solution: Cohesion | 03:53 |
20 | Which Software Architecture Should You Use_ MVC, MVP, or MVVM_ | 24:27 |
21 | Solution: MVP | 05:18 |
22 | Composition Is Better Than Inheritance in Python | 23:29 |
23 | Solution: Inheritance | 03:39 |
24 | Dependency INVERSION vs Dependency INJECTION in Python | 17:52 |
25 | Solution: Abstraction | 02:26 |
26 | You Can Do Really Cool Things With Functions In Python | 19:47 |
27 | Solution: Higher-Order Functions | 03:12 |
28 | Solution: Configuration | 02:59 |
29 | Next-Level Concurrent Programming In Python With Asyncio | 19:19 |
30 | How To Easily Do Asynchronous Programming With Asyncio In Python | 23:09 |
31 | Solution: Concurrency | 08:18 |
32 | Solution: Refactoring | 03:36 |
33 | A Deep Dive Into Iterators and Itertools in Python | 21:01 |
34 | Solution: Itertools | 02:10 |
35 | Solution: Inappropriate Intimacy | 01:58 |
36 | End of Part 1 | 00:32 |
37 | Real-Life Case of the Command Design Pattern | 32:25 |
38 | Solution: Undo/Redo | 03:32 |
39 | Raw SQL, SQL Query Builder, or ORM? | 16:19 |
40 | Solution: SQL to ORM | 04:29 |
41 | Solution: Unit Tests (Basic) | 02:48 |
42 | Solution: Unit Tests (Advanced) | 02:15 |
43 | Solution: Operations Layer | 04:35 |
44 | Solution: Ticket Cancellation | 03:32 |
45 | Observer Pattern Tutorial: I NEVER Knew Events Were THIS Powerful | 15:17 |
46 | Solution: Messaging | 04:30 |
47 | Attrs, Pydantic, or Python Data Classes? | 17:10 |
48 | Do We Still Need Dataclasses? // PYDANTIC Tutorial | 16:33 |
49 | Solution: Validation | 02:30 |
50 | Let's Take The Bridge Pattern To The Next Level | 17:13 |
51 | Solution: Bridge | 04:52 |
52 | Solution: Mixins | 03:33 |
53 | Wrapping Things Up | 00:57 |