Phase 7 of 12 · about 12 hours of study
Software engineering
How software is built, from bits to tested, well-designed programs. 16 lessons, about 12 hours of study, in four tracks. One lesson is free to try without an account: the first, How computers run code. The rest need a free account.
Start with How computers run code Create a free account
What you'll learn
How computers run code
- How computers run code FreeBits, memory, the processor, and what really happens when Python runs.
- Algorithm complexityCount the work code does, and see why some programs stop scaling.
- Concurrency and asyncDo many things at once: processes, threads and the event loop.
- Performance and profilingMeasure before you optimize, then fix the part that matters.
Data structures & algorithms
- Core data structuresArrays, linked lists, stacks, queues and the hash table behind every dict.
- Recursion, trees and graphsFunctions that call themselves, and the shapes most real data takes.
- Searching, sorting and dynamic programmingThe classic algorithms, and the ideas behind them.
Writing good code
- Testing your codeAutomated tests that prove code works and keep it working.
- Debugging systematicallyFind any bug with a method instead of guesswork.
- Readable code and refactoringWrite code people can understand, and improve it safely.
- Types and data modelingType hints, dataclasses and checking data at the edges of a program.
- Software designModules, interfaces and dependencies that keep big programs changeable.
Building software
- Databases and SQLStore, query and join data with the language every database speaks.
- Secure codingInjection, escaping, secrets and passwords: the mistakes attackers look for.
- Projects, packaging and CILay out a real project, pin its dependencies and test it on every push.
- Capstone: a command-line appDesign, build and test a complete program with a database.
Before you start
Lessons here build on an earlier phase:
The placement test can mark off what you already know, so you only study what's new to you.
What you'll build
Design, build and test a complete program with a database. Read the tutorial.
- Turn a short brief into requirements, a data model and a layered design
- Build a command-line interface with argparse, exit codes and clear errors
- Store data with a repository class over SQLite
When you finish
Finish every lesson in this phase, or show you know it in the placement test, and you earn a certificate of completion, "Software engineering (Phase 7)", with its own link you can share.