Choose your language
Rust Fundamentals Course
+400,000 professionals on the platform
Exclusive for businesses

Rust Fundamentals Course

Rust Fundamentals gives you the tools to write fast, safe, and reliable systems software from day one. You'll master ownership, borrowing, and lifetimes — the core ideas that make Rust unique — then apply them to concurrency, error handling, and real-world systems tasks. This course takes you from your first compiled program to professional-grade Rust code.

Dedika for students

What your team will master:

  • Configure a complete Rust toolchain and manage projects with Cargo from the ground up.

  • Apply ownership, borrowing, and lifetime rules to write memory-safe code without a garbage collector.

  • Build expressive data models using structs, enums, traits, and generics for type-safe design.

  • Handle errors explicitly and idiomatically with Result, Option, custom error types, and the ? operator.

  • Process data efficiently using standard collections, lazy iterators, and closures in composable pipelines.

  • Implement safe concurrent and asynchronous programs using threads, channels, Mutex, Arc, and async/await.

How your team learns in practice Rust Fundamentals Course

How your team practises Rust Fundamentals Course

Professionals from these companies study at Dedika

ActemiumFR
Nunner LogisticsNL
GT Constructora GeotécnicaCR
Sydel StarBR
Metrô de São PauloBR
Aguas AndinasCL
DSMIN
MeridianbetRS
CDHCN

Course content

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

Chapter 1See details

Getting Started with Rust

  • Lesson 1 • Installing and Configuring the Toolchain

    Walks through installing rustup, selecting toolchain versions, and configuring an editor. Ensures every student has a reproducible, working environment.

  • Lesson 2 • The Cargo Build System

    Introduces Cargo as Rust's official build tool and package manager. Students create, build, and run their first project using Cargo commands.

  • Lesson 3 • Writing and Running Your First Programme

    Guides students through a minimal Rust programme, explaining the main function, macros, and compilation output. Connects syntax to the broader language model.

  • Lesson 4 • Rust's Design Philosophy and Use Cases

    Covers Rust's goals of memory safety, performance, and concurrency without a garbage collector. Frames why these goals matter before writing any code.

Chapter 2See details

Core Syntax and Primitive Types

  • Lesson 1 • Functions and Basic Error Handling

    Defines functions with typed parameters and return values, and introduces panic vs. recoverable errors. Prepares students for the Result type covered in later chapters.

  • Lesson 2 • Control Flow Constructs

    Teaches if, loop, while, and for constructs, including their expression forms. Students write branching and iterative logic that compiles without warnings.

  • Lesson 3 • Variables, Mutability, and Shadowing

    Explains let bindings, the immutable-by-default rule, and shadowing semantics. Establishes Rust's strict approach to variable state early in the course.

  • Lesson 4 • Scalar and Compound Types

    Covers integers, floats, booleans, chars, tuples, and arrays. Students learn type inference, explicit annotations, and the limits of each type.

  • Lesson 5 • Expressions, Statements, and Blocks

    Distinguishes expressions from statements and shows how blocks return values. This expression-oriented model underpins idiomatic Rust code throughout the course.

Chapter 3See details

Ownership, Borrowing, and Lifetimes

  • Lesson 1 • Ownership Rules and Move Semantics

    Defines the three ownership rules and demonstrates how values move between scopes. Students trace ownership transfers to predict when values are dropped.

  • Lesson 2 • The Slice Type

    Covers string slices and array slices as reference types into contiguous data. Reinforces borrowing concepts with practical, commonly used data views.

  • Lesson 3 • Lifetime Annotations

    Explains lifetime parameters as a way to express reference validity relationships. Students annotate functions and structs to satisfy the borrow checker in complex scenarios.

  • Lesson 4 • Common Ownership Patterns

    Surveys idiomatic patterns such as cloning, returning owned values, and using Rc for shared ownership. Bridges theory to practical design decisions.

  • Lesson 5 • References and Borrowing

    Introduces shared and mutable references and the borrow checker's aliasing rules. Students learn to pass data without transferring ownership.

Chapter 4See details

Structs, Enums, and Pattern Matching

  • Lesson 1 • Methods and Associated Functions

    Attaches behaviour to structs via impl blocks, distinguishing methods from associated functions. Establishes the foundation for trait implementations in the next chapter.

  • Lesson 2 • Defining and Using Structs

    Covers named-field, tuple, and unit structs, plus struct update syntax. Students model real data and understand how ownership applies to struct fields.

  • Lesson 3 • Destructuring and Advanced Patterns

    Extends pattern matching to let, function parameters, and if-let chains. Students write concise code that handles multiple data shapes without nested conditionals.

  • Lesson 4 • Pattern Matching with match

    Teaches exhaustive match expressions, guards, and binding patterns. Students deconstruct complex data types safely and readably.

  • Lesson 5 • Enums and the Option Type

    Defines enums with data-carrying variants and explores Option as Rust's null-free alternative. Students replace nullable logic with exhaustive enum handling.

