Level 0 · 80–100 h

Python from scratch and a data mindset

The entry point for anyone who has never programmed: a modern environment, the language, numerical computing with data and the minimum statistics needed to measure return and risk.

Fig. — An ETF's equity curve and its drawdown (schematic)
01/08
Prerequisite
None
Profile
No programming experience

Welcome and expectations

  • 0.1.1 What systematic, algorithmic and quantitative trading are, compared with discretionary trading.
  • 0.1.2 Realistic expectations: costs, time, risk of loss.
  • 0.1.3 Course structure, entry tests and personal repository; ethics of learning with AI.

Modern working environment

  • 0.2.1 Installing Python 3.13/3.14 with uv; versions and support cycle (3.10 out of support in October 2026; 3.15 released).
  • 0.2.2 Virtual environments and dependencies: uv init, uv add, pyproject.toml, lockfiles.
  • 0.2.3 Editors (VS Code, Cursor, PyCharm) and Jupyter, JupyterLab or Marimo.
  • 0.2.4 Basic terminal, paths, environment variables, .env files.
  • 0.2.5 Git and GitHub: commits, branches, pull requests, .gitignore. Never commit API keys.
  • 0.2.6 Introduction to AI coding assistants: prompts, review and tests.

Language fundamentals

  • 0.3.1 Variables, types and operators; floating point and decimal for prices and ticks.
  • 0.3.2 Strings, f-strings, number and date formatting.
  • 0.3.3 Lists, tuples, dictionaries, sets; comprehensions.
  • 0.3.4 Control flow: if/elif/else, for, while, match-case.
  • 0.3.5 Functions: arguments, *args/**kwargs, lambdas, scope.
  • 0.3.6 Exceptions; modules and packages (lazy imports in 3.15 as a new feature).

Intermediate Python

  • 0.4.1 OOP: classes, inheritance, composition, dataclasses.
  • 0.4.2 Typing: type hints, mypy or ty, Pydantic for configuration.
  • 0.4.3 Iterators, generators, decorators, context managers.
  • 0.4.4 Files (CSV, JSON, YAML, TOML, pathlib); dates with zoneinfo and market time zones.
  • 0.4.5 Professional logging and testing with pytest.
  • 0.4.6 Concurrency: threading, multiprocessing and asyncio (the basis for APIs and websockets); free-threading in 3.14+.

Numerical computing and data

  • 0.5.1 NumPy 2: arrays, broadcasting, vectorisation, linear algebra, random generators.
  • 0.5.2 pandas 3.0: Series and DataFrame, time indexes, Copy-on-Write, PyArrow-backed str type, pd.col().
  • 0.5.3 Selection, filtering, groupby, merge/join, pivot, resample, rolling/expanding.
  • 0.5.4 Polars: lazy versus eager API, expressions, performance; when to choose Polars over pandas.
  • 0.5.5 DuckDB and essential SQL: SELECT, JOIN, GROUP BY and window functions on Parquet.

Visualisation

  • 0.6.1 Matplotlib (object-oriented API), Seaborn and Plotly; candlesticks with mplfinance or Plotly.
  • 0.6.2 Quick dashboards with Streamlit.

Minimum mathematics and statistics

  • 0.7.1 Simple and log returns, compound interest; descriptive statistics (mean, variance, skewness, kurtosis).
  • 0.7.2 Basic probability and distributions (normal, Student's t); correlation versus causation; simple regression.
  • 0.7.3 Intuitive linear algebra: vectors and matrices, as preparation for portfolios.