Workshop: 4 days
Learn Rust, starting from scratch
Workshop description
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!
The workshop is designed for software developers who have never used Rust before, but it assumes you're familiar with at least another programming language.
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).
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.
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).
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!
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.