• JetBrains logo
New

Rust Programming: Build Fast, Memory-Safe Software with JetBrains

Master Rust through hands-on coding and build fast, reliable, memory-safe software using professional JetBrains development tools.

  • Duration

    4 weeks
  • Weekly study

    4 hours
  • 100% online

    How it works
  • Digital upgrade

    Free

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.

Who developed the course?

JetBrains Academy

JetBrains Academy helps learners build tech skills with developer tools through project-based programming courses, hands-on practice, and in-IDE learning.

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:

  • Unlimited access to this course
  • Includes any articles, videos, peer reviews and quizzes
  • A PDF Certificate of Achievement to prove your success when you’re eligible
  • 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...