Skip to content

How to Read This Guide

12 min read

This guide contains 31 sections and hundreds of pages. Here’s how to navigate it effectively and get the most out of your learning experience.


Section titled “Strategy 1: Sequential (Recommended for Most)”

Best for: Beginners, those with time to learn properly

Path: Read sections 00-30 in order

00 → 01 → 02 → 03 → 04 → 05 → ... → 30

Pros:

  • Build strong foundation
  • No missing context
  • Everything makes sense

Cons:

  • Takes 60-80 hours
  • Slower to “useful” code

Timeline: 6-8 weeks at 10 hours/week


Best for: Experienced developers, those needing quick results

Path: Core sections only

00 → 01 → 02 → 03 → 05 → 06 → 08 → 11 → 12 → 16
│ ↑
│ MUST DO - Most important!

Focus on:

  • 01: Getting Started
  • 02: Basics
  • 03: Functions
  • 05: Ownership (Don’t skip!)
  • 06: Data Structures
  • 08: Error Handling
  • 11: Async
  • 12: Modules
  • 16: Web APIs

Pros:

  • Fast to productivity (20-30 hours)
  • Learn by building

Cons:

  • Missing depth
  • Will need to revisit topics

Timeline: 2-3 weeks at 10 hours/week


Strategy 3: Project-First (Learn by Doing)

Section titled “Strategy 3: Project-First (Learn by Doing)”

Best for: Hands-on learners, those who hate theory

Path: Jump to projects, backtrack when stuck

00 → 01 → 30 (Pick a project)
Get stuck → Read relevant section
Continue project

Flow:

  1. Read sections 00-01 (basics)
  2. Jump to section 30 (projects)
  3. Pick a project (REST API, CLI tool, etc.)
  4. Try to build it
  5. When you don’t understand something, read that section
  6. Return to project

Pros:

  • Immediately practical
  • High motivation
  • Learn what you need, when you need it

Cons:

  • Can be frustrating
  • Might develop bad habits
  • More time overall (lots of backtracking)

Timeline: 4-6 weeks at 10-15 hours/week


Best for: Those with specific goals (web dev, CLI, etc.)

00 → 01 → 02 → 05 → 06 → 08 → 11 → 12 → 15 → 16 → 17 → 27 → 28
↑ ↑ └─→ Database
Basics Ownership Security & Production
00 → 01 → 02 → 05 → 06 → 07 → 08 → 12 → 13 → 18 → 24
Basics Own. Data Collections CLI Testing Tooling
00 → 01 → 02 → 05 → 10 → 20 → 21 → 26
Basics Own. Smart Unsafe Perf Systems
Ptr.
00 → 01 → 02 → 05 → 06 → 12 → 15 → 19
Basics Own. Data Mods Serde WASM

Every section follows this pattern:

XX-section-name/
├── README.md # Section overview, navigation
├── topic-1.md # Individual topics
├── topic-2.md
└── ...

Each concept topic includes the parts below. (Orientation pages like this one, and the capstone projects in Section 30, use a tailored subset — for example, projects end with “Extending It” instead of graded exercises.)

  1. Quick Overview - 2-3 sentence summary
  2. TypeScript/JavaScript Example - Code you know
  3. Rust Equivalent - The Rust way
  4. Detailed Explanation - How and why
  5. Key Differences - Important changes from TS/JS
  6. Common Pitfalls - What TS/JS devs get wrong
  7. Best Practices - Idiomatic Rust
  8. Real-World Example - Production code
  9. Further Reading - Additional resources
  10. Exercises - Practice problems

Understand what you’re about to learn and why it matters.

This should be familiar. If it’s not, review TypeScript first.

Look for similarities and differences. Don’t just read the Rust code - compare it line by line to the TypeScript.

Understand not just “how” but “why” Rust does it this way.

These are real mistakes TS/JS developers make. Avoid them!

Terminal window
# Create a playground
cargo new try_this
cd try_this
# Edit src/main.rs
# Try the examples yourself!
cargo run

If provided, complete the exercises. They reinforce learning.


Best for: Busy professionals

Day 1: Read one topic (30 min)
Day 2: Try examples, exercises (30 min)
Day 3: Read next topic (30 min)
Day 4: Review and practice (30 min)
Day 5: Build something small (1 hour)
Weekend: Longer project work

Progress: Complete guide in 2-3 months

Best for: Those with weekday commitments

Saturday: 3-4 hours learning
Sunday: 2-3 hours practicing
Weekdays: Quick reviews (15 min/day)

Progress: Complete guide in 1.5-2 months

Best for: Bootcamp style, career transition

Morning: 2-3 hours reading/learning
Afternoon: 2-3 hours practicing
Evening: 1-2 hours review/projects

Progress: Complete guide in 3-4 weeks


Don’t just read - engage!

Bad: Skim through, think “that makes sense” Good: Type every example, modify it, break it, fix it

Bad: Read code once, move on Good: Read it 3 times - once for syntax, once for meaning, once for patterns

Bad: Skip exercises Good: Do all exercises, even if they seem easy

Create a Rust learning journal:

# Day 1: Variables and Mutability
## Key Insight
Rust is immutable by default! Opposite of JS.
## Syntax I Need to Remember
let x = 5; // immutable
let mut y = 5; // mutable
## Gotcha
Forgot `mut` and spent 10 minutes debugging why
assignment failed. Compiler error was helpful though!
## Try Tomorrow
Practice with loops and mutable counters

Follow this process:

  1. Read the error message - Rust errors are helpful!
  2. Check the relevant section - Find the topic
  3. Try the Rust Playground - Isolate the problem
  4. Ask for help - Discord, Reddit, Stack Overflow
  5. Take a break - Sometimes you just need to sleep on it

Keep these sections handy for quick reference:


TypeScript → Rust Quick Reference:

// TypeScript
const x = 5;
let y = [1, 2, 3];
async function f() { ... }
interface User { name: string }
// Rust
let x = 5;
let mut y = vec![1, 2, 3];
async fn f() { ... }
struct User { name: String }

Use Anki, Quizlet, or paper cards for:

  • Syntax conversions
  • Ownership rules
  • Common patterns
  • Error types

After each major section, build something:

  • After 05: Simple CLI calculator
  • After 08: Error-handling file reader
  • After 11: Async HTTP client
  • After 16: Basic REST API
  • After 30: Your own project!

Find or create a study group:

  • Discord channels
  • Local meetups
  • Online cohorts
  • Pair programming

Benefits:

  • Stay motivated
  • Learn from others’ questions
  • Teach to reinforce learning
  • Make friends in Rust community

Share your code:

  • Reddit r/rust (helpful community!)
  • Discord #beginners channel
  • GitHub discussions
  • Stack Overflow

Keep track of what you’ve completed:

[ ] 00 - Introduction
[ ] 01 - Getting Started
[ ] 02 - Basics
...
[ ] 30 - Projects

Periodically check yourself:

Week 1:

  • Can I create a new Cargo project?
  • Do I understand mutable vs immutable?
  • Have I written a basic function?

Week 2:

  • Do I understand ownership?
  • Can I use borrowing correctly?
  • Have I successfully used Vec and String?

Week 4:

  • Can I handle errors with Result?
  • Do I understand traits?
  • Have I written async code?

Week 8:

  • Can I build a REST API?
  • Do I understand lifetimes?
  • Have I shipped a Rust project?

Bad goal: “Learn Rust”
Good goal: “Build a REST API that handles user authentication by end of month”

Bad goal: “Understand ownership”
Good goal: “Complete section 05 and build a CLI tool that manipulates strings without compiler errors”

Learning Rust is hard! Celebrate progress:

  • First successful compile
  • First program without compiler errors
  • Understanding ownership
  • First async program
  • First production code
  • Helping another beginner

Skipping Section 05 (Ownership) → You’ll be confused forever. Don’t skip it!

Rushing through examples → Type them out, don’t just read

Comparing to JavaScript too much → Rust is different. Embrace it!

Fighting the compiler → It’s helping you. Listen to it!

Learning in isolation → Join the community, ask questions

Giving up after Day 3 → Week 1 is the hardest. Push through!

Trying to memorize everything → Focus on understanding, reference docs for details


  1. Build a real project - Not a tutorial, something you’ll use
  2. Contribute to open source - Find a Rust project
  3. Read advanced resources - Rust for Rustaceans
  4. Keep practicing - Skills decay without use
  5. Teach others - Best way to solidify knowledge

Rust evolves. Stay updated:


Good question template:

I'm trying to [specific goal].
I expected [what you thought would happen].
Instead, [what actually happened].
Here's my code: [minimal example]
Error message: [full error]
I've tried: [what you've attempted]

You now know how to navigate this guide effectively. Choose your strategy and let’s begin!

  1. You know how to use this guide
  2. Next: Prerequisites - Verify you’re ready
  3. Then: Section 01 - Start coding!