Skip to main content

Python Learning Path: Start Here

In short: you learn core Python in 7 milestones, building one small project in each. Then you pick a role โ€” SDET, SDE, or SRE โ€” and go deeper on the skills that role uses.

How to use this page

Read this page once to see the plan. Then, for each milestone, follow the same four steps: learn โ†’ build โ†’ test โ†’ commit. Come back here whenever you're unsure what to do next.

The pages in this learning pathโ€‹

In short: each page has one job. You'll use two of them side by side for every milestone.

PageWhat it's forWhen to open it
Comprehensive SyllabusWhat to learn in each milestone, with examples and a self-checkAt the start of each milestone
Milestones & Mini-ProjectsA full working project for each milestone, with testsAfter reading the syllabus section
Python Comprehensive GuideSyllabus and projects combined in one long pageIf you prefer everything in one place
Role GuidesWhy each skill matters for SDET, SDE, and SREWhen choosing your track, or when motivation dips

Quick lookups while you work: the Python cheat sheet and the Quick Reference.

Part 1 โ€” Core Python: Milestones 1โ€“7โ€‹

In short: everyone does these seven, in order. Each one ends with a working project in your portfolio.

MilestoneYou learnYou build
1Setup, values, types, type hintsConfig manager
2Lists, tuples, sets, dicts, comprehensionsJSON API response parser
3if, loops, handling errorsEmail validator & classifier
4Functions, closures, decoratorsRate limiter & retry handler
5Classes, inheritance, dataclassesUser management system
6Modules, generators, context managersLog parser
7Files, regex, measuring speedData processing pipeline

For each milestone:

  1. Learn โ€” read that milestone in the Syllabus.
  2. Build โ€” follow its project in Milestones & Mini-Projects. Type the code; don't paste it.
  3. Test โ€” run the tests with python -m pytest -v until they pass. Then add one test of your own.
  4. Commit โ€” save your progress with git:
git add .
git commit -m "Milestone 1: config manager, 5 tests passing"
git push

Part 2 โ€” Your role track: Milestone 8 onwardsโ€‹

In short: after Milestone 7, pick the role you're aiming for. Not sure? The Role Guides overview compares them.

TrackFocusReadFinal project
SDET (test engineer)Testing and test frameworksSyllabus, Milestones 8โ€“13 and Advanced Python for SDETA full test automation suite with CI
SDE (software developer)Building and shipping servicesPython for SDE and Advanced Python for SDEA deployable web service
SRE (reliability engineer)Automation and running systemsPython for SRE and Advanced Python for SREA reliability toolkit: health checks, metrics, alerts

Your portfolioโ€‹

In short: by Milestone 7 you'll have seven small, tested projects in one GitHub repository โ€” proof you can write real Python.

python-mastery/
โ”œโ”€โ”€ milestone1-config-manager/
โ”œโ”€โ”€ milestone2-json-parser/
โ”œโ”€โ”€ milestone3-email-validator/
โ”œโ”€โ”€ milestone4-rate-limiter/
โ”œโ”€โ”€ milestone5-user-management/
โ”œโ”€โ”€ milestone6-log-parser/
โ”œโ”€โ”€ milestone7-data-pipeline/
โ””โ”€โ”€ README.md # one line per project: what it does, how to run it

Your role track then adds one larger final project.

How you know you're ready to move onโ€‹

After Milestone 7:

  • Seven projects built, each with passing tests.
  • You can explain when to use a list, set, or dict.
  • You can read a file, handle errors, and log what happened.
  • Your git history shows steady progress.

After your role track:

  • You finished the final project for your track.
  • You can explain the design choices in it to someone else.

If you get stuckโ€‹

ProblemWhat to do
A milestone feels too hardRe-read that milestone's syllabus section, slow down, and run each example on its own. Compare with the finished project code.
"I already know Python"Still do Milestones 1โ€“7, but extend each project with an extra feature and more tests.
Losing motivationLook back at your portfolio, and read your role's guide to see where each skill is used on the job.
Not enough timeDo less, but regularly. One milestone done well beats four rushed. Milestones 2 and 3 combine easily.

Start nowโ€‹

Create a folder and a virtual environment (a private space for this project's libraries), then open Milestone 1 in the Syllabus.

mkdir -p ~/projects/python-mastery/milestone1-config-manager
cd ~/projects/python-mastery
git init
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
python -m pip install pytest

Helpful tools (install when you reach the milestone that uses them):

ToolWhat it does
pytest, pytest-covRun tests; show which lines your tests cover
ruffFinds likely bugs and formats your code
mypyChecks your type hints

Good books to read alongside: Fluent Python (Luciano Ramalho) for idiomatic Python, and The Pragmatic Programmer (Hunt & Thomas) for professional habits.