100 Exercises to Learn Rust
Unlock Rust mastery and IDE confidence with Luca Palmieri’s 100 expert-designed challenges—powered by RustRover.
About this course
Based on 100 Exercises to Learn Rust by Luca Palmieri, this course gives you a hands-on, test-driven path through Rust, starting with your first println! and progressing to advanced concepts like ownership, lifetimes, pattern matching, and generics.
Each challenge begins as a failing unit test. Your job? Write just enough code to make it pass and then refine it with instant feedback inside RustRover, the industry-trusted IDE for Rust. With guided setup, inline tests, intelligent autocomplete, and zero configuration hassle, you can focus entirely on learning by coding.
By the end, you'll have solved 100 curated problems, written clean and idiomatic Rust, and gained both language mastery and the confidence to work in a professional Rust development environment.
This course runs directly in your JetBrains IDE
Content
- Introduction
- Integers
- Variables
- Branching if-else
- Panics
- Factorial
- Loops while
- Loops for
- Overflow and underflow
- Saturating arithmetic
- Conversions - as casting
- Introduction
- Structs
- Validation
- Modules
- Visibility
- Encapsulation
- Ownership
- Setters
- Stack
- Heap
- References in memory
- Destructors
- Outro
- Introduction
- Trait
- Orphan rule
- Operator overloading
- Derive macros
- Trait bounds
- String slices
- Deref trait
- Sized trait
- From trait
- Associated vs generic types
- Clone trait
- Copy trait
- Drop trait
- Outro
- Introduction
- Enums
- Branching - match
- Variants with data
- Branching - if let and let-else
- Nullability
- Fallibility
- Unwrap
- Error enums
- Error trait
- Packages
- Dependencies
- thiserror
- TryFrom trait
- Error - source
- Outro
- Introduction
- Arrays
- Vectors
- Resizing
- Iterators
- Iter
- Lifetimes
- Combinators
- impl Trait
- impl Trait, pt.2
- Slices
- Mutable slices
- Two states
- Index trait
- IndexMut trait
- HashMap
- BTreeMap
- Introduction
- Threads
- 'static lifetime
- Leaking memory
- Scoped threads
- Channels
- Interior mutability
- Ack pattern
- Client
- Bounded channels
- Patching
- Mutex, Send and Arc
- RwLock
- Without channels
- Sync trait
- Introduction
- Asynchronous functions
- Spawning tasks
- Runtime
- Future trait
- Blocking the runtime
- Async-aware primitives
- Cancellation
- Outro
Learn with the tools developers use every day
What do you need to start?
The JetBrains Toolbox App 2.6+ makes setting up your course effortless. Already have a compatible IDE? It will launch it. If not, the app will install the right free IDE for your course.
Learn more about our licences here.
Click Launch course and then Allow to open the Toolbox App.
Select Always Allow to skip this confirmation in the future.
To return to the course later, find it in your IDE's recent projects.
Need more help? Check out our guide.
The JetBrains Toolbox App 2.6+ makes setting up your course effortless. Already have a compatible IDE? It will launch it. If not, the app will install the right free IDE for your course.
Learn more about our licences here.
Click Launch course and then Allow to open the Toolbox App.
Select Always Allow to skip this confirmation in the future.
To return to the course later, find it in your IDE's recent projects.
Need more help? Check out our guide.
FAQ and troubleshooting
Yes, you will need the JetBrains Toolbox App and a JetBrains IDE.
But don’t worry! Just click the Open course button and then select Allow in the resultant popup to install the JetBrains Toolbox App. We've taken care of all the necessary settings, and the app will handle the rest of the setup for you.
The JetBrains Toolbox App checks which IDE is compatible with your course and whether it is installed on your computer. If you have the necessary IDE installed, the app will open it. If not, JetBrains Toolbox will initiate the installation, prioritizing free community editions.
Yes, the JetBrains Toolbox App is essential even if you already have a JetBrains IDE. It automatically prepares your IDE for studying by installing the essential plugins and updating the IDE if necessary.
Please make sure your version of the JetBrains Toolbox App is 2.6 or newer. To update, open the app and click Update Toolbox App to 2.6.x., or download the latest version here.