It wasn't always so clear, but the Rust programming language is fundamentally about empowerment: no matter what kind of code you are writing now, Rust empowers you to reach farther, to program with confidence in a wider variety of domains than you did before.
Rust Book's Foreword
In this bootcamp, you will participate in the Rust Incubator, a rigorous, step-by-step Rust certification program 🏆. The aim of this program is to shape you into a proficient Junior Rust Developer. Indeed, with this rigorous training, you will find yourself better prepared than developers switching from other languages without a similar level of instruction. If you are a mid- or senior-level developer transitioning to Rust, you can confidently target Middle-level positions after achieving this certification.
Before you start the certification program, you need to have confident knowledge of Rust and Git/GitHub. The Rust Book is a must. Nice if you did Rustlings and Exercism and had some practice. If you are a switcher, this certification program will also be useful for you.
Participants in the boot camp will be divided into several small groups. Group meetings will occur four times a week, excluding weekends. These meetings will provide an opportunity to discuss and answer any questions, and you should also expect to answer questions posed by your mentor. Our learning process is designed around daily skill development, leveraging the best learning materials available.
We provide an interactive platform for tracking your progress. You will be tasked with designing, developing, and presenting a capstone project. Finally, you will undergo a final assessment at the end of the certification program. Successful completion will earn you a certificate, a testament to your ability to utilize best practices and write idiomatic code that will impress your employer.
Fork the Rust Incubator into a private repo. For each exercise, you'll need to create separate pull requests. Then, when the reviewer checks and approves your pull request, you can merge it into the master/main branch. After that, the exercise will be considered done.
- Create a new GitHub repository for yourself using this one as template. Remember to make it private.
- Invite as a collaborator of your repository our bot.
Look here for more detailed instructions, and here you can find FAQ.
NOTE: This learning course is constantly improving and evolving over time.
To be up-to-date with the recent changes in your own copy of this repository, attach the upstream history with the following commands:
git remote add upstream https://github.com/rust-lang-ua/rust_incubator.git git fetch upstream main git merge upstream/main --allow-unrelated-historiesAnd then, whenever you want to grab some new changes, do the following:
git fetch upstream main git merge upstream/mainAdditionally, to be aware of new changes, you may either watch this repository on GitHub, or even track it via RSS subscription.
Each step must be performed as a separate PR (pull request) with an appropriate name and check-marked here in README's schedule after completion. Each step is a Cargo workspace member, so you can run/test it from the project root (i.e. cargo run -p step_1_8). Consider using rustfmt and Clippy when you're writing Rust code.
Each step has an estimated time for completion. If any deeper investigation on the step's theme is needed by you, then it's on your own.
Do not hesitate to ask your mentor/lead with questions, however, you won't receive any concrete answer, but rather a direction for your own investigation. Mentor/Lead is the one who asks questions here, demanding concrete and complete answers.
- 0. Become familiar with Rust basics (1 week)
- 1. Concepts (2 weeks)
- 2. Idioms (2 weeks)
- 3. Ecosystem (3 weeks)
- 3.1. Testing and mocking
- 3.2. Declarative and procedural macros
- 3.3. Date and time
- 3.4. Regular expressions and custom parsers
- 3.5. Collections and iterators
- 3.6. Serialization and deserialization
- 3.7. Randomness and cryptography
- 3.8. Logging and tracing
- 3.9. Command-line arguments, environment variables and configs
- 3.10. Multithreading and parallelism
- 3.11. Async I/O, futures and actors
- 3.12. Summary Task
- 4. Backend ecosystem (2 weeks)
- Agree your capstone project
- 5. Zero To Production (2 weeks)
- 6. Capstone Project (1 week)
- 🧭 Orientation - how to get the maximum out of bootcamp
- ⏩ Getting Started.
- ❓ FAQ - frequently asked questions
- 🎓 Collection of Awesome Rust Learning Materials
- 🌐 Zero To Production - back-end focused book
- The book as a series of articles
- 🏫 Exercism provides coding exercises with mentoring.
- ❔ Rust Quiz is medium to hard Rust questions with explanations.
Perhaps you are not ready to become certified? That's okay. Follow these links if you find the incubator too hard.
- 👣️ Step-by-Step Introduction to Rust
- 👶 Rustlings are small exercises to get you used to reading and writing Rust code.
- 📁 Awesome list of Learning Materials on Git - must have so far
- 📘 Rust Book - must have so far, but we encourage to reread it