Choose your language
Rust Programming Course
More than 2 million students worldwide

Rust Programming Course

Master Rust from the ground up — from ownership and borrowing to async concurrency and systems programming. This course covers everything you need to write fast, safe, and production-ready Rust code. Whether you're building web services, CLI tools, or low-level systems software, you'll gain the skills to do it right.

Dedika for businesses

What you will learn:

You'll start by setting up your Rust toolchain and learning core syntax, then move into Rust's ownership model, borrowing rules, and lifetimes. From there, you'll work through structs, enums, pattern matching, and robust error handling. You'll master collections, iterators, closures, traits, and generics before tackling concurrency with threads, channels, and async/await. The course also covers unsafe Rust, FFI, testing, performance profiling, macros, web programming with Axum, and CI/CD deployment workflows.

How you study in practice Rust Programming Course

How you practise Rust Programming Course

For businesses looking to train their team

With Dedika for businesses, the course includes exercises and examples tailored to your own business and the way your company needs.

Click here

Course content

8 Chapters • 40 LessonsDuration between 4 and 360 hours (you decide)

Chapter 1See details

Getting Started with Rust

  • Lesson 1 • Rust Syntax and Basic Types

    Covers variables, scalar types, and basic expressions. Provides the syntactic vocabulary needed to read and write any Rust program.

  • Lesson 2 • Installing and Configuring Rust

    Set up rustup, cargo, and a code editor for Rust development. Establishes the toolchain foundation every subsequent chapter depends on.

  • Lesson 3 • Using Cargo and Crates

    Explores Cargo commands, project layout, and adding external crates. Connects syntax knowledge to real project workflows used throughout the course.

  • Lesson 4 • Control Flow Fundamentals

    Teaches if, loop, while, and for constructs in Rust. Enables students to write programs with branching and iteration logic.

  • Lesson 5 • Functions and Code Organisation

    Defines functions with parameters and return types, and introduces modules. Prepares students to structure programmes beyond a single main function.

Chapter 2See details

Ownership, Borrowing, and Lifetimes

  • Lesson 1 • Lifetime Annotations

    Teaches explicit lifetime syntax for functions and structs. Enables students to resolve lifetime errors and design APIs with borrowed data.

  • Lesson 2 • References and Borrowing

    Introduces shared and mutable references with borrow-checker rules. Students learn to pass data without transferring ownership.

  • Lesson 3 • Slices and String Types

    Covers slice references for arrays and strings, and distinguishes str from String. Bridges ownership concepts to practical string and collection handling.

  • Lesson 4 • Ownership Patterns in Practice

    Applies ownership and borrowing rules to realistic code scenarios. Solidifies understanding by resolving common borrow-checker conflicts.

  • Lesson 5 • Ownership Rules and Move Semantics

    Explains single-owner semantics and how values move between bindings. Forms the conceptual core that all borrowing and lifetime rules build upon.

Chapter 3See details

Structs, Enums, and Pattern Matching

  • Lesson 1 • Methods and Associated Functions

    Adds behaviour to structs via impl blocks and associated functions. Connects data modelling to object-oriented-style encapsulation in Rust.

  • Lesson 2 • Enums and Variants

    Defines enums with data-carrying variants and introduces Option. Enables modelling of values that can take one of several distinct forms.

  • Lesson 3 • Pattern Matching with match

    Uses match expressions to destructure enums, tuples, and structs. Teaches exhaustive pattern handling central to idiomatic Rust control flow.

  • Lesson 4 • if let and Advanced Patterns

    Introduces concise pattern matching with if let, while let, and nested patterns. Extends pattern skills to everyday conditional and loop scenarios.

  • Lesson 5 • Defining and Using Structs

    Covers struct definition, instantiation, and field access. Provides the primary tool for grouping related data in Rust programs.

Chapter 4See details

Error Handling in Rust

  • Lesson 1 • Panics and Unrecoverable Errors

    Explains when Rust panics, how to trigger and catch them, and when to use them. Sets the boundary between panic-worthy and recoverable error scenarios.

  • Lesson 2 • Custom Error Types

    Defines custom error enums and implements the Error trait. Enables libraries and applications to expose meaningful, structured error information.

  • Lesson 3 • Error Handling Strategies

    Compares boxed errors, custom types, and anyhow for application vs. library code. Guides students in choosing the right strategy for each context.

  • Lesson 4 • The ? Operator and Error Propagation

    Uses the ? operator to propagate errors up the call stack concisely. Reduces boilerplate and makes error-handling code readable and idiomatic.

  • Lesson 5 • The Result Type

    Covers Result<T, E> definition, matching on Ok and Err, and common combinators. Provides the primary mechanism for propagating recoverable errors.

Chapter 5See details

