// roadmap · python · postgresql · django

From zero to your first Python web project

No programming background needed. One path through Python, PostgreSQL, and Django — each stop assumes only the ones before it — ending with a framework you already built by hand, and the know-how to put your project on the real internet.

13 stages · 19 guides · 2 side quests — every stop assumes only the ones before it

  1. stage 01

    Set up your toolbox

    Three installs and five terminal commands. Do this once, properly, and no later lab ever gets to blame your machine.

    You can open a terminal, cd into a folder, run a Python file, and read the traceback when it fails.

  2. stage 02

    Learn just enough Python

    Not all of Python — the working core: values, names, decisions, loops, the two containers, and functions.

    You're comfortable with functions, lists, and dicts — the exact bar every later stop assumes.

  3. stage 03

    Keep every version of your work

    You now have files worth keeping. Stop making copies called shop_final_v2.py — learn the tool that keeps every version of everything, forever.

    You can init a repository, commit, read the log, and get yesterday's version back.

  4. stage 04

    Speak the browser's language

    Everything you'll build from here on ends as an HTML document. Learn to read and hand-write one before you start generating them with Python.

    You can hand-write a small page, style it, and predict how the browser will draw it.

  5. stage 05

    See the machine you're building for

    Before writing any server code, watch the machinery you're writing for. Four theory guides, each with simulators to step through.

    You can narrate what happens between typing a URL and pixels appearing — and point at the exact step where your Python code will run.

  6. stage 06

    Level up your Python

    Every framework API you'll touch — views, models, forms — is a class. Get comfortable with objects before the labs start leaning on them.

    You can read a class definition and know exactly what Python does with it — no magic left in self or __init__.

  7. stage 07

    Build your first server — no framework

    Just the standard library, so there's nowhere for magic to hide.

    You've served HTML built from data in ~45 lines of Python and proven it's server-side rendering with view-source.

  8. stage 08

    Put the data where it belongs

    Real applications don't freeze data into source code. Install PostgreSQL, learn its rules, then render whatever is in the table right now.

    You edit a row in pgAdmin, refresh the browser, and the page changes — without restarting anything.

  9. stage 09

    Build Django's core by hand

    Django's heart is three ideas: a callable that speaks WSGI, a route table, and a translator between objects and rows. Build each one small.

    You've written ~90 lines that are, structurally, a web framework — routing, middleware, and an ORM.

  10. stage 10

    Let users in — safely

    A web project without users is a brochure. Learn the two questions every app asks, and the attack the browser's cookie rules make possible.

    You know what a session cookie proves, what a 403 means, and why every Django form ships a hidden token.

  11. stage 11

    Set up projects like a professional

    Every lab so far ran on the standard library, deliberately. One step before Django: how other people's code gets onto your machine without projects breaking each other.

    You can start any new project with a clean virtual environment and a lock file.

  12. stage 12

    Meet the framework you already built

    You've now hand-built every piece Django industrializes. The capstone assembles the map: your ~150 lines against Django's modules, side by side.

    Django never gets to feel like magic. You're ready for the official tutorial — and then a project of your own.

  13. stage 13

    Put it on the internet

    localhost:8000 is unreachable from the internet by design. Learn the boxes every hosting provider assembles — proxy, workers, static files, secrets — so any deploy dashboard reads as things you already understand.

    You can name every box between a visitor's browser and your code — and you know a PaaS is just those boxes, rented pre-assembled.

after stage 13

Do the official Django tutorial — the capstone has already told you what every file in it is. Then rebuild the student portal from the SSR labs in Django: models for the students table, a view per page, forms with CSRF for adding rows, the whole thing in a Git repository. Deploy it on a PaaS using what stage 13 taught you. That's your first web project on the real internet — and you'll understand every layer of it.