Ownership, traits, and fearless concurrency for engineers who already know Java, Python, or Go.
GitHub: saurabhahuja71/Rust-learning
Sister repo: ruby-from-scratch · Path hub: learning-path
Track map & comparisons: learning-path/tracks/ruby-and-rust
Rust is the language that refuses to let your bugs ship. There is no GC, no data races in safe code, and a compiler that reads like a pedantic senior pair-programmer.
This curriculum assumes you already know how to program. We spend our energy on ownership, traits, Result/Option, iterators, async, and smart pointers — the concepts that feel alien coming from GC languages.
- Comfortable in Java, Python, Go, or similar
- Terminal + Git + editor with rust-analyzer recommended
- See 00-setup/rust-setup.md
- Complete setup (
rustup,cargo) - Chapters in order — ownership first is non-negotiable
- Type examples; read every compiler error
- Exercises before
solutions/ - Ship a project from
projects/
| Pace | Schedule |
|---|---|
| Intensive | 1 chapter/day; re-read ownership if needed (~2–3 weeks) |
| Steady | Ownership week + one chapter every 2–3 days (~5 weeks) |
| After Ruby | Follow hub Option A |
| # | Chapter | Run |
|---|---|---|
| 0 | Setup | rustc --version |
| 1 | Ownership & borrowing | cargo run in chapter examples |
| 2 | Structs, enums, match | cargo run |
| 3 | Traits & generics | cargo run |
| 4 | Result & Option | cargo run |
| 5 | Collections & iterators | cargo run |
| 6 | Concurrency & async | cargo run |
| 7 | Smart pointers & memory | cargo run |
| P | Projects | cargo run per project |
→ learning-path · Ruby & Rust track
→ Hub home: saurabhahuja71/learning-path
Compare with Ruby: ruby-from-scratch
Each chapter with code has a small Cargo project under examples/ or is a multi-bin crate.
# Ownership chapter
cd 01-ownership-and-borrowing/examples
cargo run --bin move_semantics
cargo run --bin borrowing
# Projects
cd projects/cli-todo && cargo run -- list
cd projects/grep-lite && cargo run -- error Cargo.toml
cd projects/async-fetcher && cargo runEdition: 2021 (compatible with newer editions as they stabilize). Prefer a recent stable toolchain (1.70+).
rust-from-scratch/
├── README.md
├── 00-setup/
├── 01-ownership-and-borrowing/ … 07-smart-pointers-and-memory/
├── projects/
├── solutions/
└── .gitignore
See CONTRIBUTING.md.
Saurabh Ahuja (@saurabhahuja71)
- Website: www.onenova.in
- Learning hub: learning-path
- LinkedIn: saurabhahuja71
MIT