Back to courses

Rust Programming: The Complete Developer's Guide

Learn the Rust programming language from scratch! Learn how to code and build your own real-world applications using Rust so that you can get hired this year. No previous programming or Rust experience needed.

25 Days

Average time students take to complete this course.

instructor
Taught by: Jayson Lennon
Last updated: March 2024

Course overview

We guarantee you that this is the most comprehensive and up-to-date Rust programming course that you can find to go from absolute beginner to learning the fundamentals of programming and getting hired as a Rust developer this year.

What you'll learn

  • Fundamentals of computer programming concepts such as conditional logic, loops, and data transformations
  • Foundational computer science topics such as computer memory, program logic, and simple data structures
  • Working with data: enums, structs, tuples, expressions, optional data and more
  • Solid understanding of all core concepts of the Rust programming language such as: memory, mutability, traits, slices, and generics
  • Reading and writing application code in the Rust programming language
  • Utilization of the Rust ecosystem to develop applications more efficiently
  • How to translate real-life requirements into working applications to solve real-world problems (and that you can add to your portfolio)
  • How to make your programs reliable through the use of automated testing and by leveraging features of the Rust language

Students continue to tell us that this course is the perfect complement to the official Rust-Lang Book (which is also a fantastic resource).

Why?

Because this course is focused on learning by doing, not watching endless tutorials with nothing to show for it. You are going to learn Rust by actually coding along and building your own Rust projects.

And you won't be learning Rust alone.

Because by enrolling today, you’ll also get to join our exclusive live online community classroom so that you'll be learning alongside thousands of students, alumni, mentors, TAs and Instructors.

Active. Thriving. Supportive. Helpful. Friendly. Motivating. Essential.

These are just a few of the words students use to describe the ZTM Discord which is also one of the biggest and most active developer communities on Discord.

Most importantly, you will be learning from (and with) Jayson, an industry expert that has actual real-world experience using Rust to build applications for companies.

But I don't know anything about Rust or programming!?

Perfect. This Rust programming course is built for you, the complete beginner who wants to learn how to code without getting overwhelmed by technical jargon and computer science topics.

We will start by teaching you the core programming concepts necessary to get started building applications while also providing a solid foundation for future learning.

The best way to learn programming is to actually DO IT!

That's why you will be writing engaging and interesting programs as quickly as possible.

How, you ask? This course features 30 coding exercises to complement the lectures, and are designed with real-world applications in mind.

Each exercise presents a problem with hints on how to implement a solution, so you can get the practice you need to be successful. The exercises are accompanied with a video demonstrating a possible implementation for the exercise, and line-by-line commentary on how the code accomplishes the task and why it works.

The information in this course is introduced in a thoughtful order, which means you will always be aware of what every bit of code in a program is doing, and how it works the way it does.

There is no need to wait until later in the course, or to study more advanced topics, in order to fully understand the code when presented.

This is accomplished by building up your knowledge through concise, easy to follow lectures that can be reviewed quickly.

By the end of this Rust course, you will learn:

  • Critical concepts necessary to work with code, without overwhelming detail
  • Creation of digital solutions for real-world problems
  • Reading and writing application code in the Rust programming language
  • Utilization of the Rust ecosystem to efficiently develop applications
  • Automated testing to enhance the reliability of your solutions
  • How to make your projects easier to work with through the use of generated documentation
  • Foundational computer science topics such as computer memory, program logic, and simple data structures

So this is just another course for beginners?

Come on now, is that a serious question?! We're Zero To Mastery. We would never do that to you. We go beyond the basics.

This course isn't just for beginner programmers, but any programmer who wishes to learn Rust.

If you have experience coding in a high level memory-managed language such as Python, JavaScript, or C#, then this course is a great introduction to the Rust programming language (which is a low-level programming language) and its unique memory model and syntax.

We also make sure to cover intermediate and advanced topics so that you can build projects can cut it in the real-world.

Check out the full list of lessons if you haven't already to see everything that is covered.

Like all of our courses, this course isn't about making you just code along without understanding the principles so that when you are done with the course you don’t know what to do other than watch another tutorial... No!

This course will push you and challenge you to go from an absolute beginner to someone that can build your own real-world Rust applications and get hired as a Rust developer 💪.

Graduates of Zero To Mastery are now working at Google, Tesla, Amazon, Apple, IBM, JP Morgan, Facebook, Shopify + other top tech companies.

They are also working as top freelancers getting paid while working remotely around the world.

And they come from all different backgrounds, ages, and experiences. Many even started as complete beginners.

So there's no reason it can't be you too.

When's the best time to get started? Today!

