Software engineering: Python
The course is the same for all four languages, and the code here is in Python. Every module says which lessons of the language you need before it.
Module 0
Welcome
1 lesson · what the course teaches and what you need to know
Module 1
Design patterns
14 lessons · Strategy, Observer, Builder, State…
Module 2
Clean code and refactoring
8 lessons · names, functions, smells, small steps
- Names in code
- Functions: one job, few parameters, no hidden side effects
- Comments that lie and comments that help
- Code smells: long method, large class, duplication, primitives instead of types, long if chains
- Tests as a safety net
- Refactoring in small steps
- SOLID without dogma
- Exercise: a messy class, cleaned up step by step
Algorithms and complexity
Module 3
Complexity
5 lessons · Big-O, time and memory, measuring
Module 4
Searching
3 lessons · linear and binary search
Module 5
Sorting
6 lessons · insertion, merge, quick, heap, counting
Module 6
Recursion
4 lessons · the call stack, divide and conquer
Module 7
Data structures
8 lessons · array, list, hash table, trees, heap
Module 8
Graphs
6 lessons · BFS, DFS, Dijkstra, dependencies
Module 9
Dynamic programming
5 lessons · memoisation, tables, knapsack
Module 10
Greedy algorithms
2 lessons · when they work and when they fail
Module 11
Problem-solving techniques
4 lessons · two pointers, sliding window, prefix sums
Module 12
Project: city navigation
1 lesson · the map as a graph, BFS, Dijkstra
Module 13
Concurrency and race conditions
9 lessons · locks, deadlock, async
Module 14
Security for developers
9 lessons · untrusted input, passwords, sessions, tokens, secrets
Module 15
Software architecture
9 lessons · layers, modules, events, APIs, caching, scaling
Module 16
The architect at work
9 lessons · NFRs, trade-offs, integration, migrations, review
- Non-functional requirements you can measure
- Trade-offs
- When the neighbour is slow: timeout, retry, circuit breaker
- A transaction across services (saga)
- Integrating old and foreign systems
- Changing a live system (strangler fig, expand–contract)
- Architecture review
- The enterprise landscape and capabilities
- Your first architecture task