Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.


Easy Rust - Bite-Sized Rust Tutorials

via YouTube


This course aims to teach learners how to program in Rust through bite-sized tutorials. By the end of the course, students will be able to write Rust code, understand Rust syntax, work with different data types, control flow, collections, iterators, traits, lifetimes, and concurrency concepts. The course uses a hands-on approach with practical examples and exercises to reinforce learning. It is suitable for beginners who have little to no experience with Rust or programming in general and are looking to build a strong foundation in Rust programming.


Easy Rust 001: Introduction and how to use the Rust Playground.
Easy Rust 002: Writing comments in your code.
Easy Rust 003: Some primitive types.
Easy Rust 004: Type inference and floats.
Easy Rust 005: Hello World!.
Easy Rust 006: Declaring variables and code blocks.
Easy Rust 007: Debug printing.
Easy Rust 008: Mutability.
Easy Rust 009: Shadowing.
Easy Rust 010: The stack and the heap.
Easy Rust 011: More advanced printing.
Easy Rust 012: Even more advanced printing.
Easy Rust 013: String and &str.
Easy Rust 014: const and static.
Easy Rust 015: More on references.
Easy Rust 016: Mutable references.
Easy Rust 017: Giving references to functions.
Easy Rust 018: Giving mutable references to functions.
Easy Rust 019: Copy types.
Easy Rust 020: Uninitialized variables.
Easy Rust 021: Arrays.
Easy Rust 022: Vecs.
Easy Rust 023: Tuples.
Easy Rust 024: Control flow 1.
Easy Rust 025: Control flow part 2.
Easy Rust 026: Structs.
Easy Rust 027: Structs part 2.
Easy Rust 028: Enums part 1.
Easy Rust 029: Enums part 2.
Easy Rust 030: Enums part 3.
Easy Rust 031: Enums part 4.
Easy Rust 032: Loops part 1.
Easy Rust 033: Loops part 2.
Easy Rust 034: Loops part 3.
Easy Rust 035: Implementing structs and enums 1.
Easy Rust 036: Implementing structs and enums 2.
Easy Rust 037: More about destructuring.
Easy Rust 038: Generics part 1.
Easy Rust 039: Generics part 2.
Easy Rust 040: Generics part 3.
Easy Rust 041: Generics part 4.
Easy Rust 042: Option part 1.
Easy Rust 043: Option part 2.
Easy Rust 044: Option part 3.
Easy Rust 045: Result part 1.
Easy Rust 046: Result part 2.
Easy Rust 047: Result part 3 (plus TURBOFISH).
Easy Rust 048: if let part 1.
Easy Rust 049: if let part 2.
Easy Rust 050: Using if let and while let together.
Easy Rust 051: Collection types (HashMap).
Easy Rust 052: Collection types (BTreeMap).
Easy Rust 053: Collection types - some more HashMap and the entry method.
Easy Rust 054: HashMaps and the .entry().or_insert_with() method.
Easy Rust 055: Collection types - last video on entry method for HashMap.
Easy Rust 056: Collection types (HashSet and BTreeSet).
Easy Rust 057: Collection types (BinaryHeap).
Easy Rust 058: Collection types (VecDeque).
Easy Rust 059: Collection types - VecDeque example.
Easy Rust 060: The question mark operator (AKA try).
Easy Rust 061: Using the panic! macro.
Easy Rust 062: assert!, assert_eq!, and assert_ne! macros.
Easy Rust 063: Introduction to traits.
Easy Rust 064: Traits part 2 - reading and understanding trait implementation.
Easy Rust 065: Traits part 3 - implementing Display for the first time.
Easy Rust 066: Traits part 4 - writing a bit longer trait.
Easy Rust 067: Traits part 5 - making traits useful with other traits.
Easy Rust 068: Traits part 6 - using trait bounds.
Easy Rust 069: Traits part 7 - understanding the From trait.
Easy Rust 070: Traits part 8 - implementing the From trait.
Easy Rust 071: Type aliases and new types.
Easy Rust 072: Traits part 9 - Implementing the From trait again.
Easy Rust 073: Traits part 10 - AsRef.
Easy Rust 074: Chaining methods together.
Easy Rust 075: Quick intro to closures.
Easy Rust 076: Iterators part 1.
Easy Rust 077: Iterators part 2 - associated types.
Easy Rust 078: Iterators part 3 - implementing an iterator.
Easy Rust 079: Closures and methods with or_else.
Easy Rust 080: Enumerate and how iterators are made.
Easy Rust 081: collect and zip methods.
Easy Rust 082: char_indices and closures without arguments.
Easy Rust 083: filter, retain, and Fn, FnMut and FnOnce in closures.
Easy Rust 084: filter_map.
Easy Rust 085: filter map plus ok, ok_or and ok_or_else.
Easy Rust 086: The and_then method.
Easy Rust 087: the and method.
Easy Rust 088: The any method.
Easy Rust 089: The all method.
Easy Rust 090: find, position, MAX and MIN.
Easy Rust 091: cycle and open ended iterators.
Easy Rust 092: The fold method.
Easy Rust 093: take while, skip while, cloned, by ref, and sum.
Easy Rust 094: chunks, windows, match_indices.
Easy Rust 095: peekable iterators and the peek method.
Easy Rust 096: Final example of iterators and quick look at clippy.
Easy Rust 097: The dbg! macro.
Easy Rust 098: The inspect method.
Easy Rust 099: String, &str and a brief introduction to lifetimes.
Easy Rust 100: Introduction to lifetimes and the 'static lifetime.
Easy Rust 101: Named lifetimes.
Easy Rust 102: Rust's three rules about lifetimes.
Easy Rust 103: Anonymous lifetimes.
Easy Rust 104: Interior mutability and why you would want it.
Easy Rust 105: Interior mutability with Cell.
Easy Rust 106: Dynamic interior mutability with RefCell.
Easy Rust 107: Cell and RefCell again.
Easy Rust 108: Mutex.
Easy Rust 109: Mutex part 2.
Easy Rust 110: RwLock.
Easy Rust 111: Cow part 1.
Easy Rust 112: Cow part 2.
Easy Rust 113: Type aliases and the as keyword.
Easy Rust 114: The todo! macro.
Easy Rust 115: Introduction to Rc (reference counter).
Easy Rust 116: Using a reference counter.
Easy Rust 117: Some functions for reference counters.
Easy Rust 118: RefCell inside of an Rc.
Easy Rust 119: Multiple threads (concurrency) - part 1.
Easy Rust 120: Multiple threads (concurrency) - part 2.
Easy Rust 121: Multiple threads (concurrency) - part 3.
Easy Rust 122: Introduction to Arc, Send and Sync.
Easy Rust 123: Using Arc and Mutex to modify concurrent threads safely.
Easy Rust 124: Fn, FnMut, FnOnce traits for closures.
Easy Rust 125: Putting closures into functions.
Easy Rust 126: Longer example of closures in functions.
Easy Rust 127: impl trait to return closures from functions.
Easy Rust 128: One more example of impl trait to return closures.
Easy Rust 129: Introduction to Box.
Easy Rust 130: Boxes used for indirection.
Easy Rust 131: Boxes used as trait objects.
Easy Rust 132: Boxes in dynamic dispatch vs impl trait.
Easy Rust 133: Channels part 1.
Easy Rust 134: Channels part 2.
Easy Rust 135: Channels part 3.
Easy Rust 136: Attributes part 1.
Easy Rust 137: Attributes part 2.
Easy Rust 138: Implementing Default.
Easy Rust 139: The builder pattern.
Easy Rust 140: The builder pattern part 2.
Easy Rust 141: Dereferencing and the dot operator.
Easy Rust 142: Intro to the Deref trait.
Easy Rust 143: Implementing Deref and DerefMut.
Easy Rust 144: Implementing Deref weirdly.
Easy Rust 145: modules part 1.
Easy Rust 146: modules part 2.
Easy Rust 147: modules part 3.
Easy Rust 148: Introduction to testing.
Easy Rust 149: Testing and mini calculator project part 1.
Easy Rust 150: Testing and mini calculator project part 2.
Easy Rust 151: Testing and mini calculator project part 3.
Easy Rust 152: Testing and mini calculator project part 4.
Easy Rust 153: Testing and mini calculator project part 5.
Easy Rust 154: Testing and mini calculator project part 6.
Easy Rust 155: Using external crates.
Easy Rust 156: Using the rand crate.
Easy Rust 157: Looking at some external crates.
Easy Rust 158: Tour of the standard library: array and char.
Easy Rust 159: Tour of the standard library: char and integers.
Easy Rust 160: Tour of the standard library: implementing Add.
Easy Rust 161: Tour of the standard library: methods for floats.
Easy Rust 162: Tour of the standard library: bool.
Easy Rust 163: Tour of the standard library: Vec.
Easy Rust 164: Tour of the standard library: String.
Easy Rust 165: Tour of the standard library: OsString, CString, OsStr, CStr, and unsafe.
Easy Rust 166: Tour of the standard library: std::mem.
Easy Rust 167: Tour of the standard library: the unsafe function transmute.
Easy Rust 168: Tour of the standard library: no implicit prelude and no std.
Easy Rust 169: Function pointers.
Easy Rust 170: Function pointers part 2.
Easy Rust 171: Tour of the standard library: std::time.
Easy Rust 172: Tour of the standard library: one neat trick plus putting threads to sleep.
Easy Rust 173: Tour of the standard library: some helpful macros.
Easy Rust 174: Intro to macros.
Easy Rust 175: More on macros.
Easy Rust 176: Macros part 3.
Easy Rust 177: Macros part 4.
Easy Rust 178: Macros part 5.
Easy Rust 179: Cargo.
Easy Rust 180: Taking input from the user.
Easy Rust 181: Working with user args.
Easy Rust 182: Working with environmental variables.
Easy Rust 183: Brushing up on Result and the ? operator.
Easy Rust 184: Opening and writing to a file.
Easy Rust 185: Reading the file we just opened.
Easy Rust 186: Appending a file with OpenOptions, and goodbye for now.

Taught by



Start your review of Easy Rust - Bite-Sized Rust Tutorials

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.