Remote Workshop: Learn Rust, starting from scratch

Rust is a general-purpose programming languages that's been growing in popularity over the past few years. It's known for its strong type system, its focus on safety and performance, and its modern tooling.

We designed this workshop to help you get started with Rust, assuming no prior knowledge of the language.

The workshop starts from the absolute basics and gradually builds up to more advanced topics, interleaving theory with practice.

The goal is to offer you a coherent learning path that provides the right level of challenge at every step, without being overwhelming.

By the end of the workshop, you will have a solid understanding of the Rust language, its standard library, and its testing and async programming capabilities. You will be well equipped to start your Rust journey!

Tickets

Schedule

January 30th, 2025

2:00pm – 6:00pm CET
Workshop – Day 1

January 31st, 2025

2:00pm – 6:00pm CET
Workshop – Day 2

February 6th, 2025

2:00pm – 6:00pm CET
Workshop – Day 3

February 7th, 2025

2:00pm – 6:00pm CET
Workshop – Day 4

February 13th, 2025

2:00pm – 6:00pm CET
Workshop – Day 5

February 14th, 2025

2:00pm – 6:00pm CET
Workshop – Day 6

February 20th, 2025

2:00pm – 6:00pm CET
Workshop – Day 7

February 21st, 2025

2:00pm – 6:00pm CET
Workshop – Day 8

Additional Information

Mainmatter Workshop: Learn Rust, starting from scratch


Duration & location

The workshop takes place over eight afternoons on Thursdays and Fridays over 4 weeks from January 30th to February 21st, 14:00 to 18:00 CET each. That allows participants to use the mornings to exercise or keep up with work.

The workshop is run completely online and remote.


Number of participants

To ensure the highest quality, we accept up to 20 participants.


For whom?

The course doesn't assume any prior knowledge of Rust, but it assumes you know at least another programming language. It also doesn't assume any prior knowledge of systems programming or memory management. Those topics will be covered in the course.

Prerequisites

We will send a detailed list of instructions for preparation, including the installation of tools, etc. Additionally, we will share a Github project with workshop materials. This information will be provided closer to the workshop date.


Workshop Contents

  1. We will cover the tools that every Rust developer should have in their toolbox: rustup (toolchain management), cargo (build system and package manager), clippy (linter), rustfmt (formatter), and rustdoc (documentation generator).
  2. We will cover in detail the core constructs of the Rust language: syntax, control flow, pattern matching, type system (traits), ownership and borrowing, polymorphism (generics and trait objects), closures and Fn* traits, and panics.
  3. Writing Rust programs is significantly easier if you have mastered the standard library. We will cover the most important parts of the standard library, including: primitive types, strings and string slices, collections and iterators, conversion traits, smart pointers (Box, Arc, Rc), nullability handling (Option), error handling (Result), and concurrency primitives (threads, channels, locks).
  4. We will build up your Rust's testing toolkit. We will start from scratch, with your first unit test. By the end, you will have a comprehensive understanding of the available test types, the best practices in terms of test organization as well as their runtime implications. You will be well equipped for the testing challenges ahead of you!
  5. We will cover the basics of asynchronous programming in Rust, including: the Future trait, async functions, the .await operator, spawning tasks, an overview of tokio (the most popular async runtime in Rust), as well as common pitfalls.


Workshop facilitators

Luca Palmieri builds technology products for a living and is Mainmatter's Principal Engineering Consultant. His current focus is on backend development, software architecture and the Rust programming language. He is the author of "Zero to Production in Rust" and Mainmatter's Rust expert.

Henk is a seasoned Rust engineer with experience in backend development and embedded software engineering, working as Rust Engineering Consultant at Mainmatter. Henk is maintainer of teach-rs, the modular, reusable university course platform for Rust. As a member of Rust's Embedded devices Working Group, Henk helps out creating educational material for using Rust on limited systems.


About Mainmatter

Mainmatter is an engineering consultancy that helps teams adopt and succeed with Rust. We offer strategic advice, training, and team reinforcement. We are also the organizers behind the EuroRust conference.