There's never a bad time to learn in-demand skills. But the sooner, the better. So start learning Rust today by joining the ZTM Academy. You'll have a clear roadmap to developing the skills to build your own projects, get hired, and advance your career.

Join Zero To Mastery Now

What you'll build

The best way you learn is by doing. Not just watching endless tutorials. That's why a key part of this course is the 30 coding exercises you'll complete and the real-world projects that you'll get to build. Plus they'll look great on your portfolio.

Billing App

Billing App

Get a firm grasp of Rust programming language fundamentals by creating an interactive CLI application to manage bills or expenses through the use of data structures and functions available in the standard library.

ClipStash

ClipStash

Learn how to write a high-performance web application by utilizing threaded and asynchronous programming by creating a clipboard web service featuring Handlebars template rendering, state and cookie management, and database connections.

Join Zero To Mastery Now

Don't just take our word for it

Our courses and community have helped 1,000s of Zero To Mastery students go from zero to getting hired to levelling up their skills and advancing their careers to new heights.

Awesome course. I'm so glad I found this course. I'm really enjoying the style and pace of this course. I'm finally learning Rust!

John Lupine

Excellent, clear, concise and structured presentation. No snags to get caught on, fast-pacing is a breeze.

Filip Filipovic

This is an absolutely fantastic course! It's clear that Jayson has put a lot of time and energy into creating this amazing source of knowledge for beginner Rust developers. I'll recommend it to everyone around me who wants to learn this language!

Attila Bakos

This course was excellent! I've worked professionally in Software Engineering for over a decade now and was skeptical at first, but the presentation style, demos, & activities were presented so clearly that I'm now a believer. Please do a follow-up course!

Peter Stratton

It was really tough to find a good way to start learning rust, as it isn't really an easy language to learn, but I feel like this course gave me the knowledge and confidence to start creating my own things in rust. Great course, will recommend.

Raymond Lieu

Course curriculum

To make sure this course is a good fit for you, you can start learning Rust for free right now by clicking any of the PREVIEW links below.

Intoduction

4 lectures

Rust Programming: The Complete Developer's Guide2:46

PREVIEW

Exercise: Meet Your Classmates and Instructor

BEGIN

Course Projects + Code + Slides + Cheatsheet

BEGIN

How-to's: Speed up videos, Downloading videos, Subtitles

BEGIN

Rust Fundamentals

13 lectures

Intro2:26

PREVIEW

Data Types2:25

PREVIEW

Variables6:35

PREVIEW

Functions8:12

PREVIEW

println!3:04

PREVIEW

Control Flow with If8:38

PREVIEW

Repetition6:30

PREVIEW

Setup Rust4:49

PREVIEW

Comments3:36

PREVIEW

Activity: Functions7:08

PREVIEW

Numeric Types & Basic Arithmetic3:36

PREVIEW

Activity: Basic Math5:27

PREVIEW

Unlimited Updates

BEGIN

Making Decisions with Rust

7 lectures

Control Flow: If & Else2:33

PREVIEW

Activity: Logic with If & Else3:59

BEGIN

Activity: Logic with If & Else4:59

BEGIN

Match Expression4:25

BEGIN

Demo: Basic Match3:11

BEGIN

Activity: Basic Match 14:03

BEGIN

Activity: Basic Match 25:11

BEGIN

Repetition

4 lectures

The Loop Expression4:48

BEGIN

Activity: Loops4:58

BEGIN

The While Loop3:22

BEGIN

Activity: While Loops4:45

BEGIN

Working With Data

12 lectures

Enums3:11

BEGIN

Demo: Enums3:43

BEGIN

Activity: Enums6:09

BEGIN

Structs2:47

BEGIN

Demo: Structs2:51

BEGIN

Activity: Structs9:27

BEGIN

Tuples3:31

BEGIN

Demo: Tuples5:49

BEGIN

Activity: Tuples5:55

BEGIN

Expressions3:49

BEGIN

Demo: Expressions5:09

BEGIN

Activity: Expressions7:11

BEGIN

Rust's Memory Model

4 lectures

Intermediate Memory Concepts3:34

BEGIN

Ownership6:17

BEGIN

Demo: Ownership6:06

BEGIN

Activity: Ownership4:57

BEGIN

Data Collections

8 lectures

Implementing Functionality9:20

BEGIN

Activity: Implementing Functionality16:30

BEGIN

The Vector Data Structure4:53

BEGIN

Vector Basics & For Loops2:28

BEGIN

Activity: Vectors & For Loops6:47

BEGIN

About Strings4:00

BEGIN

Demo: Strings4:28

BEGIN

Activity: Strings7:23

BEGIN

