Description
Who Should Attend
This course is designed for developers looking to build capability in Rust, including:
• Software Engineers working in C, C++, or similar languages
• Embedded and Systems Developers
• Engineers interested in safe, high-performance programming
• Developers exploring modern alternatives to C/C++
Prerequisites
Participants should have:
• experience with at least one programming language (e.g. C, C++, Java, Python)
• understanding of basic programming concepts such as variables, functions, and control flow
Learning Objectives
By the end of this course, participants will be able to:
• understand the core principles of Rust programming
• apply Rust’s ownership and borrowing model
• write safe and efficient code without memory leaks or undefined behaviour
• use Rust’s type system to build robust applications
• handle errors using idiomatic Rust patterns
• develop concurrent applications using Rust’s safe concurrency model
• structure projects using Rust’s tooling and ecosystem
• apply Rust to systems or embedded programming scenarios
Course Content
Introduction to Rust and Development Environment
Participants begin by understanding Rust’s role and setting up the development environment.
Topics typically include:
• what Rust is and where it is used
• comparison with C/C++ and other languages
• installing Rust toolchain (cargo, rustc)
• project structure and workflow
• writing and running a simple Rust application
Core Language Fundamentals
Participants learn the building blocks of Rust programming.
Topics typically include:
• variables and mutability
• data types and type system
• control flow (if, match, loops)
• functions and modules
• pattern matching
Ownership, Borrowing, and Lifetimes
This section introduces Rust’s key differentiator: memory safety without a garbage collector.
Topics typically include:
• ownership rules
• borrowing and references
• mutable vs immutable borrowing
• lifetimes and scope
• avoiding data races and memory issues
Practical exercises:
• working with ownership and references
• resolving borrow checker errors
Structs, Enums, and Data Modelling
Participants learn how to model data effectively in Rust.
Topics typically include:
• defining and using structs
• enums and pattern matching
• methods and associated functions
• organising data and behaviour
Error Handling in Rust
This section focuses on building robust applications.
Topics typically include:
• Result and Option types
• error propagation
• panic vs recoverable errors
• idiomatic error handling patterns
Collections and Standard Library
Participants explore Rust’s standard library and data handling capabilities.
Topics typically include:
• vectors, strings, and hash maps
• iterators and functional-style programming
• working with collections efficiently
Concurrency in Rust
Participants learn how Rust enables safe concurrent programming.
Topics typically include:
• threads and concurrency model
• message passing and channels
• shared state and synchronization
• preventing data races at compile time
Project Structure and Tooling
Participants learn how to work with Rust in real-world development environments.
Topics typically include:
• Cargo build system and package management
• dependency management
• testing and benchmarking
• debugging and tooling
Practical Application and Exercises
The course includes hands-on exercises to reinforce learning.
Participants will:
• build small Rust applications
• apply ownership and concurrency concepts
• solve practical programming problems
• gain confidence through guided development tasks
Delivery Approach
This is a hands-on, developer-focused programme designed to build real capability.
It includes:
• instructor-led sessions
• guided coding exercises
• real-world examples and scenarios
• progressive development of applications
Duration
3 Days
Delivery Options
This course can be delivered as:
• a public scheduled course
• a private team programme
• virtual delivery
• on-site classroom training
Outcomes
After completing this course, participants will be able to:
• write safe and efficient Rust applications
• apply ownership and borrowing principles effectively
• build concurrent applications without data races
• use Rust tooling to manage projects and dependencies
• develop maintainable and high-performance systems
Additional Notes
This course provides a strong foundation for progression into:
• advanced Rust for systems and embedded development
• high-performance and low-level programming
• safe concurrent and distributed systems
Participants will gain a practical understanding of Rust that can be applied immediately in real-world development environments.



