Python — Intermediate
Level up from Python basics to professional practice: OOP and dataclasses, the data model, typing, robust errors and logging, files and streaming, real testing discipline, SQLite, HTTP/JSON clients, asyncio concurrency, and shipping an installable CLI — capped by an independent capstone project.
49 lessons0 challenges~12.5 hoursBeginner — no experience needed
Prerequisite course:Python — Beginner
Who this course is for
Learners who finished Python — Beginner and can already write functions, loops, collections, and basic try/except — ready to write larger, cleaner, tested, data-backed Python applications.
What you will be able to do
- Write Pythonic data pipelines with comprehensions, unpacking, and key-based sorting
- Model domains with classes, properties, and dataclasses — composition over inheritance
- Implement iterators, generators, and context managers on the Python data model
- Structure a package with src/ layout and annotate public APIs with modern typing
- Design exception hierarchies, chain causes, and log with severity discipline
- Round-trip CSV/JSON, stream large files, and defend against path traversal
- Test with unittest: fixtures, subTest parametrization, and mocking at boundaries
- Store data in SQLite with parameterized queries, transactions, and schema constraints
- Consume JSON APIs defensively with injected transports and bounded retries
- Run concurrent fetches with asyncio.gather, return_exceptions, and timeouts
- Package a CLI with pyproject.toml and apply a security-audit checklist
- Independently build a typed, tested, database-backed CLI capstone
Pythonic Toolkit
Transform data the way working Python developers do: comprehensions, first-class functions, and key-based sorting.
Objects and Modeling
Model the domain with classes, validated properties, dataclasses — and composition over inheritance.
The Data Model: Iteration and Resources
Make your objects work with for-loops, stream data with generators, and manage resources with with.
Structure and Typing
Grow from scripts to packages, and annotate public APIs with modern typing.
Robust Errors and Logging
Design exception hierarchies, chain causes at boundaries, and log like an operator.
Files, Serialization, and Data Flow
Own paths, round-trip structured data, and stream records without loading everything.
Testing Discipline
Test like an engineer: runnable suites, parametrized cases, and mocks at boundaries.
Databases and SQL with Python
Persist real data with SQLite: queries, transactions, constraints — and parameterized everything.
HTTP and JSON APIs
Speak HTTP deliberately: status codes, headers, pagination, and a client built for testing.
Concurrent Async Python
One loop, many waits: coroutines, tasks, gather, and timeouts.
Packaging and Professional Workflow
Ship installable tools: pyproject.toml, entry points, reproducible envs — and a security audit.
Capstone: TaskNoter
Independently build a typed, tested, database-backed CLI tool — three graded milestones, no reference solution.