Skip to main content

The 30-Day Design Challenge

8h 52m 30s
English
Paid

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.

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.

About the Author: ArjanCodes

ArjanCodes thumbnail

My name is Aryan, I am a software developer and educator with a passion for creating beautiful, efficient, and reliable software.

I was born in a small village in the north of the Netherlands in 1977. From a young age, I was fascinated by technology, especially computers. When I was 9 years old, I persuaded my parents to buy our first computer, a Commodore 16, which sparked my love for programming. I spent days playing and creating code in Basic.

I was always interested in how to make programs more efficient and organized, so they would be easier to modify. At the age of 10, I was already thinking about separating data and business logic!

My passion for programming led me to study computer science at university, where I delved deeper into the world of programming and earned a PhD in computer graphics. I worked at the university for 10 years, teaching computer science to students and developing effective methods for easy comprehension of information.

After a while, I realized that I wanted to apply my skills in practice. I left the university and founded a software company with a friend, developing several products used by thousands of people. This gave me valuable lessons in creating scalable software and flexible architectures that allow for quick adaptation.

Watch Online 53 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 53 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Welcome!
All Course Lessons (53)
#Lesson TitleDurationAccess
1
Welcome! Demo
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
Unlock unlimited learning

Get instant access to all 52 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription