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.
Navigation Strategies
Section titled “Navigation Strategies”Strategy 1: Sequential (Recommended for Most)
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 → ... → 30Pros:
- 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
Strategy 2: Fast Track (Essentials Only)
Section titled “Strategy 2: Fast Track (Essentials Only)”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 projectFlow:
- Read sections 00-01 (basics)
- Jump to section 30 (projects)
- Pick a project (REST API, CLI tool, etc.)
- Try to build it
- When you don’t understand something, read that section
- 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
Strategy 4: Domain-Specific
Section titled “Strategy 4: Domain-Specific”Best for: Those with specific goals (web dev, CLI, etc.)
For Web API Developers
Section titled “For Web API Developers”00 → 01 → 02 → 05 → 06 → 08 → 11 → 12 → 15 → 16 → 17 → 27 → 28 ↑ ↑ └─→ Database Basics Ownership Security & ProductionFor CLI Tool Developers
Section titled “For CLI Tool Developers”00 → 01 → 02 → 05 → 06 → 07 → 08 → 12 → 13 → 18 → 24 Basics Own. Data Collections CLI Testing ToolingFor Systems Programmers
Section titled “For Systems Programmers”00 → 01 → 02 → 05 → 10 → 20 → 21 → 26 Basics Own. Smart Unsafe Perf Systems Ptr.For WebAssembly Developers
Section titled “For WebAssembly Developers”00 → 01 → 02 → 05 → 06 → 12 → 15 → 19 Basics Own. Data Mods Serde WASMHow Each Section Is Organized
Section titled “How Each Section Is Organized”Section Structure
Section titled “Section Structure”Every section follows this pattern:
XX-section-name/├── README.md # Section overview, navigation├── topic-1.md # Individual topics├── topic-2.md└── ...Topic File Structure
Section titled “Topic File Structure”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.)
- Quick Overview - 2-3 sentence summary
- TypeScript/JavaScript Example - Code you know
- Rust Equivalent - The Rust way
- Detailed Explanation - How and why
- Key Differences - Important changes from TS/JS
- Common Pitfalls - What TS/JS devs get wrong
- Best Practices - Idiomatic Rust
- Real-World Example - Production code
- Further Reading - Additional resources
- Exercises - Practice problems
How to Approach Each Topic
Section titled “How to Approach Each Topic”Step 1: Read the Overview
Section titled “Step 1: Read the Overview”Understand what you’re about to learn and why it matters.
Step 2: Study the TypeScript Example
Section titled “Step 2: Study the TypeScript Example”This should be familiar. If it’s not, review TypeScript first.
Step 3: Compare to Rust
Section titled “Step 3: Compare to Rust”Look for similarities and differences. Don’t just read the Rust code - compare it line by line to the TypeScript.
Step 4: Read the Explanation
Section titled “Step 4: Read the Explanation”Understand not just “how” but “why” Rust does it this way.
Step 5: Note the Pitfalls
Section titled “Step 5: Note the Pitfalls”These are real mistakes TS/JS developers make. Avoid them!
Step 6: Try It Yourself
Section titled “Step 6: Try It Yourself”# Create a playgroundcargo new try_thiscd try_this
# Edit src/main.rs# Try the examples yourself!cargo runStep 7: Do the Exercises
Section titled “Step 7: Do the Exercises”If provided, complete the exercises. They reinforce learning.
Time Management
Section titled “Time Management”Daily Learning (30-60 minutes)
Section titled “Daily Learning (30-60 minutes)”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 workProgress: Complete guide in 2-3 months
Weekend Warrior (5-10 hours/week)
Section titled “Weekend Warrior (5-10 hours/week)”Best for: Those with weekday commitments
Saturday: 3-4 hours learningSunday: 2-3 hours practicingWeekdays: Quick reviews (15 min/day)Progress: Complete guide in 1.5-2 months
Intensive (20+ hours/week)
Section titled “Intensive (20+ hours/week)”Best for: Bootcamp style, career transition
Morning: 2-3 hours reading/learningAfternoon: 2-3 hours practicingEvening: 1-2 hours review/projectsProgress: Complete guide in 3-4 weeks
Reading Tips
Section titled “Reading Tips”Active Reading
Section titled “Active Reading”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
Taking Notes
Section titled “Taking Notes”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; // immutablelet mut y = 5; // mutable
## Gotcha
Forgot `mut` and spent 10 minutes debugging whyassignment failed. Compiler error was helpful though!
## Try Tomorrow
Practice with loops and mutable countersWhen You’re Stuck
Section titled “When You’re Stuck”Follow this process:
- Read the error message - Rust errors are helpful!
- Check the relevant section - Find the topic
- Try the Rust Playground - Isolate the problem
- Ask for help - Discord, Reddit, Stack Overflow
- Take a break - Sometimes you just need to sleep on it
Bookmark These
Section titled “Bookmark These”Keep these sections handy for quick reference:
Essential References
Section titled “Essential References”- 05 - Ownership - You’ll refer back constantly
- 07 - Collections - String and Vec APIs
- 08 - Error Handling - Result and Option
- 09 - Traits - Common trait patterns
Quick Lookups
Section titled “Quick Lookups”- 02 - Basics - Type conversion, operators
- 12 - Modules - Import syntax
- 24 - Tooling - Cargo commands
Study Aids
Section titled “Study Aids”Cheat Sheets (Create Your Own!)
Section titled “Cheat Sheets (Create Your Own!)”TypeScript → Rust Quick Reference:
// TypeScriptconst x = 5;let y = [1, 2, 3];async function f() { ... }interface User { name: string }// Rustlet x = 5;let mut y = vec![1, 2, 3];async fn f() { ... }struct User { name: String }Flashcards
Section titled “Flashcards”Use Anki, Quizlet, or paper cards for:
- Syntax conversions
- Ownership rules
- Common patterns
- Error types
Practice Projects
Section titled “Practice Projects”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!
Learning with Others
Section titled “Learning with Others”Study Groups
Section titled “Study Groups”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
Code Review
Section titled “Code Review”Share your code:
- Reddit r/rust (helpful community!)
- Discord #beginners channel
- GitHub discussions
- Stack Overflow
Track Your Progress
Section titled “Track Your Progress”Section Checklist
Section titled “Section Checklist”Keep track of what you’ve completed:
[ ] 00 - Introduction[ ] 01 - Getting Started[ ] 02 - Basics...[ ] 30 - ProjectsSkill Assessment
Section titled “Skill Assessment”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?
Goal Setting
Section titled “Goal Setting”Set Clear Milestones
Section titled “Set Clear Milestones”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”
Celebrate Wins
Section titled “Celebrate Wins”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
What NOT to Do
Section titled “What NOT to Do”Common Mistakes
Section titled “Common Mistakes”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
After Completing This Guide
Section titled “After Completing This Guide”What’s Next?
Section titled “What’s Next?”- Build a real project - Not a tutorial, something you’ll use
- Contribute to open source - Find a Rust project
- Read advanced resources - Rust for Rustaceans
- Keep practicing - Skills decay without use
- Teach others - Best way to solidify knowledge
Staying Current
Section titled “Staying Current”Rust evolves. Stay updated:
Getting Help
Section titled “Getting Help”When You’re Stuck
Section titled “When You’re Stuck”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]Where to Ask
Section titled “Where to Ask”- Beginners: Discord #beginners
- Code review: r/rust
- Specific errors: Stack Overflow
- General discussion: Rust Users Forum
You’re Ready!
Section titled “You’re Ready!”You now know how to navigate this guide effectively. Choose your strategy and let’s begin!
Your Next Steps
Section titled “Your Next Steps”- You know how to use this guide
- Next: Prerequisites - Verify you’re ready
- Then: Section 01 - Start coding!