Free Course Image Complete Rust Programming Course

Free online courseComplete Rust Programming Course

Duration of the online course: 10 hours and 4 minutes

New

Free Rust course covering ownership, lifetimes, traits, testing, concurrency, macros, CLI apps, crates, and building a web server.

In this free course, learn about

  • Getting Started and Core Syntax
  • Ownership and Data Modeling
  • Project Structure, Collections, and Error Handling
  • Generics, Traits, and Lifetimes
  • Testing and Building a CLI Application
  • Functional Rust: Closures and Iterators
  • Crates, Releases, and Workspaces
  • Smart Pointers and Memory Management Patterns
  • Concurrency in Rust
  • Object-Oriented Patterns with Traits
  • Pattern Matching Mastery
  • Unsafe Rust and Advanced Trait/Type System
  • Metaprogramming with Macros
  • Building a Multithreaded Web Server

Course Description

Learn Rust from the ground up with a free, hands-on course designed for developers who want to write fast, safe, and reliable software. Start with the essentials and quickly move into real programming workflows, building confidence with Rust syntax, tooling, and idiomatic patterns.

Progress from core concepts to the features that make Rust unique, including ownership, borrowing, lifetimes, modules, and error handling. Strengthen your fundamentals with structs, enums, pattern matching, collections, generics, traits, closures, iterators, and thorough testing practices that help you write maintainable code.

Go further into production-ready Rust by creating command-line applications, publishing crates, and organizing larger codebases with Cargo workspaces. Explore smart pointers and memory management patterns, then tackle concurrency with threads, message passing, and shared state approaches.

Advance your skills with trait objects, object-oriented style techniques, design patterns, unsafe Rust, and powerful macro systems. Wrap up by applying what you learned to building a web server, giving you practical experience that connects Rust concepts to real-world development.

