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

Rust Programming Basics Course

Rust is redefining how systems software gets built — and this course gives you the foundation to build with it. From ownership and borrowing to traits, iterators, and async programming, every core concept is covered with precision. Whether you're coming from C, C++, or a higher-level language, you'll gain the mental models and hands-on skills to write safe, fast, production-quality Rust.

Dedika for Business

What you will learn:

  • Configure a complete Rust toolchain and manage projects using Cargo from day one.

  • Master ownership, borrowing, and lifetimes to write memory-safe code without a garbage collector.

  • Model complex data with structs, enums, and exhaustive pattern matching for type-safe logic.

  • Build flexible, reusable abstractions using traits, generics, and standard library collections.

  • Construct expressive data pipelines with closures and iterator adapters that compile to zero-cost machine code.

  • Apply professional tooling including Clippy, rustfmt, Rustdoc, and integrated testing strategies.

How you study in practice Rust Programming Basics Course

How you practise Rust Programming Basics Course

For companies looking to train their team

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

Click here

Course Content

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

Chapter 1See details

Getting Started with Rust

  • Lesson 1 • Writing Your First Rust Program

    Guides students through a minimal Rust program, explaining entry points, macros, and compilation. Builds familiarity with syntax before deeper concepts are introduced.

  • Lesson 2 • Installing the Rust Toolchain

    Walks through rustup installation, managing toolchain versions, and verifying the setup. Provides the foundation for all hands-on exercises in the course.

  • Lesson 3 • Why Rust Exists

    Covers Rust's design goals: memory safety without garbage collection, zero-cost abstractions, and systems-level performance. Sets context for every concept introduced later.

  • Lesson 4 • Cargo: Rust's Build System

    Introduces Cargo as the official build tool and package manager. Students create, build, and run projects using Cargo commands throughout the course.

Chapter 2See details

Variables, Types, and Control Flow

  • Lesson 1 • Control Flow Constructs

    Teaches if/else, loop, while, and for constructs including their expression-based nature. Prepares students for pattern matching introduced in later chapters.

  • Lesson 2 • Variable Binding and Mutability

    Explains let bindings, immutability by default, and the mut keyword. Immutability is a core safety feature that recurs throughout ownership and concurrency topics.

  • Lesson 3 • Functions and Expressions

    Explains function signatures, return types, and Rust's expression-oriented evaluation model. Establishes the distinction between statements and expressions used throughout the language.

  • Lesson 4 • Scalar and Compound Types

    Covers integers, floats, booleans, characters, tuples, and arrays. Understanding these types is prerequisite to working with structs, enums, and collections.

  • Lesson 5 • Type Inference and Annotations

    Demonstrates how Rust infers types and when explicit annotations are required. Reduces confusion when the compiler requests type information.

Chapter 3See details

Ownership and Borrowing

  • Lesson 1 • Cloning and Copying

    Distinguishes the Copy trait for stack types from explicit clone for heap types. Prevents confusion when values appear to be duplicated unexpectedly.

  • Lesson 2 • Lifetime Annotations Basics

    Explains when the compiler requires explicit lifetime annotations and how to write them. Builds the minimum understanding needed before advanced generics are introduced.

  • Lesson 3 • Slices as Borrowed Views

    Covers string slices and array slices as references into contiguous data. Slices appear in nearly every real-world Rust API and function signature.

  • Lesson 4 • References and Borrowing

    Introduces shared and mutable references, enforcing the aliasing XOR mutability rule. Students write functions that access data without taking ownership.

  • Lesson 5 • Ownership Rules

    Defines the three ownership rules and how values are moved between bindings. This model is the foundation of Rust's memory safety guarantees.

Chapter 4See details

Structs, Enums, and Pattern Matching

  • Lesson 1 • Concise Patterns: if let and while let

    Introduces if let and while let as ergonomic alternatives to full match expressions. Reduces boilerplate when only one variant needs handling.

  • Lesson 2 • Enums and Variants

    Defines enums with data-carrying variants and explains their memory layout. Enums enable exhaustive modeling of states, replacing error-prone integer flags.

  • Lesson 3 • Defining and Using Structs

    Covers named-field structs, tuple structs, and unit structs with instantiation syntax. Structs are the primary tool for grouping related data in Rust programs.

  • Lesson 4 • Methods and Associated Functions

    Teaches impl blocks, self parameter variants, and associated constructor functions. Encapsulates behavior alongside data before traits are introduced.

  • Lesson 5 • Pattern Matching with match

    Explores match arms, guards, binding patterns, and exhaustiveness checking. Pattern matching is the primary way to safely unwrap enums throughout Rust code.

Chapter 5See details