Expanding Knowledge

11 lectures

Deriving Functionality6:08

BEGIN

Type Annotations4:07

BEGIN

Enums Revisited3:59

BEGIN

Demo: Advanced Match7:57

BEGIN

Activity: Advanced match10:42

BEGIN

The Option Type6:26

BEGIN

Demo: Option4:26

BEGIN

Activity: Option5:01

BEGIN

Generating Documentation2:24

BEGIN

Standard Library API docs3:33

BEGIN

Activity: Standard Library API docs3:46

BEGIN

Fallible Functions

4 lectures

The Result Type4:40

BEGIN

Demo: Result14:16

BEGIN

Activity: Result6:40

BEGIN

Activity: Result & The Question Mark Operator7:51

BEGIN

Data Collection: HashMap

3 lectures

The HashMap Data Structure4:20

BEGIN

Working With HashMaps5:32

BEGIN

Activity: HashMap Basics8:26

BEGIN

Easier Data Management

10 lectures

Basic Closures4:41

BEGIN

Map Combinator5:01

BEGIN

Activity: Map Combinator8:07

BEGIN

Option Combinator Pattern7:49

BEGIN

Activity: Option Combinators4:23

BEGIN

Using Iterators9:12

BEGIN

Activity: Using Iterators5:14

BEGIN

Ranges1:58

BEGIN

If..let..else2:58

BEGIN

while..let2:06

BEGIN

Managing Code

8 lectures

Inline Modules4:02

BEGIN

Activity: Inline Modules10:17

BEGIN

Testing6:52

BEGIN

Activity: Testing7:42

BEGIN

External Crates6:28

BEGIN

Activity: Adding an External Crate4:44

BEGIN

External Modules10:27

BEGIN

Activity: External Modules9:54

BEGIN

Milestone Project: Billing Application

9 lectures

Gathering User Input14:21

BEGIN

Activity: Gathering User Input22:47

BEGIN

Mini Project: Introduction2:44

BEGIN

Retrieve User Input3:16

BEGIN

Creating The Main Menu Loop7:14

BEGIN

Required Data Structures4:10

BEGIN

Implementation: Adding & Viewing Bills13:00

BEGIN

Implementation: Removing Bills6:50

BEGIN

Implementation: Editing Bills9:15

BEGIN

Shared Functionality

15 lectures

Traits4:54

BEGIN

Demo: Traits4:58

BEGIN

Activity: Traits5:58

BEGIN

Implementing The "Default" Trait2:28

BEGIN

Generics & Functions13:54

BEGIN

Demo: Generics & Functions6:22

BEGIN

Activity: Generics & Functions5:52

BEGIN

Generic Structures10:06

BEGIN

Generic Structures & impl Blocks7:58

BEGIN

Demo: Generics & Structures6:38

BEGIN

Activity: Generics & Structures10:18

BEGIN

Advanced Memory Concepts8:50

BEGIN

Trait Objects11:35

BEGIN

Demo: Trait Objects7:26

BEGIN

Activity: Trait Objects8:35

BEGIN

Lifetimes

4 lectures

Ownership & Lifetimes9:03

BEGIN

Demo: Lifetimes8:32

BEGIN

Activity: Lifetimes & Structures10:49

BEGIN

Activity: Lifetimes & Functions4:47

BEGIN

Improving Program Reliability

16 lectures

Custom Error Types8:51

BEGIN

Demo: Custom Error Types8:53

BEGIN

Activity: Creating a Custom Error9:01

BEGIN

const2:20

BEGIN

New Type Pattern5:07

BEGIN

Activity: Utilizing The New Type Pattern8:08

BEGIN

TypeState Pattern4:13

BEGIN

Demo: TypeState Pattern11:48

BEGIN

Activity: TypeState Pattern7:41

BEGIN

Demo: Match Guards & Binding6:22

BEGIN

Activity: Match Guards & Binding8:45

BEGIN

Arrays & Slices7:48

BEGIN

Slice Patterns5:53

BEGIN

Activity: Slices5:41

BEGIN

Type Aliases5:22

BEGIN

Exercise: Imposter Syndrome2:55

BEGIN

Type Conversions

5 lectures

From/Into8:17

BEGIN

TryFrom/TryInto3:56

BEGIN

Demo: From/Into7:58

BEGIN

Activity: TryFrom/TryInto10:15

BEGIN

Numeric Limits & Numeric Type Casting7:59

BEGIN

Parallel Execution

8 lectures

Passing Closures to Functions10:53

BEGIN

Threads6:44

BEGIN

Demo: Threads7:39

BEGIN

Activity: Threads4:29

BEGIN

Channels8:13

