Duration of the online course: 2 hours and 21 minutes
5
(1)
Build safer, faster apps with Rust. Take this free online course to master ownership, borrowing and Cargo with hands-on practice—perfect for beginners.
In this free course, learn about
What Rust is, why to learn it, and its safety + performance goals
Rust’s key differentiator: memory safety without a garbage collector (ownership/borrow checker)
How to engage with the Rust community and where to chat synchronously
Installing Rust the recommended way (rustup) and setting up the toolchain
Creating and running a first Rust app (Hello World) with rustc and Cargo
Using Cargo to create, build, run, test, and manage dependencies
Variables: immutability by default, using mut, and basic bindings
Writing functions, parameters/returns, and handling edge cases (e.g., empty string)
Defining and using structs (three flavors) and enums (algebraic data types) with variants
Control flow with if/else, match, and loops (while/for) and their typical use cases
Error handling basics (Result/Option patterns) and propagating/handling failures
Ownership, moves vs copies (e.g., i32 vs Vec), and borrowing rules for references
Strings (&str vs String), common collections (incl. VecDeque), and traits for shared behavior
Course Description
If you want to write software that feels fast, reliable, and confident in production, Rust is a powerful place to start. This free online course guides you from the very first setup to core language features that make Rust stand out in modern development. You will get comfortable with the workflow used by Rust developers, learn how to compile and run your first program, and understand how to manage projects efficiently with the standard tooling.
Along the way, you will build solid fundamentals that translate into real code. You will work with variables and data types, move into functions, and learn how to model information cleanly using structs and enums. You will also practice making decisions and controlling program flow with if/else, match, and common looping patterns, developing the ability to read and write Rust that is idiomatic and easy to maintain.
The course spends special attention on what makes Rust different: memory safety without a garbage collector. You will learn the intuition behind ownership, borrowing, and how Rust thinks about moving and copying values, so you can avoid whole categories of runtime bugs before they happen. You will also explore error handling patterns that help you write resilient programs and gain clarity on strings and collections, including when to reach for different container types depending on the job.
To round it out, you will be introduced to traits, a key concept for abstraction and reusable design in Rust. By the end, you will have a practical foundation for continuing into larger projects, system tools, web services, or performance-critical applications, with the mindset needed to keep improving beyond the beginner stage.
Course content
Video class: Introduction to the series [1 of 35] | Rust for Beginners03m
Exercise: What is a key feature that makes Rust unique compared to other programming languages?
Video class: What is Rust and why should you learn it [2 of 35] | Rust for Beginners03m
Exercise: What is a key feature that distinguishes Rust from C and C++?
Video class: Learn about the Rust community [3 of 35] | Rust for Beginners02m
Exercise: _Which of the following is a way to chat synchronously with other Rust stations?
Video class: Install the tools to develop with Rust [4 of 35] | Rust for Beginners04m
Exercise: What is the recommended method for installing Rust?
Video class: Create your first application [5 of 35] | Rust for Beginners04m
Exercise: _What is the first step to create and run a Hello World program using Rust compiler?
Video class: What is Cargo? [6 of 35] | Rust for Beginners02m
Exercise: What tool do Rust developers commonly use for building and managing Rust projects?
Video class: Learn about variables [7 of 35] | Rust for Beginners04m
Exercise: _What is the difference between immutable and mutable variables in Rust programming language?
Video class: Demo: Declare and use variables [8 of 35] | Rust for Beginners05m
Exercise: What is required to make a variable mutable in the demonstrated program?
Video class: Learn about scalar data types [9 of 35] | Rust for Beginners03m
Exercise: _Which of the following statements is true about Rust's integer types?
Video class: Demo: Create and use scalar data types [10 of 35] | Rust for Beginners05m
Exercise: What is the result of dividing 9.0 by the floating point number defined as y?
Video class: Learn about compound data types [11 of 35] | Rust for Beginners02m
Exercise: _What is the main difference between arrays and tuples in Rust?
Video class: Demo: Create and use compound data types [12 of 35] | Rust for Beginners03m
Exercise: What happens when an array in Rust is accessed with an out-of-bound index during compile time?
Video class: Functions [13 of 35] | Rust for Beginners01m
Exercise: _What is the keyword used to define a function in Rust?
Video class: Demo: Functions [14 of 35] | Rust for Beginners02m
Exercise: What should the 'last char' function return when the input string is empty?
Video class: Structs [15 of 35] | Rust for Beginners02m
Exercise: _What are the three flavors of structs in Rust?
Video class: Demo: Structs [16 of 35] | Rust for Beginners05m
Exercise: What is the main concept explained in the provided video transcript?
Video class: Enums [17 of 35] | Rust for Beginners03m
Exercise: _What is an enum in Rust and how is it commonly referred to in functional languages?
Video class: Demo: Enums [18 of 35] | Rust for Beginners04m
Exercise: What does the KeyPress variant of the WebEvent enum in Rust represent?
Video class: If/else and match [19 of 35] | Rust for Beginners03m
Exercise: _What is the difference between if/else and match expressions in Rust?
Video class: Demo: If/else and match [20 of 35] | Rust for Beginners04m
Exercise: What will be printed when running the Rust code provided in the terminal?
Video class: Loops [21 of 35] | Rust for Beginners03m
Exercise: _What is the main difference between while loops and for loops in Rust?
Video class: Demo: Loops [22 of 35] | Rust for Beginners04m
Video class: Error handling [23 of 35] | Rust for Beginners05m
Video class: Demo: Error handling [24 of 35] | Rust for Beginners07m
Video class: Ownership [25 of 35] | Rust for Beginners08m
Exercise: _What is the difference between storing a 32-bit integer and a vector in Rust?
Video class: Demo: Ownership [26 of 35] | Rust for Beginners01m
Video class: Borrowing [27 of 35] | Rust for Beginners03m
Exercise: _What is borrowing in Rust?
Video class: Demo: Borrowing [28 of 35] | Rust for Beginners04m
Video class: Learn about strings [29 of 35] | Rust for Beginners04m
Exercise: _What are the two types of strings that are commonly used in Rust programming?
Video class: Demo: Create and use strings [30 of 35] | Rust for Beginners04m
Video class: Collections [31 of 35] | Rust for Beginners03m
Exercise: _What is a VecDeque in Rust and when should you use it?
Video class: Demo: Collections [32 of 35] | Rust for Beginners05m
Video class: Traits [33 of 35] | Rust for Beginners03m
Exercise: _What is the purpose of Traits in Rust programming language?
Video class: Demo: Traits [34 of 35] | Rust for Beginners05m
Video class: Next steps [35 of 35] | Rust for Beginners01m
Exercise: _What is the best way to continue learning Rust after completing this beginner's series?