Rust From Scratch - Beginner to OSS Contributor¶
From "I have never written code" to "I can clone a real Rust project, read most of it, and submit a pull request."
Who this is for¶
- You have never written code, OR
- You have copy-pasted Rust code from tutorials and bounced off the borrow checker.
That's it. If you need to know something, this path will teach it.
Heads up: Rust is harder than the other beginner paths¶
Honest warning: Rust has a steeper learning curve than Go or Python. The borrow checker - the compiler component that enforces Rust's memory safety rules - will refuse to compile code you wrote on autopilot, and the error messages take time to learn to read. Most people who pick up Rust have at least one moment of "this language is fighting me."
This path is paced for that. Page 06 (ownership and borrowing) is the hard one. We take a whole page on it; we don't pretend it's easy.
The reward: when your Rust program compiles, it almost always does the right thing. The class of bugs that haunts C, C++, Go, Java, and Python programs (null derefs, data races, use-after-free, double-free, type confusion) mostly doesn't exist in safe Rust. The compiler eliminates them up front.
What you'll need¶
- A computer (macOS, Linux, Windows).
- A text editor - VS Code with the
rust-analyzerextension. Free, excellent. - A terminal.
- About 5 hours per week. Path is sized for 4-6 months at that pace.
Why Rust¶
- Memory safety without garbage collection. A category of bugs eliminated at compile time, with no runtime cost.
- Performance comparable to C. Used for systems software, browsers (Firefox), kernels (parts of Linux), databases, embedded.
- The package manager (Cargo) is excellent. Best-in-class. Made the language much easier to adopt.
- The community is welcoming. "I'm learning Rust" gets you helpful responses; gatekeeping is rare.
- Hireable. Demand for Rust engineers has grown steadily; supply hasn't kept up.
How this path works¶
Each page does one thing: says what you'll learn, shows code, walks through it line by line, gives an exercise, ends with a Q&A.
The pages¶
| # | Title | What you'll know after |
|---|---|---|
| 00 | Introduction | What we're doing and why |
| 01 | Setup | Rust installed, hello world, cargo |
| 02 | First real program | Variables, mutability, types |
| 03 | Decisions and loops | if (expression!), loop/while/for, basic match |
| 04 | Functions | Including expressions vs statements |
| 05 | Structs and enums | Rust's enums are special |
| 06 | Ownership and borrowing | THE Rust page |
| 07 | Collections | Vec, HashMap, slices, &str vs String |
| 08 | Error handling | Result, ?, panic! |
| 09 | Traits and generics | Rust's substitute for inheritance |
| 10 | Tests | Built into cargo |
| 11 | Crates and Cargo | Packaging |
| 12 | Reading other people's code | The bridge |
| 13 | Picking a project | What "manageable" looks like |
| 14 | Anatomy of a Rust OSS repo | Case study |
| 15 | Your first contribution | Workflow + PR |
Start with Introduction.
Print this path
Want to read offline or archive? Open the printable version — every section of this path concatenated into one page, styled for paper. Use your browser's Print → Save as PDF.