66 lines
3.9 KiB
Markdown
66 lines
3.9 KiB
Markdown
# 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]). 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](mailto:nathan@agileperception.com) 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 - Idiomatic Rust](https://github.com/CleanCut/ultimate_rust2/tree/main/exercise/idiomatic)
|
|
- [Exercise - Documentation](https://github.com/CleanCut/ultimate_rust2/tree/main/exercise/docs)
|
|
- [Exercise - Closures & Iterators](https://github.com/CleanCut/ultimate_rust2/tree/main/exercise/closures_iterators)
|
|
- [Exercise - Common Traits](https://github.com/CleanCut/ultimate_rust2/tree/main/exercise/traits)
|
|
- [Exercise - Errors](https://github.com/CleanCut/ultimate_rust2/tree/main/exercise/errors) - See also Jane Lusby's 2020 RustConf Session, [Error Handling Isn't All About Errors]
|
|
- [Exercise - Testing](https://github.com/CleanCut/ultimate_rust2/tree/main/exercise/testing)
|
|
- [Exercise - Logging](https://github.com/CleanCut/ultimate_rust2/tree/main/exercise/logging)
|
|
- [Exercise - Threads & Channels](https://github.com/CleanCut/ultimate_rust2/tree/main/exercise/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](license/APACHE) and [license/MIT](license/MIT).
|
|
|
|
## Sponsor
|
|
|
|
If you like the work I do, please consider sponsoring me [on GitHub] or [on Patreon]. 💖
|
|
|
|
[exercises]: https://github.com/CleanCut/ultimate_rust2#exercises
|
|
[`example/`]: https://github.com/CleanCut/ultimate_rust2/blob/main/example
|
|
[open an discussion]: https://github.com/CleanCut/ultimate_rust2/discussions/new
|
|
[Ultimate Rust Crash Course]: https://agileperception.com/ultimate_rust_crash_course
|
|
[Rust in 3 Weeks]: https://agileperception.com
|
|
[Ultimate Rust 2: Intermediate Concepts]: https://github.com/CleanCut/ultimate_rust2
|
|
[the repository for the previous course]: https://github.com/CleanCut/ultimate_rust_crash_course
|
|
[on GitHub]: https://github.com/sponsors/CleanCut
|
|
[on Patreon]: https://patreon.com/nathanstocks
|
|
[Error Handling Isn't All About Errors]: https://www.youtube.com/watch?v=rAF8mLI0naQ
|