Chapter 5See details

Traits and Generics

  • Lesson 1 • Dynamic Dispatch with Trait Objects

    Contrasts static dispatch with dyn Trait for runtime polymorphism. Students choose between generics and trait objects based on performance and flexibility needs.

  • Lesson 2 • Generic Functions and Structs

    Introduces type parameters on functions and structs, enabling code reuse across types. Students write generic data structures and understand monomorphisation.

  • Lesson 3 • Common Standard Library Traits

    Covers Display, Debug, Clone, Copy, PartialEq, and Iterator as essential building blocks. Students derive or manually implement these traits to integrate with Rust's ecosystem.

  • Lesson 4 • Defining and Implementing Traits

    Introduces traits as shared behaviour contracts and shows how to implement them for custom types. Connects to the standard library's most common traits.

  • Lesson 5 • Trait Bounds and Where Clauses

    Constrains generic parameters with trait bounds to enable method calls on generic types. Students write readable bounds using both inline and where-clause syntax.

Chapter 6See details

Error Handling and the Result Type

  • Lesson 1 • Using Error-Handling Libraries

    Introduces popular crates that reduce error-handling boilerplate and improve ergonomics. Students evaluate when a library adds value over manual implementations.

  • Lesson 2 • Result<T, E> in Depth

    Examines Result's variants, combinators, and unwrap methods. Students understand when each method is appropriate and what it signals to callers.

  • Lesson 3 • Custom Error Types

    Guides students through defining domain-specific error enums and implementing standard error traits. Produces APIs with informative, structured error information.

  • Lesson 4 • The ? Operator and Error Propagation

    Shows how ? propagates errors up the call stack, reducing boilerplate. Students refactor verbose match blocks into concise, readable error-propagating functions.

  • Lesson 5 • Panic, Unwinding, and Abort

    Explains when panics are acceptable, how unwinding works, and how to catch panics. Students set a clear policy for panic use in libraries vs. applications.

Chapter 7See details

Collections, Iterators, and Closures

  • Lesson 1 • Standard Collections Overview

    Surveys Vec, HashMap, HashSet, BTreeMap, and VecDeque with their performance characteristics. Students select the right collection for each access and ordering requirement.

  • Lesson 2 • Closures and Captured Environments

    Defines closures as anonymous functions that capture their environment by reference or value. Students use Fn, FnMut, and FnOnce to express closure capabilities.

  • Lesson 3 • Iterator Adapters and Consumers

    Covers map, filter, flat_map, take, zip, and collect as the core adapter toolkit. Students compose lazy pipelines that execute only when consumed.

  • Lesson 4 • Performance and Allocation Awareness

    Analyses iterator zero-cost abstraction claims and common allocation pitfalls. Students profile simple pipelines and choose between iterators and manual loops when justified.

  • Lesson 5 • The Iterator Trait

    Explains the Iterator trait's next method and how it powers all iteration in Rust. Students implement a custom iterator to solidify the protocol.

Chapter 8See details

Concurrency and Async Rust

  • Lesson 1 • Async/Await Fundamentals

    Introduces the Future trait, async functions, and the await keyword for non-blocking I/O. Students understand how async differs from threads and when to prefer each.

  • Lesson 2 • Shared State with Mutex and Arc

    Combines Arc for shared ownership and Mutex for interior mutability across threads. Students build a thread-safe counter and understand lock poisoning.

  • Lesson 3 • Async Runtimes and Practical Patterns

    Surveys async runtimes, task spawning, and common async patterns like timeouts and select. Students run a complete async programme and handle concurrent tasks safely.

  • Lesson 4 • Threads and the Send and Sync Traits

    Spawns OS threads with std::thread and explains how Send and Sync enforce thread safety. Students understand why Rust prevents data races at the type level.

  • Lesson 5 • Message Passing with Channels

    Uses std::sync::mpsc channels to communicate between threads without shared state. Students implement producer-consumer patterns and understand channel backpressure.

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 guarantees without sacrificing raw performance.

  • DevOps engineer: needs to build reliable, self-contained CLI tooling for infrastructure automation.

  • Computer science student: ready to deepen understanding of memory management and type systems.

  • Hobbyist programmer: curious about systems programming and motivated to tackle a challenging language.

  • Career changer: targeting embedded or systems roles that demand low-level programming expertise.

Related Courses

FAQ

Who is Dedika?

Is the certificate valid in South Africa?

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