Free Online Training Events
Free Technical Resources
4 days (In-Person) 8 hours per day or
5 sessions (Live Online) 6 hours per session
Today’s software development requirements, in terms of complexity, reliability and scalability, mean that even the most diligent and experienced C or C++ programmers will create buggy code with potentially devastating consequences. However, the days of code development without a safety net are coming to an end. Intrinsically memory safe languages like Rust guarantee that, if the code compiles, it has no memory safety bugs inside it - now or in future. Whilst improving security, Rust can help resolve the most difficult source of bugs in software engineering.
Rust Fundamentals provides attendees with a full grounding in the Rust programming language. It is sufficient to get you started in your Rust programming journey. The syllabus, examples and exercises are tuned to the practical requirements for embedded software developers.
This training class is designed around interactivity and student engagement. The course lectures are interlaced with carefully designed workshops and hands-on interactive coding quizzes to reinforce the learning, and comprise approximately 50% of class time. Throughout the lectures, attendees are asked to run code snippets to demonstrate complex concepts, debug and refine the provided examples. These exercises will be achieved using a mix of web-based tools integral to the training material and a provided virtual-machine environment. After the training, the attendee will be able to keep the virtual-machine environment, to continue their learning experiments with a Rust based embedded software tool-kit.
Please contact Doulos for further information about this training.
Course overview video:
This course is designed as a general introduction to Rust programming.
It is suitable for embedded software engineers who need to gain a working knowledge of the Rust language to build an embedded system.
It is a prerequisite for the follow-on class Rust for Embedded Firmware. Please contact Doulos for further information about this training.
Rust Fundamentals does not assume a prior knowledge of C/C++ or assembly, however this would be an advantage.
Equally, embedded programming experience and microcontroller knowledge is not essential to participate to the training, but useful.
This course is not suitable as a first course in computer programming.
Doulos course materials are renowned for being the most comprehensive and user friendly available. Their unique style, content and coverage has made them sought after resources in their own right. The materials include:
Attendees will also be provided with virtual-machine environment to keep post-training to further their experiments with a Rust-based embedded software tool-kit.
The Virtual Machine (VM) needs to be downloaded and set up on your PC before the course begins. The size of the VM is approximately 9GB so it may take a few minutes to download depending on the internet speed. While configuring the VM, make sure you have at least 23GB of free space on your hard drive. You will get detailed instructions on how to set up the VM as part of the course joining instructions.
Rust Fundamentals will cover the topics below.
Integral to the course are hands-on sessions for almost all topics covered, complemented by a project developed through the course, which integrates the acquired knowledge with a working example that can be used as a basis for real projects.
Course Content
Rust application overview
Rust's 101 • How does Rust compare to other languages? • Safety features in the Rust language • Rust tools for embedded development • Memory control • Rust's embedded credentials
Rust language overview
Syntax rules and conventions • Declarations and statements • Rust expressions • Rust loops • Fields and scopes • Rust abstract data types
Data types in Rust
Scalar types • Type casting • Compound types
Rust Operators
Arithmetic operators • Logical operators • Relational operators • Type operators
Variables, Constants, Mutable
Scope of declaration • Mutability • Memory allocation
Control Flow
Conditional execution • Pattern matching • Rust Loops and early terminations
Ownership and Borrowing
The ownership paradigm • Shared references • Mutable references • Move versus copy types
Functions
Arguments list • Return values • Local declarations • Formal VS actual arguments' kind • Function pointers • Closures and functional programming
Advanced function definitions
Overloading • Lifetimes • Generic functions
More on Types
String types • Struct Types • Enumerated Types • Options and Results • The Box Type
Crates and modules
What are crates? • Commonly used crates in Rust • Creating and using crates • Crates in embedded Rust #![no_main] #![no_std] • What are modules? • Basic module implementation • Hierarchical modules • Managing abstraction with pub • pub use case with struct, enum, trait, mod • Accessing the module's content
Abstraction and Implementation
Generic and Traits
02 Jun 2025 | ONLINE Americas | Enquire |
07 Jul 2025 | ONLINE EurAsia | Enquire |
04 Aug 2025 | ONLINE EurAsia | Enquire |
Complete an enquiry form and a Doulos representative will get back to you.
Enquiry FormPrice on request