Learn to Code with Rust
Master the Rust programming language from A-Z. Includes projects, quizzes, and more. Beginners welcome!
Lo que serás capaz de hacer
Learn to Code with Rust is a comprehensive introduction to programming in Rust, one of the fastest-growing programming languages in the world. Rust powers codebases in companies and products like Amazon, Microsoft, Firefox, Discord, and more. It is used in a variety of disciplines including web development, CLI programs, build tools, and databases. Over more than 60 hours of video content , we'll tackle the language from A to Z, covering everything you need to know about Rust to be an effective developer. The course is jam-packed with: 60+ hours of video , with new content added frequently Multiple-choice quizzes Coding challenges and projects Section reviews Learn to Code with Rust is designed from the ground up to take you from novice to professional. Complete beginners are welcome; no prior experience is needed ! Over 400+ videos , we'll work our way from language fundamentals to advanced features. Topics covered include... Setup & Installation Variables Data types Functions and Methods Control Flow Ownership and References Slices Structs Enums Generics Option and Result Enums Vectors Project Structure Strings Hash Haps Error Handling Traits Lifetimes Closures Iterators Testing Randomness ...and more! Throughout the entire journey, I'll be coding alongside you step by step in the code editor. You'll also be able to test your knowledge through numerous coding challenges, quizzes, and written assignments . Rust is known to be a challenging language to learn. For many concepts, I had to browse through different books, articles, and videos to understand what was happening. My hope here is to demystify the concepts and make it easier for new students to learn the language. Thanks for checking out the course!
- Master programming in Rust, a fast, safe, and powerful language used in web development, command-line tools, blockchain, and many other domains
- Conquer Rust's ownership model, use references to reduce memory, and learn how the compiler prevents common memory problems
- Progress from core language fundamentals to advanced features like traits, lifetimes, and closures
- Understand Rust's core building blocks including structs, enums, hashmaps, and more
- Learn how to structure larger Rust projects using crates, modules, external dependencies, and more
- Explore a dynamic curriculum with videos, quizzes, written assignments, coding challenges, and more
Temario
UNIDAD 1 - Getting Started · 27 leccionesUNIDAD 1 - Getting Started
UNIDAD 1 - Getting Started
- Intro to Rust
- The Rust Compiler
- [macOS] Intro to Terminal
- [macOS] Installing XCode Command Line Tools
- [macOS] Installing Rust
- [macOS] Installing Visual Studio Code
- [macOS] Add VSCode to PATH
- [Windows] Intro to PowerShell
- [Windows] Find Out Your Windows Operating System
- [Windows] Installing Visual Studio
- [Windows] Installing Rust
- [Windows] Installing Visual Studio Code
- Updating or Uninstalling Rust with rustup
- Install Git
- Create Rust Project with Cargo
- Hello World
- Compiling and Running Rust File from the Terminal
- Formatting with rustfmt and cargo fmt
- The cargo build Command
- The cargo run Command
- The cargo check Command
- Comments
- Project
- Project Solution
- Download Course Materials
- Quiz
- Section Review
UNIDAD 2 - Variables and Mutability · 16 leccionesUNIDAD 2 - Variables and Mutability
UNIDAD 2 - Variables and Mutability
- Open Variables and Mutability Project
- Intro to Variables
- Interpolation with Curly Braces
- Positional Arguments to println!
- Underscore with Variables
- Immutable and Mutable Variables
- Rust Error Codes Index
- Variable Shadowing
- Scopes
- Constants
- Type Aliases
- Compiler Directives
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 3 - Data Types · 30 leccionesUNIDAD 3 - Data Types
UNIDAD 3 - Data Types
- Open Data Types Project
- Intro to Data Types
- Integers
- Using _ as Visual Separator for Numbers
- The usize and isize Types
- Strings and Raw Strings
- Intro to Methods
- Floating Point Types
- Formatting Floats with Format Specifier
- Casting Types with the as Keyword
- Math Operations
- Augmented Assignment Operator
- Intro to Booleans
- Boolean Inversion with !
- Equality and Inequality Operators
- And Logic with &&
- Or Logic with ||
- The Character Type
- The Array Type
- Reading and Writing Array Elements
- The Display Trait
- The Debug Trait
- The dbg! Macro
- The Tuple Type
- Ranges and Range Iteration
- Intro to Generics
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 4 - Functions · 11 leccionesUNIDAD 4 - Functions
UNIDAD 4 - Functions
- Open Functions Project
- Intro to Functions
- Parameters and Arguments
- Explicit Return Values
- Implicit Return Values
- The Unit as a Return Type
- Blocks in Functions
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 5 - Control Flow · 19 leccionesUNIDAD 5 - Control Flow
UNIDAD 5 - Control Flow
- Open Control Flow Project
- The if Statement
- The else if Statement
- The else Statement
- Assigning Result of if Statement to Variable
- The match Statement
- Underscore in a Match Arm
- The match Statement with Multiple Values and Conditionals
- The loop and break Keywords
- The continue Keyword
- While Loop
- Recursion
- Debugging in VSCode I
- Debugging in VSCode II
- Debugging in VSCode III
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 6 - Ownership · 22 leccionesUNIDAD 6 - Ownership
UNIDAD 6 - Ownership
- Open Ownership Project
- Intro to Ownership
- The Stack and Heap
- Scope and Ownership
- The Copy Trait
- The String Type
- The push_str Method on a String Type
- Moves and Ownership
- The drop Function
- The clone Method
- References and Borrowing
- The Dereference Operator
- String, &String, str, and &str
- The Copy Trait with References
- Ownership and Function Parameters
- Mutable Parameters
- Return Values I
- Return Values II
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 7 - References and Borrowing · 11 leccionesUNIDAD 7 - References and Borrowing
UNIDAD 7 - References and Borrowing
- Open Ownership Project
- Immutable and Mutable Reference Parameters
- Multiple Immutable References
- Mutable Reference Restrictions
- Ownership with Immutable and Mutable References
- Dangling References
- Ownership with Arrays and Tuples
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 8 - Slices · 14 leccionesUNIDAD 8 - Slices
UNIDAD 8 - Slices
- Open Slices Project
- Intro to Slices
- Create a String Slice from a String
- String Slices and String Literals
- String Slice Lengths
- Syntactic Shortcuts
- String Slices as Function Parameters
- Array Slices
- Deref Coercion with Array Slices
- Mutable Array Slices
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 9 - Structs · 24 leccionesUNIDAD 9 - Structs
UNIDAD 9 - Structs
- Open Structs Project
- Define a Struct
- Create a Struct Instance
- Access Struct Fields
- Overwrite Struct Fields
- Create Structs in a Function
- Struct Field Initialization Shorthand Syntax
- Struct Update Syntax
- Passing Structs into a Function
- Deriving Debug Trait for Struct
- Defining Struct Methods
- self Parameter as Mutable Struct Instance
- self Parameter as Immutable and Mutable References to Struct Instance
- Methods with Multiple Parameters
- Calling Methods from Other Methods
- Associated Functions
- Multiple impl Blocks
- Builder Pattern
- Tuple Structs
- Unit-Like Structs
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 10 - Enums · 19 leccionesUNIDAD 10 - Enums
UNIDAD 10 - Enums
- Open Enums Project
- Intro to Enums
- Enum with Associated Values I
- Enum with Associated Values II
- A Brief Discussion on Enum Memory
- Struct Variants
- Nesting Enums in Enums
- The match Keyword I
- The match Keyword II
- The match Keyword III
- Defining Methods on Enums
- The match Keyword IV - Catching Multiple Values
- The match Keyword V - match with Exact Value
- The if let Construct
- The let else Construct
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 11 - Generics · 12 leccionesUNIDAD 11 - Generics
UNIDAD 11 - Generics
- Open Generics Project
- Intro to Generics
- The Turbofish Operator
- Multiple Generics
- Generics in Structs
- Generics and impl Blocks I
- Generics and impl Blocks II
- Generics in Enums
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 12 - Option and Result Enums · 19 leccionesUNIDAD 12 - Option and Result Enums
UNIDAD 12 - Option and Result Enums
- Open Option and Result Enums Project
- The Option Enum
- Real Example of Option Enum (The get Method on an Array)
- The unwrap and expect Methods
- The match Keyword with Option Enum
- Returning an Option Enum from a Function
- Top-Level Option Variants
- The unwrap_or Method
- Building Option from Scratch
- The Result Enum
- Real Example of Result Enum (The parse Method on a string)
- Returning a Result Enum from a Function
- Result Methods
- Nuances of unwrap Method on Result
- The while let Construct
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 13 - Vectors · 12 leccionesUNIDAD 13 - Vectors
UNIDAD 13 - Vectors
- Open Vectors Project
- Create a Vector
- Adding and Removing Elements
- Reading Vector Elements
- The get Method
- Ownership with Vectors
- Writing Vector Elements
- Vector Capacity Behind the Scenes
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 14 - Project Structure · 28 leccionesUNIDAD 14 - Project Structure
UNIDAD 14 - Project Structure
- Open Warehouse Project
- Packages and Crates
- Intro to Modules
- The pub Keyword
- The Benefit of Namespaces
- Module as File
- Module as Folder
- Module Ambiguity
- Public Enums, Public Structs, and Public Fields
- Submodules
- The crate Prefix
- The use Keyword I
- The use Keyword II (Name Conflicts)
- The self Keyword
- The super Keyword
- Create Aliases with the as Keyword
- Using pub use to Export Names from Submodules
- External Crates
- The Standard Library
- The Glob Operator
- Create Library Crate
- Multiple Binary Crates
- Documentation Comments
- Bonus - Walking through Sample Module Structure
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 15 - Strings · 10 leccionesUNIDAD 15 - Strings
UNIDAD 15 - Strings
- Open Strings Project
- Review of Strings
- Concatenation
- The format! Macro
- Common String Methods (trim, casing, replace, split)
- Collecting User Input with read_line Method
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 16 - HashMaps · 13 leccionesUNIDAD 16 - HashMaps
UNIDAD 16 - HashMaps
- Open Hash Maps Project
- Create a HashMap with new Function
- The remove Method
- Hash Maps and Ownership
- Access a Value by Key
- Overwriting a Value with an Existing Key
- The entry Method
- The HashSet
- HashSet Operations
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 17 - Error Handling · 16 leccionesUNIDAD 17 - Error Handling
UNIDAD 17 - Error Handling
- Open Error Handling Project
- The panic! Macro
- The process Module and the exit Function
- Standard Error (eprintln! Macro)
- Opening a File
- Asking the User for Input
- Reading the File's Contents
- Propagating Errors
- Understanding Error Type Redeclaration
- The ? Operator (The Try Operator)
- The read_to_string Associated Function
- Using ? with Option
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 18 - Traits · 40 leccionesUNIDAD 18 - Traits
UNIDAD 18 - Traits
- Open Traits Project
- Intro to Traits
- Defining a Trait
- Implementing Trait for Struct I
- Implementing Trait for Struct II
- Default Implementations
- Calling Trait Method from Another Method
- Traits for Function Parameter Constraints
- Trait Bound Syntax
- Multiple Trait Bounds
- where Clauses
- Traits as Function Return Values
- Trait Bounds to Conditionally Implement Methods
- A Preview of Trait Objects
- Trait Must be In Scope to Use its Definitions
- Moving to Project Structure I
- Moving to Project Structure II (Multiple Modules)
- Associated Constants in a Trait
- Getters in Traits
- Setters in Traits
- Supertraits I (Trait Inheritance)
- Traits with Generics
- Implementing the Display Trait on a Struct
- Implementing the Display Trait on an Enum
- Implementing the Debug Trait
- Formatter Methods
- Implementing the Drop Trait
- Implementing the Clone Trait
- Implementing the Copy Trait
- Implementing the PartialEq Trait for Structs
- Defining Equality for Different Types
- Implementing the PartialEq Trait for Enums
- Implementing the Eq Trait
- Implementing the PartialOrd Trait
- Associated Types I
- Associated Types II
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 19 - Lifetimes · 22 leccionesUNIDAD 19 - Lifetimes
UNIDAD 19 - Lifetimes
- Open Lifetimes Project
- Concrete Lifetimes for Values I
- Concrete Lifetimes for Values II
- Concrete Lifetimes for References
- Non-Lexical Lifetimes
- Invalid Lifetimes I
- Invalid Lifetimes II
- Functions Cannot Return References to Owned Values or Parameters
- References as Function Parameters
- Intro to Generic Lifetimes
- Lifetimes and Referents
- Lifetime Elision Rules I
- Multiple Parameters I
- Multiple Parameters II
- Lifetime Elision Rules II
- Lifetimes in Structs
- Multiple Lifetimes
- The static Lifetime
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 20 - Closures · 19 leccionesUNIDAD 20 - Closures
UNIDAD 20 - Closures
- Open Closures Project
- Nested Functions
- Intro to Closures
- Closure Shortcuts
- The Fn Trait Hierarchy
- Closures that Capture Immutable References
- Closures that Capture Mutable References
- Closures with Ownership
- The move Keyword
- The unwrap_or_else Method
- Defining a Method that Accepts a Closure I (FnOnce Trait)
- The String.retain Method
- Defining a Method that Accepts a Closure II (FnMut Trait)
- The Fn Trait
- Passing in a Function to Fn Trait Parameter
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 21 - Iterators · 42 leccionesUNIDAD 21 - Iterators
UNIDAD 21 - Iterators
- Open Iterators Project
- Manual Iteration
- The Iterator and IntoIterator Traits
- The IntoIterator Trait In Action
- Exhausting the Iterator
- The for Loop with Iterator
- Why Iterator Can Be Immutable
- The iter Method
- The iter_mut Method
- HashMap Iteration
- String Iteration
- Solving a Problem with Iteration
- The for_each Method
- The map Method I
- The collect Method
- The map Method II
- The filter and find Methods I
- The filter and find Methods II
- The any and all Methods
- The cloned Method
- The filter_map Method
- The flatten Method
- The flat_map Method
- The enumerate Method
- The partition Method
- The zip Method
- The fold Method
- The reduce Method
- The sum, product, max, min, and count Methods
- The last, nth, nth_back, and position Methods
- The take, rev, skip, and step_by Methods
- The sort and sort_by_key Methods
- The lines Method
- Collecting Command Line Arguments I
- Collecting Command Line Arguments II
- Reading Directory
- The FromIterator Trait
- Project: Wordle
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 22 - Testing · 26 leccionesUNIDAD 22 - Testing
UNIDAD 22 - Testing
- Intro to Testing
- Writing a Test and the assert_eq! Macro
- The tests Module and the cfg Attribute
- Test Failures
- The assert! Macro
- Testing Inequality with the assert_ne! Macro
- The pretty_assertions Crate
- Trait Requirements for Types in Testing
- Custom Failure Messages
- The should_panic Attribute
- Using Result Enum in Tests
- Running A Subset of Tests
- Ignoring Tests
- Showing Printed Output from Passing Tests
- Adding MovieTheater Struct
- Dependency Injection I
- Dependency Injection II
- Integration Tests
- Documentation Tests
- Test Options
- Fixtures with the rstest Crate
- Test-Driven Development
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 23 - Randomness with rand Crate · 8 leccionesUNIDAD 23 - Randomness with rand Crate
UNIDAD 23 - Randomness with rand Crate
- Open Random Project
- Intro to the rand Crate
- The ThreadRng Struct
- Randomizing Vector Elements with shuffle Method
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 24 - Datetimes with chrono Crate · 13 leccionesUNIDAD 24 - Datetimes with chrono Crate
UNIDAD 24 - Datetimes with chrono Crate
- Open Datetimes Project
- The NaiveDate Struct
- The TimeDelta Struct
- Adding and Subtracting Time
- The NaiveTime and NaiveDateTime Structs
- The DateTime Struct
- Converting Timezones
- The parse_from_str Function
- The format Method
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 25 - Regular Expressions with regex Crate · 19 leccionesUNIDAD 25 - Regular Expressions with regex Crate
UNIDAD 25 - Regular Expressions with regex Crate
- Open Regular Expressions Project
- Intro to the regex Crate
- The find and find_iter Methods
- Searching for Digits
- Alphanumeric Characters
- Whitespace
- Word Boundaries
- The Dot Metacharacter
- Square Brackets with Characters
- Number of Matches I
- Number of Matches II
- Or Logic
- Anchors
- Capture Groups
- The replace_all Method
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 26 - Smart Pointers I: Box · 24 leccionesUNIDAD 26 - Smart Pointers I: Box
UNIDAD 26 - Smart Pointers I: Box
- Open Smart Pointers: Box Project
- Raw Pointers
- Raw Pointers and Unsafe Code
- Smart Pointers
- The Box Smart Pointer
- Intro to Linked Lists
- Defining the LinkedList
- Creating the LinkedList
- Box vs Regular References I
- Box vs Regular References II
- Vectors are Smart Pointers
- Intro to Binary Search Trees
- Creating a Binary Search Tree
- The Deref and DerefMut Traits I
- The Deref and DerefMut Traits II
- The Drop Trait
- Deref Coercions
- Trait Objects I
- Trait Objects II: Handling Multiple Errors
- Custom Error Types
- Project
- Project Solution
- Quiz
- Section Review
UNIDAD 27 - Smart Pointers II: Cell, RefCell, OnceCell, LazyCell, and Rc [IN DEVELOPMENT] · 3 leccionesUNIDAD 27 - Smart Pointers II: Cell, RefCell, OnceCell, LazyCell, and Rc [IN DEVELOPMENT]
UNIDAD 27 - Smart Pointers II: Cell, RefCell, OnceCell, LazyCell, and Rc [IN DEVELOPMENT]
- Open Smart Pointers II Project
- The Cell Type and Interior Mutability Pattern
- The RefCell Type
UNIDAD 28 - Congratulations · 4 leccionesUNIDAD 28 - Congratulations
UNIDAD 28 - Congratulations
- Congratulations
- Complete Slide Decks
- Complete Captions/Transcriptions
- Bonus
Tu certificado lo emite la SEP, no solo una plataforma
Al demostrar la competencia recibes un certificado emitido por la Secretaría de Educación Pública a través del Gobierno del Estado de México: un documento oficial que puedes presentar con confianza ante cualquier empleador o institución.
Tu certificado con INEC
- Lo emite la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México
- Documento oficial con folio verificable en línea
- Lo otorga la Universidad Tecnológica Fidel Velázquez
Otras plataformas en línea
- Constancia privada emitida por la misma plataforma
- Solo acredita horas cursadas o asistencia
- Sin respaldo de una autoridad educativa
Tu itinerario, de la inscripción al certificado
- 1
Inscripción con pago único
Pagas $2,800 MXN una sola vez y entras de inmediato al curso.
- 2
Estudias a tu ritmo
28 unidades con videos, lecturas y actividades, disponibles 24/7 durante 12 meses.
- 3
Cuestionarios por unidad
26 cuestionarios para comprobar lo aprendido.
- 4
Certificado
Emitido por la SEP a través del Gobierno del Estado de México, con folio verificable.
Un certificado oficial de la SEP
- Emitido por la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México. No es una constancia privada: es un documento oficial, y ese respaldo marca la diferencia frente a otras plataformas en línea.
- Contenido impartido por Boris Paskhaver.
- Folio y QR verificables para compartirlo con quien te contrate.
Empieza hoy, a tu ritmo
Un solo pago y acceso inmediato al curso completo durante 12 meses.
- 28 unidades · 523 lecciones · 60 h
- 12 meses de acceso
- 26 cuestionarios de evaluación
- Certificado emitido por la SEP (Gob. del Estado de México) con folio verificable
Sobre tu inscripción
¿Cómo es el pago?
Un solo pago de $2,800 MXN. No hay mensualidades ni cargos recurrentes.
¿Cuánto tiempo tengo acceso?
12 meses desde tu inscripción, 24/7, para avanzar a tu ritmo.
¿Quién imparte el contenido?
El curso es impartido por Boris Paskhaver; INEC gestiona tu inscripción, evaluación y certificado.
¿Qué pasa cuando vence mi acceso?
Puedes renovar tu cuenta tú mismo desde la plataforma, sin trámites ni esperas.