Collections, Iterators, and Closures

  • Lesson 1 • Consuming Iterators

    Uses collect, fold, sum, and other consumers to produce results from iterators. Completes the iterator pipeline from source through transformation to output.

  • Lesson 2 • Iterator Trait and Adapters

    Explores the Iterator trait, lazy evaluation, and adapter methods. Teaches the functional-style data transformation central to idiomatic Rust.

  • Lesson 3 • Custom Iterators

    Implements the Iterator trait on custom types to produce sequences. Deepens understanding of how Rust's iterator machinery works under the hood.

  • Lesson 4 • Closures and Capturing Environment

    Defines closures, their capture modes, and Fn trait bounds. Enables passing behaviour as values, which iterators and higher-order functions require.

  • Lesson 5 • Vectors and Common Collections

    Covers Vec<T>, String, and HashMap<K, V> creation, access, and mutation. Provides the standard data containers used in nearly every Rust program.

Chapter 6See details

Traits, Generics, and Polymorphism

  • Lesson 1 • Defining and Implementing Traits

    Creates traits with required and default methods and implements them on types. Establishes the shared-behaviour mechanism that generics and polymorphism rely on.

  • Lesson 2 • Advanced Trait Techniques

    Covers associated types, operator overloading, and the Newtype pattern. Extends trait knowledge to sophisticated API design scenarios.

  • Lesson 3 • Trait Objects and Dynamic Dispatch

    Uses dyn Trait pointers for runtime polymorphism and explains vtable costs. Teaches when dynamic dispatch is appropriate versus static dispatch.

  • Lesson 4 • Trait Bounds and Where Clauses

    Constrains generic types with trait bounds and where clauses. Allows generic code to call trait methods while keeping signatures readable.

  • Lesson 5 • Generic Functions and Types

    Parameterises functions, structs, and enums with type parameters. Enables writing code that works across many types while remaining type-safe.

Chapter 7See details

Concurrency and Async Rust

  • Lesson 1 • Async/Await Fundamentals

    Introduces futures, async functions, and the await keyword with a runtime. Prepares students for non-blocking I/O and high-concurrency application patterns.

  • Lesson 2 • Send and Sync Traits

    Explains the Send and Sync marker traits and their role in thread safety. Enables students to reason about which types can cross thread boundaries.

  • Lesson 3 • Threads and Shared State

    Spawns OS threads, shares data with Arc and Mutex, and avoids data races. Demonstrates how ownership rules enforce thread safety at compile time.

  • Lesson 4 • Async Patterns and Pitfalls

    Covers concurrent futures, task spawning, and common async mistakes. Equips students to build correct, efficient async programs in production contexts.

  • Lesson 5 • Message Passing with Channels

    Uses mpsc channels to communicate between threads without shared memory. Introduces the message-passing concurrency model as an alternative to locking.

Chapter 8See details

Systems Programming and Unsafe Rust

  • Lesson 1 • Memory Layout and Raw Pointers

    Examines how Rust lays out data in memory and introduces raw pointer syntax. Provides the low-level foundation required for unsafe operations.

  • Lesson 2 • Embedded and No-std Environments

    Configures Rust for no_std targets and uses core and alloc crates. Extends Rust skills to microcontrollers and environments without an operating system.

  • Lesson 3 • Custom Allocators and Memory Management

    Implements the Allocator trait and explores arena and pool allocation. Addresses performance-critical scenarios where default allocation is insufficient.

  • Lesson 4 • Foreign Function Interface

    Calls C functions from Rust and exposes Rust functions to C using extern. Enables integration with existing native libraries and system APIs.

  • Lesson 5 • Unsafe Blocks and Functions

    Defines what unsafe permits and how to minimise its scope. Teaches responsible use of unsafe to extend capabilities without sacrificing correctness.

Certification

Your valid completion certificate

This course is for you:

  • Backend developer: wants to replace slow or unsafe services with Rust alternatives.

  • C or C++ programmer: seeks compile-time safety without sacrificing low-level control.

  • Hobbyist builder: excited to create CLI tools and systems projects in Rust.

  • Career changer: targeting high-demand engineering roles that require systems programming skills.

  • DevOps engineer: needs to write reliable, high-performance tooling for infrastructure pipelines.

  • Computer science student: ready to go beyond coursework and tackle real-world Rust development.

What our students say

Your lessons are perfect. I purchased the one-year package and finally have the opportunity to follow various topics of interest without needing to change platforms... I'm grateful for everything you do, I've already recommended you to other people...
Giulio Carlo
Giulio CarloDigital Marketing Student
I like how the lessons are straight to the point and how I can change chapters and skip content I don't need.
Mariana Ferres
Mariana FerresPhotography Student
I like the content and the way videos are presented and transcribed, which speeds up the process!
Luciana Alvarenga
Luciana AlvarengaNail Design Student
The platform is fast and simple to use. The diversity of content and complementary videos really help with learning.
André Felipe
André FelipePrompt Engineering Student

Top qualifications

FAQ

Who is Dedika?

Is the certificate valid in the United Kingdom?

Are the courses free?

What is the course workload?

What are the courses like?

How do the courses work?

What is the duration of the courses?

What is the cost or price of the courses?

What is an EAD or online course and how does it work?

PDF Course