Rust Essentials
Class Duration
21 hours of live training delivered over 3-5 days to accommodate your scheduling needs.
Student Prerequisites
- Professional software development experience in any modern language
- Comfort with the command line
- No prior Rust experience required
Target Audience
Software engineers adding Rust to their toolkit for systems programming, performance-critical services, embedded work, or memory-safe rewrites of existing C/C++ code. Equally suitable for developers using AI coding assistants who want to understand the Rust the compiler is asking them to write — not just accept what an LLM suggests.
Description
The Rust Essentials course is a modern introduction to Rust on the 2024 edition (Rust 1.85 introduced the edition; 1.95+ recommended for the current toolchain). It covers the core mental model — ownership, borrowing, lifetimes, expressive types, pattern matching, and idiomatic error handling — and pairs it with a realistic working setup: rust-analyzer, modern editor integration, and AI assistants (GitHub Copilot, Cursor, Claude Code) used as a productivity multiplier rather than a black box. Participants leave able to read and write idiomatic Rust, navigate the borrow checker confidently, and use AI tools effectively while letting the Rust compiler catch what AI gets wrong.
Learning Outcomes
- Read and write idiomatic Rust on the 2024 edition with confidence in ownership, borrowing, and lifetimes.
- Build small CLI applications and library crates with Cargo, including dependencies, tests, and documentation.
- Model data with structs, enums (including
OptionandResult), tuples, and vectors, choosing the right shape for the problem. - Apply pattern matching,
if let,while let, and 2024-editionlet-chains to write expressive control flow. - Use AI coding assistants productively for Rust — generating boilerplate, navigating crates, drafting tests — while using the compiler and clippy as the source of truth.
- Diagnose common borrow-checker errors and fix them without resorting to
Rc/RefCellorunsafereflexively.
Training Materials
All students receive comprehensive courseware covering all topics in the course. Courseware is distributed via GitHub in the form of documentation and extensive code samples. Students practice the topics covered through challenging hands-on lab exercises and a small CLI capstone project.
Software Requirements
A free GitHub account, the latest stable Rust toolchain installed via rustup (Rust 1.95+ on the 2024 edition), Visual Studio Code or another supported editor with the rust-analyzer extension, and an AI coding assistant of choice (GitHub Copilot, Cursor, or Claude Code). A cloud-based environment can be provided if local installation is restricted.
Training Topics
Introduction to Modern Rust
- What Rust is and where it fits today
- Rust 2024 edition: what changed and why it matters
- The borrow checker as a productivity tool, not an obstacle
- The Rust ecosystem: crates.io, lib.rs, and the Rust community
- The Rust Playground for quick experimentation
Toolchain and Editor Setup
- Installing Rust with
rustupand managing toolchains cargo,rustc,rustfmt, andclippy- VS Code, JetBrains RustRover, and Zed with rust-analyzer
- Debugging Rust with CodeLLDB
- Working with AI assistants in Rust: Copilot, Cursor, and Claude Code
Hello, Cargo
- Creating a new project with
cargo new - The
mainfunction andprintln! cargo run,cargo build,cargo build --release- Adding dependencies and managing
Cargo.toml - Workspaces at a glance and
cargo publish --workspace
Scalar Types and Variables
- Integers, floats, booleans, characters
- Constants and statics
- Immutability by default and
mut - Variable shadowing and scoping
- Numeric overflow behavior in debug vs. release
Control Flow
if,else, and expressions vs. statementsloopwithbreakand labeled loopswhileandforloops- 2024-edition
let-chains inifandwhile - Block expressions returning values
Functions and Closures
- Defining and calling functions
- Parameter and return types
- Closures and their capture modes
- Function pointers vs. closures
- Where AI assistants help and where they hallucinate signatures
Modules and Crates
- Module hierarchy with
modanduse - Using the standard library
- Adding third-party crates from crates.io
- Re-exports and visibility
Built-In Macros
print!,println!,eprintln!, andformat!vec!,dbg!, andassert!include_str!andinclude_bytes!cfg!,env!, andpanic!
Memory Management and Ownership
- Why neither manual memory management nor garbage collection is ideal
- Ownership, moves, and copies
- Borrowing:
&Tand&mut T - Lifetimes and the borrow checker
- Common ownership patterns and how to talk to AI tools about them
Strings and String Slices
Stringvs.&str- UTF-8 handling and Unicode boundaries
- Parsing, trimming, splitting, and joining
- String formatting and interpolation
Tuples, Enums, and Structs
- Tuples and tuple structs for lightweight data
- Enums with associated data and variant methods
Option<T>andResult<T, E>as the cornerstone of Rust error handling- Structs, methods, associated functions, and constructors
- The newtype pattern
Vectors and Collections
Vec<T>: creation, indexing, slicing, iteration- Iterators:
iter,iter_mut,into_iter HashMapandHashSetat a glance- Ownership and borrowing rules with collections
Pattern Matching
matchexhaustiveness and the borrow checkerif letandwhile let- Destructuring structs, tuples, and enums
- Pattern guards and bindings
- Refutable vs. irrefutable patterns
Idiomatic Error Handling
Result<T, E>and the?operator- Defining custom error enums
- Choosing between
anyhowandthiserror - Avoiding
unwrapandexpectin library code
AI-Assisted Rust Development
- Using rust-analyzer + AI assistants as a tight feedback loop
- Letting the compiler and clippy be the source of truth
- Prompts that work well for Rust ownership and lifetime questions
- Reviewing AI-generated
unsafeandunwrapcalls before accepting them - A realistic CLI feature built end-to-end with AI assistance and the compiler
Capstone
- Build a small command-line tool that reads structured input, processes it with iterators, and reports results — written with AI assistance and validated by the compiler, clippy, and tests
- Course wrap-up and recommended next courses