Collections and Error Handling

  • Lesson 1 • Strings and String Slices

    Explains the String type, UTF-8 encoding, concatenation, and slicing rules. Clears up the common confusion between String and &str in function signatures.

  • Lesson 2 • Panics and Unrecoverable Errors

    Distinguishes panic from Result, explains unwrap and expect, and covers when panicking is appropriate. Prevents misuse of panics in library and production code.

  • Lesson 3 • Vectors

    Covers Vec creation, pushing, indexing, iteration, and ownership interactions. Vectors are the most common heap-allocated collection in Rust programs.

  • Lesson 4 • Handling Errors with Result

    Covers the ? operator, match-based error handling, and converting between error types. Establishes the idiomatic Rust approach to recoverable errors.

  • Lesson 5 • Hash Maps

    Teaches HashMap insertion, lookup, entry API, and iteration patterns. Provides a key-value store for counting, caching, and grouping data.

Chapter 6See details

Traits and Generics

  • Lesson 1 • Defining and Implementing Traits

    Explains trait definitions, default method implementations, and implementing traits on custom types. Traits are Rust's primary abstraction mechanism for shared behavior.

  • Lesson 2 • Trait Objects and Dynamic Dispatch

    Explains dyn Trait, fat pointers, and the trade-off between static and dynamic dispatch. Enables heterogeneous collections and plugin-style architectures.

  • Lesson 3 • Generic Functions and Structs

    Introduces type parameters in functions and structs with trait bounds. Enables writing algorithms that operate on any type satisfying specified constraints.

  • Lesson 4 • Common Standard Library Traits

    Covers Display, Debug, Clone, PartialEq, PartialOrd, and Iterator. Familiarity with these traits is required for idiomatic Rust in every domain.

  • Lesson 5 • Operator Overloading via Traits

    Shows how to implement Add, Sub, Index, and other operator traits on custom types. Produces ergonomic APIs that feel natural to callers.

Chapter 7See details

Closures and Iterators

  • Lesson 1 • Iterator Adapters and Consumers

    Covers map, filter, flat_map, take, skip, zip, and collect. Students build readable data pipelines that compile to efficient machine code.

  • Lesson 2 • The Iterator Trait

    Defines the Iterator trait, the next method, and how to implement a custom iterator. Provides the foundation for understanding all iterator adapters.

  • Lesson 3 • Folding and Aggregating Data

    Teaches fold, reduce, sum, product, any, all, and find for aggregating iterator output. Completes the toolkit for replacing imperative loops with declarative pipelines.

  • Lesson 4 • Closures: Syntax and Captures

    Covers closure syntax, environment capture by reference or value, and the move keyword. Closures are used extensively in iterators, threads, and async code.

  • Lesson 5 • Storing and Passing Closures

    Explains how to store closures in structs and pass them as function parameters using trait bounds. Enables callback patterns and lazy evaluation strategies.

Chapter 8See details

Modules, Crates, and Project Structure

  • Lesson 1 • Modules and Visibility

    Explains the mod keyword, file-based module layout, and pub visibility rules. Proper module design prevents tight coupling and exposes clean public APIs.

  • Lesson 2 • Testing Within Modules

    Covers unit tests in #[cfg(test)] modules, integration tests in the tests directory, and doc tests. Embeds a testing culture from the project structure level.

  • Lesson 3 • Using External Crates

    Demonstrates adding dependencies from crates.io, version constraints, and re-exporting items. Enables students to leverage the Rust ecosystem in their projects.

  • Lesson 4 • Crates and the Cargo Manifest

    Defines binary and library crates, Cargo.toml fields, and workspace configuration. Students understand how Rust projects are compiled and linked.

  • Lesson 5 • Paths and the use Keyword

    Covers absolute and relative paths, use declarations, and aliasing with as. Reduces verbosity and clarifies which items are in scope.

Certification

Your valid completion certificate

This course is for you:

  • Backend developers: looking to add a performance-focused language to their toolkit.

  • C or C++ programmers: wanting safer alternatives without sacrificing low-level control.

  • Hobbyist coders: eager to build CLI tools or small systems projects in Rust.

  • Computer science students: preparing for roles in systems, embedded, or infrastructure engineering.

  • DevOps engineers: interested in replacing shell scripts with robust, compiled Rust utilities.

  • Career changers: transitioning from web or scripting backgrounds into systems-level development.

What our students say

Your classes are perfect. I purchased the one-year package and finally have the opportunity to follow various topics of interest without needing to switch platforms... I thank you 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 presentation style and video transcription, which speeds up the process!
Luciana Alvarenga
Luciana AlvarengaNail Design Student
The platform is fast, simple to use. The diversity of content and complementary videos really help with learning.
André Felipe
André FelipePrompt Engineering Student

Top training programs

FAQ

Who is Dedika?

Is the certificate valid in Canada?

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