Advanced Python

Once you know Python, the question is no longer how to write it but which tool to pick. We industrialise a project, then dig into the concepts that make code shorter and sturdier, and finish with concurrency and persistence. The goal is to navigate the trade-offs, strengths and weaknesses of the standard library.

Duration: 3 days · Level: advanced

For: experienced Python developers who want to master the advanced aspects of the language.

Prerequisites: the content of "Learn programming with Python".

Advanced Python

Day 1 — Industrialising your project

  • pip + venv VS uv
  • Configuring your project with pyproject.toml
  • Formatting and linting with ruff
  • Standardising your commands with poethepoet
  • Adding type hints
  • Checking types with mypy
  • Adding logs to your program
  • Defining an entry point, and making a package
  • Adding tests with pytest

Day 2 — Advanced concepts

  • Managing lifecycles with context managers
  • *args and **kwargs
  • Lambdas and functools
  • Refactoring with decorators
  • Iterator: the pattern that is everywhere
  • Destructuring your objects with unpacking
  • Lazy evaluation with generators

Day 3 — Going further

  • Advanced OOP: dunder methods (magic methods)
  • Advanced OOP: property
  • Advanced OOP: metaclasses
  • Threads: several threads of execution
  • Using every CPU with multiprocessing
  • Non-blocking network requests and asyncio
  • Persistence: JSON, TOML, YAML and XML files
  • Persistence: SQL databases
  • Persistence: ORMs

Elevate Your Python Proficiency!