Lessons
About this phase
Every later phase assumes you can turn an equation into working code in minutes: load a dataset, reshape it into tensors, write a training loop, plot what happened, and save the result somewhere you can find again. This short phase builds exactly that muscle and nothing more. You will learn the slice of Python that machine-learning code actually uses, think in arrays with NumPy (where broadcasting and vectorization replace loops), wrangle and plot data with pandas and matplotlib, meet PyTorch's tensors and autograd, and set up the tooling — environments, Git, GPUs, experiment tracking, the Hugging Face Hub — that keeps projects reproducible and cheap. If you already code daily, skim the notes and do the practice tasks; they are calibrated so that finishing them means you are ready for Phase 3.
By the end you can
- Write idiomatic Python for data work: comprehensions, dataclasses, generators, typing, pathlib, and isolated environments with uv
- Reason about array shapes, broadcasting and vectorization well enough to implement softmax, pairwise distances and a linear layer without loops
- Load, clean, group, join and visualize a real dataset with pandas, matplotlib and seaborn, following an EDA checklist
- Explain what autograd computes and write the canonical PyTorch training loop from memory
- Run experiments reproducibly: Git workflow, free GPUs on Colab/Kaggle, seeds, experiment tracking and the Hugging Face Hub