Skip to content

Latest commit

 

History

History
146 lines (111 loc) · 8.1 KB

File metadata and controls

146 lines (111 loc) · 8.1 KB

Rust for Python Programmers: Complete Training Guide

A comprehensive guide to learning Rust for developers with Python experience. This guide covers everything from basic syntax to advanced patterns, focusing on the conceptual shifts required when moving from a dynamically-typed, garbage-collected language to a statically-typed systems language with compile-time memory safety.

How to Use This Book

Self-study format: Work through Part I (ch 1–6) first — these map closely to Python concepts you already know. Part II (ch 7–12) introduces Rust-specific ideas like ownership and traits. Part III (ch 13–16) covers advanced topics and migration.

Pacing recommendations:

Chapters Topic Suggested Time Checkpoint
1–4 Setup, types, control flow 1 day You can write a CLI temperature converter in Rust
5–6 Data structures, enums, pattern matching 1–2 days You can define an enum with data and match exhaustively on it
7 Ownership and borrowing 1–2 days You can explain why let s2 = s1 invalidates s1
8–9 Modules, error handling 1 day You can create a multi-file project that propagates errors with ?
10–12 Traits, generics, closures, iterators 1–2 days You can translate a list comprehension to an iterator chain
13 Concurrency 1 day You can write a thread-safe counter with Arc<Mutex<T>>
14 Unsafe, PyO3, testing 1 day You can call a Rust function from Python via PyO3
15–16 Migration, best practices At your own pace Reference material — consult as you write real code
17 Capstone project 2–3 days Build a complete CLI app tying everything together

How to use the exercises:

  • Chapters include hands-on exercises in collapsible <details> blocks with solutions
  • Always try the exercise before expanding the solution. Struggling with the borrow checker is part of learning — the compiler's error messages are your teacher
  • If you're stuck for more than 15 minutes, expand the solution, study it, then close it and try again from scratch
  • The Rust Playground lets you run code without a local install

Difficulty indicators:

  • 🟢 Beginner — Direct translation from Python concepts
  • 🟡 Intermediate — Requires understanding ownership or traits
  • 🔴 Advanced — Lifetimes, async internals, or unsafe code

When you hit a wall:

  • Read the compiler error message carefully — Rust's errors are exceptionally helpful
  • Re-read the relevant section; concepts like ownership (ch7) often click on the second pass
  • The Rust standard library docs are excellent — search for any type or method
  • For deeper async patterns, see the companion Async Rust Training

Table of Contents

Part I — Foundations

1. Introduction and Motivation 🟢

2. Getting Started 🟢

3. Built-in Types and Variables 🟢

4. Control Flow 🟢

5. Data Structures and Collections 🟢

6. Enums and Pattern Matching 🟡

Part II — Core Concepts

7. Ownership and Borrowing 🟡

8. Crates and Modules 🟢

9. Error Handling 🟡

10. Traits and Generics 🟡

11. From and Into Traits 🟡

12. Closures and Iterators 🟡

Part III — Advanced Topics & Migration

13. Concurrency 🔴

14. Unsafe Rust, FFI, and Testing 🔴

15. Migration Patterns 🟡

16. Best Practices 🟡


Part IV — Capstone

17. Capstone Project: CLI Task Manager 🔴