Loading video player...
You assign a variable to another variable and suddenly the original stops working — the compiler says "value used here after move" and your program won't build. This chapter breaks down Rust's ownership system from the ground up: the three rules that govern every value in the language, why assignment in Rust is a physical handoff instead of a copied reference like Python and Java, how move semantics prevent double-free bugs by construction, which types get the Copy trait and skip the move entirely, what happens when you pass a value into a function and lose access to it, and the three questions experienced Rust developers ask before writing any code. Covered in this episode: 00:00 Introduction — the "value used here after move" shock 02:00 GC shared responsibility vs Rust strict accountability 02:25 The three ownership rules — one owner, one at a time, drop on scope exit 03:38 The coat check analogy — exclusivity gives Rust its power 04:20 Move semantics vs Python and Java references — assignment as handoff 05:10 String memory layout — stack pointer, length, capacity, heap buffer 05:48 Rust assignment is a move — the original variable is invalidated 06:47 Double-free prevention — why moves exist 07:27 The handcuffed briefcase mental model 08:20 The Copy trait — stack types that skip the move 09:50 Clone for explicit deep copies — making heap duplication visible 11:00 Move semantics in function calls — passing by value transfers ownership 12:50 Functions as black holes — value doesn't come back unless returned 14:30 Building ownership intuition — the three questions to ask before writing code 17:00 System design implications — ownership nudges decoupled architecture Part of the "Rust for Backend Engineers" series by Learning Podcasts — teaching Rust through Python and Java analogies for senior backend engineers who want systems-level performance without sacrificing safety. Full series (18 chapters): 1. Why Backend Engineers Switch to Rust: https://youtu.be/pnnOLjD_cN0 2. Getting Started with Cargo and the Toolchain: https://youtu.be/WJCM1m-C4EY 3. Ownership and Move Semantics (this video): https://youtu.be/yqtLkbYK0Rw 4. Borrowing and the Borrow Checker: https://youtu.be/cXm5NKg8bGk 5. Structs and Methods 6. Enums and Pattern Matching 7. Error Handling Without Exceptions 8. Traits and Generics 9. Lifetimes 10. Collections and Strings 11. Iterators and Closures 12. Modules, Crates, and Cargo 13. Smart Pointers and Interior Mutability 14. Fearless Concurrency 15. Async Rust and Tokio 16. Building Web Services 17. Macros, Unsafe, and FFI 18. Testing, Tooling, and Claude Code Workflows Subscribe to catch every chapter. 🌍 Subtitles: 🇺🇸🇬🇧 English, 🇪🇸 Spanish, 🇫🇷 French, 🇩🇪 German, 🇧🇷🇵🇹 Portuguese, 🇨🇳 Chinese, 🇯🇵 Japanese, 🇰🇷 Korean, 🇮🇹 Italian, 🇷🇺 Russian, 🇹🇷 Turkish, 🇮🇩 Indonesian, 🇵🇱 Polish, 🇮🇳 Hindi AI Disclosure: Audio and slides produced using a proprietary multi-stage AI pipeline from expert-curated source material. Video compiled and synchronized by LearningPodcasts.io.