Rust Learning Resources: Beginner to Expert
This document provides a curated list of reading materials and resources for learning Rust at all levels. Resources are organized by skill level and topic to help you find the right materials for your current learning phase.
Beginner Level Resources
Official Documentation
- The Rust Book - The primary learning resource for Rust beginners
- Rust by Example - Learn Rust through annotated examples
- Rustlings - Small exercises to get you used to reading and writing Rust code
Interactive Learning
- Exercism Rust Track - Coding exercises with mentorship
- LeetCode - Practice algorithmic problems in Rust
- Rust Playground - Experiment with Rust code in the browser
Video Courses
- Rust Crash Course by Traversy Media
- Rust for JavaScript Developers - Great for JS devs transitioning to Rust
- Intro to Rust by Tensor Programming
Books for Beginners
- “The Rust Programming Language” by Steve Klabnik and Carol Nichols - Official book
- “Programming Rust: Fast, Safe Systems Development” by Jim Blandy, Jason Orendorff, and Leonora Tindall
- “Rust in Action” by Tim McNamara
- “Hands-on Rust” by Herbert Wolverson - Game development focused
Intermediate Level Resources
Official Documentation
- Cargo Book - All about using Cargo effectively
- Rust API Guidelines - Best practices for API design
- Rust Design Patterns - Common patterns and idioms
Topic-Specific Learning
- Command Line Applications in Rust - Guide for CLI apps
- The Async Book - Asynchronous programming
- Cookin’ with Rust - Practical examples for common tasks
- Error Handling in Rust - Comprehensive guide by BurntSushi
Intermediate Books
- “Rust for Rustaceans” by Jon Gjengset - Intermediate level Rust
- “Zero To Production In Rust” by Luca Palmieri - Building a web application
- “Black Hat Rust” by Sylvain Kerkour - Security-focused Rust
Videos & Talks
- Crust of Rust by Jon Gjengset
- RustConf talks - Annual conference presentations
- Rust at Speed - Performance-focused overview
Advanced Level Resources
Official Documentation
- The Rustonomicon - The dark arts of unsafe Rust
- Rust Reference - Technical reference for the language
- Rust Unstable Book - Unstable features
Advanced Topics
- Pin and Suffering - Deep dive into Pin
- Rust Atomics and Locks - Low-level concurrency by Mara Bos
- Understanding Rust Futures by Going Way Too Deep
- SIMD in Rust - Vectorization and SIMD optimization
Systems Programming
- Writing an OS in Rust - Philipp Oppermann’s blog
- Embedded Rust Book - Embedded systems programming
- rustc Dev Guide - Compiler internals
- inside.rust-lang.org - Rust team’s internal blog
Advanced Books
- “Rust Atomics and Locks” by Mara Bos
- “Rust for Rustaceans: Idiomatic Programming for Experienced Developers” by Jon Gjengset
- “Hands-On Concurrency with Rust” by Brian L. Troutwine
Expert Level Resources
Language Deep Dives
- MIR in Rustc - Mid-level IR in the compiler
- Unsafe Code Guidelines - Expert-level unsafe Rust
- Polonius - The next-gen borrow checker
- Chalk - Rust’s trait system reimagined
Performance & Optimization
- Compile-time Evaluation - Compile-time execution
- LTO, PGO, and other Optimizations
- Optimizing Rust - Advanced optimization guide
Specialty Topics
- WebAssembly with Rust - Rust and WASM
- Cross-compiling Rust
- Using Custom Allocators
Source Code Study
Studying well-architected Rust codebases:
- Rust standard library
- Tokio - Async runtime
- Serde - Serialization framework
- Bevy - Game engine
- ripgrep - Fast search tool
Community Resources
- Reddit /r/rust
- Rust users forum
- Rust Discord
- This Week in Rust - Weekly newsletter
- URLO (Users) & IRLO (Internals) - Official forums
- Rust Analyzer Blog - IDE implementation insights
Interactive Learning
- Rust Quiz - Test your Rust knowledge
- Rustlings Advanced - Advanced exercises
- Advent of Code - Annual programming puzzles
Specialized Areas
Game Development
Web Development
Embedded Systems
Cryptography
- RustCrypto - Collection of cryptographic algorithms
- Dalek Cryptography - Cryptographic library implementations
Remember that the best way to learn is by doing. Combine these resources with practical projects to solidify your understanding.