How to learn Rust: A resources guide for developers

If you want to learn the Rust programming language, check out this list of books, courses, videos, and websites.

istock-948997140-1.jpg
Image: iStockphoto/DragonImages

The Rust programming language was created in 2006 by Mozilla employee Graydon Hoare, and it is gaining traction as a fast and reliable alternative to C and C++. Rust is used by Firefox, Dropbox, Cloudflare, and hundreds of other companies. The open-source, community-developed systems programming language is memory-efficient, focuses on safe concurrency and memory safety, can power performance-critical services, can run on embedded devices, easily integrates with other languages, and has a number of useful built-in tools to ensure maximum productivity.

SEE: 20 programming languages that are attracting the most new learners (free PDF) (TechRepublic)

If you're interested in learning more about Rust, this list of resources can help you get started.

Books

Rust Quick Start Guide: The easiest way to learn Rust programming: If you are new to Rust, programming in general, or have only a basic knowledge of another language, this is a good book to read first. It includes an introduction to the language and discusses the fundamentals of structuring in Rust.

The Rust Programming Language: Often referred to simply as "the book," this is the official guide for learning Rust. Included are concept and project chapters that offer hands-on exercises and in-depth descriptions of key concepts such as type system, error handling, pattern matching, iterators, and much more.

Beginning Rust: From Novice to Professional: For beginners who have some programming knowledge (ideally C/C++), this book aims to teach the basics of learning Rust. Understanding heterogeneous data structures and sequences, using traits, learning about lifetimes, and working with closures, changeable strings, ranges, and slices are some of the topics covered.

Hands-On Concurrency with Rust: Confidently build memory-safe, parallel, and efficient software in Rust: Ideal for software programmers with a basic knowledge of Rust who want to learn how to build fast, memory-safe, and concurrent software using the language.

Step Ahead with Rust: Systems Programming in Rust: Intended for moderately experienced programmers looking to improve their Rust development skills, this book covers Cargo, Rust type systems, iterators, macros, ownership, concurrency, and more.

Programming Rust: Fast, Safe Systems Development: Experienced systems programmers Jim Blandy and Jason Orendorff emphasize the advantages of using Rust, particularly the correlation between performance and safety. The authors also cover how Rust represents values in memory, explain ownership, moves, borrows, and lifetimes, and discuss how to deal with unsafe code.

Mastering Rust: Advanced concurrency, macros, and safe database: For more advanced programmers who want to further their knowledge of Rust, this book includes examples, hands-on tasks, and exercises (with solutions) to help enhance their skills.

Courses

First Look: Rust: Available through LinkedIn Learning, this two-hour course for beginners is perfect for getting familiar with the basics. The curriculum covers: Installing Rust, learning data types, adjusting memory allocation, setting up race conditions, working with functions and enums, using structs, getting user input, and more.

Rust Programming Language for Beginners: This one hour, high-level overview through Udemy teaches syntax, data types and structures, immutable and mutable variables, functions, traits, and more. C/C++ knowledge is helpful, but not necessary.

Learning Rust: A collection of Rust programming language tutorials ranging from learning the basics to error handling.

The Rust Programming Language: Offered through Udemy with developer and author Dmitri Nesteruk, this five-and-a-half hour class teaches the fundamentals of Rust. Some basic knowledge of computer science is required. This course is ideal for C/C++ programmers, systems programmers, and experienced developers interested in learning Rust.

Learn Rust in 7 Days: Offered through Packt, this course includes videos and online materials to teach the basics of Rust. Each day builds on the previous one, beginning with installing Rust and discovering its syntax and ending with building a multi-bank application to track users' financial transactions over time.

Building Reusable Code with Rust: A best seller on Udemy, this intermediate course focuses on avoiding code duplication and writing clean, reusable code. It's designed for Rust developers already familiar with the language who want to build maintainable and reusable libraries.

Network Programming with Rust: For software developers who want to write networking software using Rust, this course covers: How to modify an existing Rust HTTTP server and add SSL to it, use external packages in a Rust project, and write a non-asynchronous echo server over TCP, in addition to building other effective networking software skills.

SEE: How to become a developer: A cheat sheet (TechRepublic)

Videos

Build a cryptocurrency! Blockchain in Rust: Presented by GeekLaunch, this video introduces the basics of Rust and demonstrates how to build a blockchain-based cryptocurrency using Rust. Having some experience with C/C++, Java, or Haskell is helpful.

Rust in Motion: Featuring Rust experts Carol Nichols (coauthor of The Rust Programming Language) and Jake Goulding, this video is an all-access pass to learning Rust—it's ideal for programmers experienced in Java, JavaScript, Ruby, and/or Python.

A Case for Oxidation: The Rust Programming Language: At the Reaktor Breakpoint 2018 conference, speaker Sergio Benitez discusses how Rust guarantees data race freedom and memory safety without a garbage collector and offers examples of how Rust's strengths can be applied in real-world settings.

Rust Async Programming in 2018: From the 2018 GOTO Copenhagen conference, Katharina Fey, software engineer at Ferrous Systems, discusses Async IO, network programming, and microservices in relation to Rust and highlights why more programmers are choosing Rust over other languages.

Building Safe and Secure Systems in Rust: This 45-minute video featuring Mingshen Sun, senior security researcher of Baidu X-Lab at Baidu USA, discusses the security challenges Rust faces. Sun uses real-world case studies to illustrate security issues and offers possible solutions.

Websites

Rust.org: The official Rust website offers useful resources, tools, and guides, including a free online version of The Rust Programming Language book.

Rust Blog: The official Rust programming language features helpful information and announcements.

Rust on Reddit: A thread dedicated to discussing all things Rust. Users can post and answer questions, offer resources, and share updates.

This Week in Rust: A weekly newsletter highlighting Rust-related events, resources, and recent developments. Subscription not required.

New Rustacean: A website offering links to the New Rustacean podcast, which is dedicated to topics about Rust and the people who use it. The site includes show notes and links to resources discussed in each podcast.

Learning Rust With Entirely Too Many Linked Lists: A resource guide for learning basic and advanced Rust programming through implementing six linked lists.

Also see

By Kristen Lotze

Kristen Lotze is an Associate Writer for TechRepublic. She is a graduate of the University of Louisville, and previously worked as an intern in the Marketing and Communications department at Metropolitan State University of Denver.