Ultimate Rust 2: Intermediate Concepts
This is the companion repository for the Ultimate Rust 2: Intermediate Concepts
(the followup to the popular Ultimate Rust Crash Course). UR2IC will be published independently online in the second half of 2021 and is also presented live as part of some O'Reilly virtual events such as Rust in 3 Weeks, or taught in-person for corporate training. You will get the most out of this training experience by doing the exercises in this repository and watching (or attending) the instructor-led training.
In other words, this repository is for you hands-on-learners!
I use macOS, and that is what I developed this course on. Everything ought to work similarly on major Linux distributions and Windows. Please contact me ASAP if you have trouble with anything on this page.
Just getting started with Rust? Check out the prerequisite for this course: Ultimate Rust Crash Course
Install Rust & Prepare Your Development Environment
Rust is required for this course! The latest stable version is always recommended. See the repository for the previous course for instructions on how to install Rust, prepare your development environment, and helpful resources.
Exercises
Please clone this repository! These exercises are designed as Rust projects for you to edit on your own computer.
The exercises are separate Rust projects inside the exercises/
subdirectory. For each exercise, you should:
- Open the corresponding
exercise/EXERCISE_NAME
directory in your IDE/Editor - Navigate to the same directory with your Terminal application (so you can run
cargo run
, etc.) - Open up the
src/main.rs
file. - Follow the numbered exercise instructions in the code comments.
If you encounter any problems with the exercises, please feel free to use the online course communication tools to contact me, or open an discussion. Either way.
For your convenience, here is a list of all the exercises, with links to view the code on GitHub.
- Exercise 1 - Idiomatic Rust
- Exercise 2 - Documentation
- Exercise 3 - Closures & Iterators
- Exercise 4 - Common Traits
- Exercise 5 - Errors - See also Jane Lusby's 2020 RustConf Session, Error Handling Isn't All About Errors
- Exercise 6 - Testing
- Exercise 7 - Logging
- Exercise 8 - Threads & Channels
Examples
This course goes over a lot of code in lecture format. Much of the code from the lectures can be found in the example/
directory in this repository.
Contribution
All contributions are assumed to be dual-licensed under MIT/Apache-2.
License
Distributed under the terms of both the MIT license and the Apache License (Version 2.0).
See license/APACHE and license/MIT.
Sponsor
If you like Rusty Engine, please consider sponsoring me on GitHub or on Patreon.