BEGIN

Demo: Channels5:04

BEGIN

Demo: Bidirectional Threaded Communication7:28

BEGIN

Activity: Channels9:23

BEGIN

Shared Ownership

8 lectures

Smart Pointers4:07

BEGIN

Interior Mutability: Cell & RefCell8:06

BEGIN

Demo: Smart Pointers & RefCell6:00

BEGIN

Activity: Smart Pointers & ReffCell9:14

BEGIN

Arc/Mutex8:38

BEGIN

Threading: Deadlocks6:27

BEGIN

Demo: Arc/Mutex4:15

BEGIN

Activity: Arc/Mutex5:13

BEGIN

Standard Library Tour

10 lectures

Enum Equality & Ordering3:42

BEGIN

Struct Equality & Ordering4:23

BEGIN

Operator Overloading7:24

BEGIN

Iterators: Implementing Iterator for a Struct3:31

BEGIN

Implement IntoIterator7:58

BEGIN

Demo: Implementing IntoIterator9:23

BEGIN

Activity: Implementing Iterator5:45

BEGIN

Iterators: Custom Iteration Logic8:07

BEGIN

Helpful Macros7:48

BEGIN

Managing Integer Overflow5:39

BEGIN

Other Language Features

5 lectures

Turbofish2:29

BEGIN

Loop Labels2:44

BEGIN

Loop Expressions2:34

BEGIN

Struct Update Syntax2:47

BEGIN

Escape Sequences & Raw Strings4:17

BEGIN

Development Experience

3 lectures

rust-analyzer4:18

BEGIN

clippy2:31

BEGIN

error-lens1:27

BEGIN

Crate Roundup

11 lectures

dotenvy2:32

BEGIN

serde3:56

BEGIN

rand4:20

BEGIN

cached4:16

BEGIN

regex5:17

BEGIN

chrono7:31

BEGIN

strum4:24

BEGIN

derive_more6:32

BEGIN

rayon4:00

BEGIN

tracing6:29

BEGIN

color-eyre4:15

BEGIN

Resources

1 lectures

Helpful Links for Your Rust Career

BEGIN

Final Project: Clip Stash

53 lectures

Async Primer7:51

BEGIN

Introduction To The Project1:03

BEGIN

Architecture3:38

BEGIN

Walkthrough & Domain Structure Modules7:25

BEGIN

Domain Errors6:02

BEGIN

Domain Implementation: Content & Hits6:36

BEGIN

Domain Implementation: Password6:27

BEGIN

Domain Implementation: Shortcode7:32

BEGIN

Domain Implementation: Title2:40

BEGIN

Domain Implementation: Time6:48

BEGIN

Domain Implementation: Expire & Posted5:03

BEGIN

Domain Implementation: Dbld & Clipld6:00

BEGIN

Recap & Error Correction5:18

BEGIN

Database Type Aliases7:25

BEGIN

Database Wrapper4:12

BEGIN

Database Model11:56

BEGIN

SQL Primer4:25

BEGIN

sqlx cli1:42

BEGIN

Database Query: Get Clip6:55

BEGIN

Database Query: New Clip7:06

BEGIN

Database Query: Update Clip3:51

BEGIN

Recap & Next Steps4:18

BEGIN

Service Layer: Errors7:34

BEGIN

Service Layer: Get Clip11:22

BEGIN

Service Layer: Add & Update Clip7:21

BEGIN

Templates2:00

BEGIN

Page Contexts6:15

BEGIN

Template Renderer14:30

BEGIN

Rocket Framework4:28

BEGIN

Initial Web Setup3:46

BEGIN

Web Forms9:19

BEGIN

Homepage, Catchers, and Router5:45

BEGIN

Rocket Configuration3:34

BEGIN

Running the Server9:34

BEGIN

Retrieving a Clip11:05

BEGIN

Saving a Clip13:14

BEGIN

Password Protected Clips7:12

BEGIN

Raw Clips5:31

BEGIN

Hit Counter1:39

BEGIN

Hit Counter - Service & Data11:38

BEGIN

Hit Counter Implementation part 112:27

BEGIN

Hit Counter Implementation part 25:58

BEGIN

Database Migration1:11

BEGIN

API: Keys & Error Handling9:19

BEGIN

API: Service & Queries7:10

BEGIN

API: Request Guard6:43

BEGIN

API: Routing12:06

BEGIN

API Client: Cargo.toml & CLI Options8:38

BEGIN

API Client: Get Clip & New Clip7:42

BEGIN

API Client: Update Clip & Making Requests6:07

BEGIN

Maintenance Tasks7:06

BEGIN

Testing: Database9:14

