Stage 1 of 7 · 10 lessons · ~6 months
Your language and how HTTP works
Get fluent in one backend language and its runtime, and learn exactly what happens between a client and your server. Everything later in this roadmap sits on these two things.
Start: The terminal and GitLessons· one lesson for each topic, in this order
- 1The terminal and GitLesson
- 2Rust syntax, structs, enums and traitsLesson
- 3Ownership, borrowing and lifetimesLesson
- 4Result, Option and the ? operatorLesson
- 5Cargo, crates and modulesLesson
- 6async/await, Tokio and shared stateLesson
- 7DNS: from a name to an addressLesson
- 8TCP connections and TLSLesson
- 9HTTP requests, responses and headersLesson
- 10HTTP methods and status codesLesson
Start with· follow one of these
- BookFreeThe Rust Programming Language
The Rust Project · Beginner
The official book, free online: read ownership, enums, error handling and traits slowly
- GuideFreeTokio Tutorial
Tokio · Intermediate
The official Tokio tutorial: tasks, shared state, channels and the async model Axum runs on
Practise
Keep handy
Also worth your time
The DNS, TCP, TLS and HTTP steps behind every request your backend will handle
Before moving on: Write a small Rust command line tool with Cargo and unit tests run by cargo test, push it to GitHub in sensible commits, and explain every line of output from curl -v against a real website.

Read the ownership and error handling chapters of the Rust book slowly and do Rustlings alongside them; the compiler errors are the lesson, so read them in full. Expect the first weeks to feel slower than Go or Python, and do not reach for .clone() and .unwrap() to make that feeling stop.