Skip to main content

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.