Rust Programming: Build Fast, Memory-Safe Software with JetBrains
Learn Rust Programming
Rust combines the speed and control of systems programming with powerful safeguards that catch memory problems before your code ever runs.
Learn by coding, not reading
Rust is famous for having a steep learning curve, and reading a textbook cover-to-cover rarely makes it click. This course is based on ‘The Rust Programming Language’, the official Rust book, and draws on Rustlings exercises to turn key concepts into practical, bite-sized coding tasks.
You’ll write code directly inside a JetBrains IDE – the exact tool professional Rust developers use every day. With instant feedback on every line you write, you’ll fight the compiler less and actually build memory-safe programs step by step.
Week 1: Core Syntax & The Ownership Model
Get up and running with Rust basics: variables, functions, and control flow. Then tackle Rust’s most critical concept: ownership, references, and borrowing.
Week 2: Structuring Data & Handling Errors
Learn how to model real-world data using structs, enums, and pattern matching. Master standard collections like vectors and hash maps, and learn how to write crash-resilient code using Option and Result.
Week 3: Reusable Code & The Standard Library
Write clean, flexible code using generics and traits. Work through lifetimes without the headache, and harness standard library workhorses like iterators, closures, and smart pointers.
Week 4: Concurrency & Metaprogramming
Run code in parallel with total confidence. Learn how Rust prevents data races using threads and message passing, and get a hands-on introduction to writing custom macros.
Syllabus
Week 1
Getting Started with Rust
Introduction
Get familiar with the course, set up your Rust development environment, and prepare the tools you’ll use throughout your learning journey.
Common Programming Concepts
Learn how Rust handles variables, data types, functions, conditions, tuples, arrays, and loops, and practise these core programming concepts.
Understanding Ownership
Explore Rust’s ownership system, borrowing, references, and slices, and understand how they help Rust manage memory safely.
Week 2
Building Robust Rust Programs
Structs, Methods, Enums, and Pattern Matching
Learn to model data with structs and enums, define methods, and use pattern matching to handle different values and program states.
Modules
Learn how Rust’s module system helps organise code, control scope and privacy, and structure programs across modules and files.
Common Collections
Explore vectors, strings, and hash maps, and learn how to store, access, update, and work with collections of data in Rust.
Error Handling
Learn how Rust handles recoverable and unrecoverable errors using panic, Result, and related techniques for building more reliable programs.
Week 3
Writing Flexible and Reliable Rust
Generic Types, Traits, and Lifetime
Learn how generics, traits, and lifetimes help you write reusable Rust code while keeping type and memory safety.
Writing Automated Tests
Learn how to write and organise automated tests in Rust, check expected behaviour, and use testing tools to improve code reliability.
Standard Library Types
Explore useful Rust standard library types and learn how they help represent, transform, and work with values in real programs.
Week 4
Taking Rust Further
Fearless Concurrency
Learn how Rust approaches concurrency with threads, message passing, shared state, and its type system to help prevent common concurrency errors.
Macros
Discover how Rust macros generate code, learn the basics of declarative macros, and see how macros can reduce repetition in your programs.
When would you like to start?
Start straight away and join a global classroom of learners. If the course hasn’t started yet you’ll see the future date listed below.
Available now
Learning on this course
On every step of the course you can meet other learners, share your ideas and join in with active discussions in the comments.
What will you achieve?
By the end of the course, you‘ll be able to...
- Describe the core concepts of Rust, including variables, data types, functions, control flow, ownership, borrowing, references, and slices.
- Apply Rust’s ownership and borrowing rules to write memory-safe code without relying on a garbage collector.
- Demonstrate the use of generics, traits, lifetimes, iterators, and other standard library types in practical Rust code.
- Develop automated tests to check expected program behaviour and improve code reliability.
- Evaluate which Rust language features and data structures are appropriate for different programming tasks.
Who is the course for?
This course is for programmers, students, and engineers who already know basic programming logic (like loops and functions in another language) and want to get into modern systems programming. If you want to learn Rust by actually writing code rather than just reading theory, this course is built for you.
What's included?
JetBrains Academy are offering everyone who joins this course a free digital upgrade, so that you can experience the full benefits of studying online for free. This means that you get:
Learning on FutureLearn
Your learning, your rules
- Courses are split into weeks, activities, and steps to help you keep track of your learning
- Learn through a mix of bite-sized videos, long- and short-form articles, audio, and practical activities
- Stay motivated by using the Progress page to keep track of your step completion and assessment scores
Join a global classroom
- Experience the power of social learning, and get inspired by an international network of learners
- Share ideas with your peers and course educators on every step of the course
- Join the conversation by reading, @ing, liking, bookmarking, and replying to comments from others
Map your progress
- As you work through the course, use notifications and the Progress page to guide your learning
- Whenever you’re ready, mark each step as complete, you’re in control
- Complete 90% of course steps and all of the assessments to earn your certificate
Want to know more about learning on FutureLearn? Using FutureLearn
Get a taste of this course
Find out what this course is like by previewing some of the course steps before you join:
Do you know someone who'd love this course? Tell them about it...
More courses you might like
Learners who joined this course have also enjoyed these courses.
Browse more in IT & Computer Science and Science, Engineering & Maths