Course content

  • Video class: ULTIMATE Rust Lang Tutorial! - Getting Started 07m
  • Exercise: Which tool is Rust’s built-in build system and package manager used to manage dependencies and build projects?
  • Video class: Programming a Guessing Game in Rust! 13m
  • Exercise: How does the guessing game handle invalid (non-numeric) user input without crashing?
  • Video class: Common Programming Concepts in Rust 14m
  • Exercise: In Rust, what is the correct way to allow a variable to be reassigned after its initial value is set?
  • Video class: Understanding Ownership in Rust 25m
  • Exercise: In Rust, what is the ownership model primarily used for?
  • Video class: Structs in Rust 17m
  • Exercise: In Rust, what distinguishes a method from an associated function on a struct?
  • Video class: Enums and Pattern Matching in Rust 12m
  • Exercise: In Rust, what is the purpose of the Option enum compared to null values in other languages?
  • Video class: Rust's Module System Explained! 22m
  • Exercise: In Rust, what happens when a file named main.rs exists in the src directory of a package created with Cargo?
  • Video class: Common Collections in Rust 24m
  • Exercise: Which method provides a safer way to access an element in a vector without crashing on an out-of-bounds index?
  • Video class: Error Handling in Rust 16m
  • Exercise: In Rust, what is the recommended default approach for handling errors in most situations?
  • Video class: Generic Types in Rust 15m
  • Exercise: Why does Rust use generics without a runtime performance penalty?
  • Video class: Traits in Rust 11m
  • Exercise: In Rust, what is the purpose of using a trait like Summary for types such as a news article and a tweet?
  • Video class: Rust Lifetimes Finally Explained! 19m
  • Exercise: In Rust, why does a function like longest that returns one of two string slice references often require an explicit lifetime annotation?
  • Video class: Testing in Rust 15m
  • Exercise: In Rust, how do you mark a function so it is treated as a test by the test runner?
  • Video class: Testing in Rust - Part 2 14m
  • Exercise: In Rust, where do integration tests live and what interface can they access?
  • Video class: Writing a CLI App in Rust! - Part 1 17m
  • Video class: Writing a CLI App in Rust! - Part 2 16m
  • Exercise: Why were the run function and Config struct moved from main.rs into lib.rs?
  • Video class: Closures in Rust 19m
  • Exercise: Which statement best describes a Rust closure compared to a regular function?
  • Video class: Iterators in Rust 13m
  • Exercise: In Rust, why does calling the iterator adapter method `map` alone not produce any output or changes?
  • Video class: Iterators in Practice 07m
  • Exercise: Why was the config constructor changed to accept an iterator over command-line arguments instead of a slice of Strings?
  • Video class: Publishing a Rust Crate! 14m
  • Exercise: What does the command cargo build --release do compared to cargo build?
  • Video class: Cargo Workspaces 11m
  • Exercise: In a Cargo workspace, which statement best describes how dependencies and build outputs are managed across member packages?
  • Video class: The Box Smart Pointer in Rust 12m
  • Exercise: Why does wrapping the recursive enum field in Box fix the infinite size error?
  • Video class: Smart Pointers in Rust - The Deref Trait 10m
  • Exercise: What is the main purpose of the Deref trait in Rust smart pointers?
  • Video class: Smart Pointers in Rust - The Drop Trait 05m
  • Exercise: How can you manually clean up a value early in Rust without calling its Drop method directly?
  • Video class: Smart Pointers in Rust - Reference Counting 08m
  • Exercise: What is the main purpose of Rust’s reference counting smart pointer (Rc)?
  • Video class: Smart Pointers in Rust - Interior Mutability 17m
  • Video class: Smart Pointers in Rust - Reference Cycles 15m
  • Exercise: How can Rust code end up with a memory leak when using smart pointers?
  • Video class: Concurrency in Rust - Creating Threads 10m
  • Exercise: Why does Rust call its approach to concurrency fearless concurrency?
  • Video class: Concurrency in Rust - Message Passing 09m
  • Exercise: In Rust message-passing concurrency using mpsc channels, how can you allow two different threads to send messages to the same receiver?
  • Video class: Concurrency in Rust - Sharing State 09m
  • Video class: Object Oriented Programming in Rust 07m
  • Exercise: Which object-oriented characteristic is NOT supported directly in Rust for structs (i.e., you can't inherit fields and methods from another struct)?
  • Video class: Using Trait Objects in Rust 13m
  • Video class: State Design Pattern in Rust 20m
  • Exercise: In the blog post state workflow, what should the content() method return before a post is published?
  • Video class: Patterns and Matching 10m
  • Exercise: In Rust, why do match expressions often use a catch-all pattern (_) ?
  • Video class: Pattern Syntax in Rust 15m
  • Exercise: In Rust pattern matching, what does the @ operator allow you to do in a match arm?
  • Video class: Writing Unsafe Rust 15m
  • Exercise: Which of the following is one of the five special abilities that Rust enables inside an unsafe block?
  • Video class: Advanced Traits in Rust 13m
  • Exercise: What is a key difference between associated types and generics in trait implementations?
  • Video class: Advanced Types in Rust 08m
  • Exercise: What is the main reason to use the newtype pattern when implementing a trait in Rust?
  • Video class: Advanced Function and Closures in Rust 07m
  • Exercise: In Rust, why might you return a boxed trait object (e.g., Box i32>) instead of using impl Fn when returning a closure?
  • Video class: Declarative Macros in Rust 06m
  • Exercise: What is a key difference between Rust functions and macros?
  • Video class: Procedural Macros in Rust 11m
  • Exercise: Which statement best describes how procedural macros work in Rust?
  • Video class: Building a Web Server in Rust - Part 1 16m
  • Exercise: When building a bare-bones single-threaded web server in Rust, which pair of protocols is used, and what does each one describe?
  • Video class: Building a Web Server in Rust - Part 2 20m
  • Exercise: Why does using a fixed-size thread pool help an HTTP server handle slow requests without blocking other requests?
  • Video class: Building a Web Server in Rust - Part 3 08m
  • Exercise: In a Rust thread pool, what change enables a graceful shutdown so worker threads can stop instead of looping forever?

This free course includes:

10 hours and 4 minutes of online video course

Digital certificate of course completion (Free)

Exercises to train your knowledge

100% free, from content to certificate

Ready to get started?Download the app and get started today.

Install the app now

to access the course
Icon representing technology and business courses

Over 5,000 free courses

Programming, English, Digital Marketing and much more! Learn whatever you want, for free.

Calendar icon with target representing study planning

Study plan with AI

Our app's Artificial Intelligence can create a study schedule for the course you choose.

Professional icon representing career and business

From zero to professional success

Improve your resume with our free Certificate and then use our Artificial Intelligence to find your dream job.

You can also use the QR Code or the links below.

QR Code - Download Cursa - Online Courses

More free courses at Programming Languages ( Python, Ruby, Java, C )

Free Ebook + Audiobooks! Learn by listening or reading!

Download the App now to have access to + 5000 free courses, exercises, certificates and lots of content without paying anything!

  • 100% free online courses from start to finish

    Thousands of online courses in video, ebooks and audiobooks.

  • More than 60 thousand free exercises

    To test your knowledge during online courses

  • Valid free Digital Certificate with QR Code

    Generated directly from your cell phone's photo gallery and sent to your email

Cursa app on the ebook screen, the video course screen and the course exercises screen, plus the course completion certificate