Example Curriculum
Introduction
Available in
days
days
after you enroll
Rust Fundamentals
Available in
days
days
after you enroll
- Intro (2:26)
- Data Types (5:01)
- Variables (6:35)
- Functions (8:12)
- println! (3:04)
- Control Flow with If (8:38)
- Repetition (6:30)
- Setup Rust: Toolchain (4:49)
- Setup Rust: rust-analyzer (4:18)
- Setup Rust: clippy (2:31)
- Setup Rust: error-lens (1:27)
- Comments (3:36)
- Activity: Functions (7:08)
- Numeric Types & Basic Arithmetic (3:36)
- Activity: Basic Math (5:27)
- Let's Have Some Fun (+ Free Resources)
Making Decisions with Rust
Available in
days
days
after you enroll
Repetition
Available in
days
days
after you enroll
Working With Data
Available in
days
days
after you enroll
Rust's Memory Model
Available in
days
days
after you enroll
Data Collections
Available in
days
days
after you enroll
Expanding Knowledge
Available in
days
days
after you enroll
- Deriving Functionality (6:08)
- Type Annotations (4:07)
- Enums Revisited (3:59)
- Demo: Advanced Match (7:57)
- Activity: Advanced match (10:42)
- The Option Type (6:26)
- Demo: Option (4:26)
- Activity: Option (5:01)
- Generating Documentation (2:24)
- Standard Library API docs (3:33)
- Activity: Standard Library API docs (3:46)
Fallible Functions
Available in
days
days
after you enroll
Data Collection: HashMap
Available in
days
days
after you enroll
Easier Data Management
Available in
days
days
after you enroll
Managing Code
Available in
days
days
after you enroll
Milestone Project: Billing Application
Available in
days
days
after you enroll
- Gathering User Input (14:21)
- Activity: Gathering User Input (22:47)
- Mini Project: Introduction (2:44)
- Retrieve User Input (3:16)
- Creating The Main Menu Loop (7:14)
- Required Data Structures (4:10)
- Implementation: Adding & Viewing Bills (13:00)
- Implementation: Removing Bills (6:50)
- Implementation: Editing Bills (9:15)
Shared Functionality
Available in
days
days
after you enroll
- Traits (4:54)
- Demo: Traits (4:58)
- Activity: Traits (5:58)
- Implementing The "Default" Trait (2:28)
- Generics & Functions (13:54)
- Demo: Generics & Functions (6:22)
- Activity: Generics & Functions (5:52)
- Generic Structures (10:06)
- Generic Structures & impl Blocks (7:58)
- Demo: Generics & Structures (6:38)
- Activity: Generics & Structures (10:18)
- Advanced Memory Concepts (8:50)
- Trait Objects (11:35)
- Demo: Trait Objects (7:26)
- Activity: Trait Objects (8:35)
Lifetimes
Available in
days
days
after you enroll
Improving Program Reliability
Available in
days
days
after you enroll
- Custom Error Types (8:51)
- Demo: Custom Error Types (8:53)
- Activity: Creating a Custom Error (9:01)
- const (2:20)
- New Type Pattern (5:07)
- Activity: Utilizing The New Type Pattern (8:08)
- TypeState Pattern (4:13)
- Demo: TypeState Pattern (11:48)
- Activity: TypeState Pattern (7:41)
- Demo: Match Guards & Binding (6:22)
- Activity: Match Guards & Binding (8:45)
- Arrays & Slices (7:48)
- Slice Patterns (5:53)
- Activity: Slices (5:41)
- Type Aliases (5:22)
- Exercise: Imposter Syndrome (2:55)
Type Conversions
Available in
days
days
after you enroll
Maintainable Code
Available in
days
days
after you enroll
- Effective Trait Usage (10:00)
- Demo: Abstract Network Request (12:06)
- Activity: Abstract Data Storage (17:54)
- Demo: Proxy / Delegate (10:17)
- Activity: Implement a proxy structure (8:49)
- Demo: Extension traits (3:31)
- Demo: Blanket implementations (5:39)
- Activity: Extension traits & blanket implementations (3:30)
- Test-Driven Development (TDD) (11:33)
- TDD Demo: Standalone function 1 (6:50)
- TDD Demo: Standalone function 2 (6:34)
- TDD Demo: struct methods (13:55)
- Red-Green-Refactor (5:15)
- TDD Demo: Maintainable tests 1 (8:43)
- TDD Demo: Maintainable tests 2 (9:33)
- TDD Demo: Maintainable tests 3 (12:30)
- Activity: Applying TDD (14:36)
Project: Time Tracker
Available in
days
days
after you enroll
- Project overview (0:57)
- Creating a new project (2:33)
- Project structure (3:33)
- Dependencies (1:31)
- Error configuration (10:15)
- Tracing configuration (5:27)
- Initial testing setup (9:28)
- CLI Parsing module (9:45)
- Parsing with Clap (6:06)
- Tracker module (8:02)
- Starting & stopping the tracker (11:20)
- Time records setup (11:41)
- TIme records implementation (13:55)
- Tracker behavior test (5:13)
- Tracker behavior test implementation (2:16)
- Extract tracker interface (5:40)
- Reporting setup (15:35)
- Calculating elapsed duration (5:19)
- Report formatter setup (4:19)
- Report formatter implementation (1:55)
- CLI: start command test setup (8:33)
- CLI: start & stop command implementation (10:49)
- CLI: generating reports & cleanup (11:37)
Parallel Execution
Available in
days
days
after you enroll
Shared Ownership
Available in
days
days
after you enroll
Standard Library Tour
Available in
days
days
after you enroll
- Enum Equality & Ordering (3:42)
- Struct Equality & Ordering (4:23)
- Operator Overloading (7:24)
- Iterators: Implementing Iterator for a Struct (3:31)
- Implement IntoIterator (7:58)
- Demo: Implementing IntoIterator (9:23)
- Activity: Implementing Iterator (5:45)
- Iterators: Custom Iteration Logic (8:07)
- Helpful Macros (7:48)
- Managing Integer Overflow (5:39)
Other Language Features
Available in
days
days
after you enroll
Crate Roundup
Available in
days
days
after you enroll
Resources
Available in
days
days
after you enroll
Declarative Macros
Available in
days
days
after you enroll
- Overview (6:54)
- Detail (15:39)
- Demo: impl Blocks (6:38)
- Activity: Control Flow (2:51)
- Activity: impl Blocks (2:34)
- Repetitions (8:46)
- Demo: Repetitions (3:14)
- Activity: HashMap (5:22)
- Demo: Syntax Extension (8:52)
- Activity: Syntax Extension (4:11)
- Activity: Generating Tests (6:31)
- Activity: Function Tracer (4:47)
- Demo: Checked Config (13:18)
- Demo: Recursive tt Muncher (6:40)
Benchmarking
Available in
days
days
after you enroll
Where To Go From Here?
Available in
days
days
after you enroll