Rust Training Course (1-3 days) 

 

Note: this outline is our proposal, but the training can be tailored to your specific requirements upon prior request ahead of the proposed course date.

Why Learn Rust?

Rust is a system programming language that is developed by Mozilla and a community of contributors. It provides developers with control over memory use. Rust keeps a close relationship between the language’s primitive operations and those of the machines it runs on, that helps developers to anticipate the cost of code. Rust eliminates entire classes of bugs and security vulnerabilities and has zero-cost abstractions like C and C++.

Course details

This outline below covers both fundamental and advanced topics.

The final training outline will be designed depending on your particular requirements.

The practical exercises constitute a big part of the course time, besides demonstrations and theoretical presentations. Discussions and questions can be asked throughout the course.

Audience

Anyone interested in learning and exploring Rust programming language can attend this course. This course is well-suited for:

  • Systems Programmers

  • Developers interested in Rust

  • C/C++ Programmers

Prerequisites

  • There are no formal prerequisites for attending this course.

Course Outline

Getting Started with Rust Programming Language

  • Installation

  • First Rust Program

  • Programming Concepts

 

Introduction to Ownership

  • References and Borrowing

  • Slice Type

 

Using Structs to Structure Related Data

  • Defining and Instantiating Structs

  • Method Syntax

 

Enums and Pattern Matching

Manage Projects with Packages, Crates, and Modules

 

Exploring Collections

  • Storing Lists of Values with Vectors

  • Storing UTF-8 Encoded Text with Strings

  • Storing Keys with Associated Values in Hash Maps

 

Error Handling

  • Unrecoverable Errors with panic!

  • Recoverable Errors with Result

  • To panic! Or Not to panic!

 

Generic Types, Traits, and Lifetimes

Writing Automated Tests

  • How to Write Tests?

  • Controlling How Tests Are Run

  • Test Organisation

 

An I/O Project – Building a Command Line Program

Functional Language Features – Iterators and Closures

Cargo and Crates.io

  • Customise Builds with Release Profiles

  • Publish a Crate to Crates.io

  • Cargo Workspaces

  • Install Binaries from Crates.io with Cargo Install

  • Extend Cargo with Custom Command

 

Exploring Smart Pointers and Fearless Concurrency

Object-Oriented Programming Features of Rust

  • Object-Oriented Languages Characteristics

  • Using Trait Objects

  • Implementing an Object

 

Patterns and Matching

Build a Multithreaded Web Server