Global training solutions for engineers creating the world's electronics

Rust Fundamentals

Standard Level - Live Instructor-Led Training

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.

  • Fundamental principles of Rust
  • Language syntax basics
  • Rust's memory management with the ownership and borrowing principles
  • Project management
  • Advanced language constructs and abstract data types

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:

  • Fully indexed class notes creating a complete reference manual
  • Workbook full of practical examples and solutions to help you apply your knowledge


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

Course Dates

Please Enquire for Pricing

02 Jun 2025 ONLINE Americas Enquire
07 Jul 2025 ONLINE EurAsia Enquire
04 Aug 2025 ONLINE EurAsia Enquire

Looking for team-based training, or other locations?

Complete an enquiry form and a Doulos representative will get back to you.

Enquiry FormPrice on request

Next dates for this course