BEGIN

Testing: HTTP Routes10:00

BEGIN

Declarative Macros

14 lectures

Overview6:54

BEGIN

Detail15:39

BEGIN

Demo: impl Blocks6:38

BEGIN

Activity: Control Flow2:51

BEGIN

Activity: impl Blocks2:34

BEGIN

Repetitions8:46

BEGIN

Demo: Repetitions3:14

BEGIN

Activity: HashMap5:22

BEGIN

Demo: Syntax Extension8:52

BEGIN

Activity: Syntax Extension4:11

BEGIN

Activity: Generating Tests6:31

BEGIN

Activity: Function Tracer4:47

BEGIN

Demo: Checked Config13:18

BEGIN

Demo: Recursive tt Muncher6:40

BEGIN

Where To Go From Here?

6 lectures

Thank You!1:17

BEGIN

Review This Course!

BEGIN

Become An Alumni

BEGIN

Learning Guideline

BEGIN

LinkedIn Endorsements

BEGIN

Coding Challenges

BEGIN

Meet your instructor

Your Rust instructor (Jayson) isn't just an expert with years of real-world professional experience. He has been in your shoes. He makes learning fun. He makes complex topics feel simple. He will motivate you. He will push you. And he will go above and beyond to help you succeed.

Jayson Lennon

Hi, I'm Jayson Lennon!

Jayson is a self-taught developer with numerous industry certifications. He has a unique ability to help students learn in the most effective way possible and provide lessons that are clear, detailed and easy to follow along.

SEE MY BIO & COURSES

Jayson Lennon

Software Engineer

Frequently asked questions

Are there any prerequisites for this course?

  • A computer (Windows, Mac, or Linux) with an internet connection. That's it!
  • No prior programming knowledge is required. You will learn everything from scratch
  • A willingness and enthusiasm to learn
  • This course is absolutely ideal for beginners. While you will learn many more advanced topics as well, this course might not be for you if you already have more than a few years of Rust experience

Who is this course for?

  • Anyone who wants to gain a complete and practical understanding of the Rust programming language without needing ANY prior programming or Rust knowledge
  • You want a step-by-step guide to learn how to code using the Rust programming language from scratch all the way to being able to get hired at a top company as a Rust developer
  • Anyone with some programming experience that wants to learn a more powerful low-level programming language that is much safer and more preferred by big companies
  • Anyone who wants to learn the most-loved (voted on by 80,000+ developers for 5 years in a rows) and one of the fastest growing programming languages
  • Students who are frustrated with their current progress with all of the beginner Rust tutorials out there that don't go beyond the basics and don't give you real-world practice or skills you need to actually get hired
  • Bootcamp or online Rust tutorial graduates that want to go beyond the basics
  • You want to learn Rust from someone with real-world experience having designed, written, and deployed reliable and secure Rust-powered full-stack web applications

Do you provide a certificate of completion?

We definitely do and they are quite nice. You will also be able to add Zero To Mastery Academy to the education section of your LinkedIn profile as well.

Can I use the course projects in my portfolio?

Yes, you’d be crazy not to in our slightly biased opinion! All projects are downloadable and ready to use the minute you join.

Many of our students tell us the projects they built while following along with our courses were what got them interviews and because they built the projects themselves, they could confidently explain and walk through their work during the interview.

You know what that means? Job offer!

Are there subtitles?

Yes! We have high quality subtitles in 11 different languages: English, Spanish, French, German, Dutch, Romanian, Arabic, Hindi, Portuguese, Indonesian, and Japanese.

You can even adjust the text size, color, background and more so that the subtitles are perfect just for you!

Still have more questions about the Academy?

Still have more questions specific to the Academy membership? No problem, we answer some more here.

Invest in a better you. For less than a coffee a day.

Choose your currency:
$ USD US Dollar
Lifetime
100% OFF$999
$999
Only pay once, ever
You're serious about advancing your career and never getting left behind
Start Learning Now

MOST POPULAR

Save 40% vs. monthly (that's $189 a year)
Annual
100% OFF$279 / year
$23 / month
$279 / year
You're committed to getting hired and starting a career in tech
Start Learning Now
Monthly
100% OFF$39 / month
$39 / month
You're ready to upskill and advance your career
Start Learning Now

Every ZTM membership includes:

Unlimited access to all courses, projects + workshops, and career paths
Access to our private Discord with 400,000+ members
Access to our private LinkedIn networking group
Custom ZTM course completion certificates
Live career advice sessions with mentors, every month
Full access to all future courses, content, and features
100% RISK FREE

We know you'll love ZTM. That's why we provide a no hassle, 30-day money back guarantee.