Skip to main content

Rust

I learn Rust by reading The Rust Programming Language (aka. TRPL) book.

This is my mind map and collection of resources for learning Rust in early 2019.

I didn't touch Rust up until Nov 2019. I've written a short note about things I read and learned while restarting my Rust learning journey.


Notes

My notes while working through TRPL.

Programming paradigm: functional, imperative, structured, generic, concurrent

Rust focus: type and memory safety, precision, concurrency, performance, reliability

Rust enforces memory safety. Compile time memory safety guarantees protects us from:

  • Uninitialized variables
  • Use-after-free (UAV)
  • Double-frees
  • Exception due to NULL pointers (Rust does not have NULL)
  • Impossible to forget to lock the mutex
  • Data races between threads
  • Mostly no memory leaks
  • Iterator invalidation

In the safe subset of Rust, there's no undefined behavior at runtime:

  • Integer overflow is defined
  • Array access is bounds checked

Rust is modern — built with the experience learned in the past 40 years of programming languages.

Modern language features:

  • Generics
  • Enums and pattern matching
  • No overhead FFI

Modern tooling:

  • Great compiler errors
  • Built-in dependency manager
  • Built-in support for testing

Getting help

Learn Rust

  • Get started with Rust - Official learning resources.
  • Rust Cookbook - A collection of simple examples that demonstrate good practices to accomplish common programming tasks, using the crates of the Rust ecosystem.
  • Rust by Example - A collection of runnable examples that illustrate various Rust concepts and standard libraries.
  • Learn Rust With Entirely Too Many Linked Lists
  • https://github.com/rust-lang/rustlings - Small exercises to get you used to reading and writing Rust code!
  • Tour of Rust - A step by step guide through the features of the Rust programming language.
  • A half-hour to learn Rust - 'similar' style to "Learn X in Y Minutes". It covers variable bindings, pattern matching, immutability, references, lifetimes, borrow rules, structs, traits, enums, generics, closures, and more.
  • Read Rust: Getting Started - Introductory posts, guides and tutorials for getting started with Rust.
  • Learning Rust - Rust programming language tutorials.
  • Rust-101 - A tutorial for the Rust language.
  • https://github.com/learning-rust/site - Rust Programming Language Tutorials for Everyone!
  • Comprehensive Rust 🦀 - This is the Rust course used by the Android team at Google. It provides you the material to quickly teach Rust to everyone. The course covers the full spectrum of Rust, from basic syntax to advanced topics like generics and error handling. It also includes Android-specific content on the last day.

Videos

Rust stream on YouTube and/or Twitch:

Books

  • Rust for Rustaceans by Jon Gjengset - a book that covers the next steps of Rust after TRPL/"the book". The book is written for people who are already familiar with Rust. The idea is that you read The Rust Programming Language (TRPL) first, play around with Rust for a bit on your own, maybe start using it "for real", and then pick this up to hone your skills. It is fairly fast paced, but is still has a good amount of low level details. (TLDR; if you're comfortable in Rust, this book is the next step up for intermediate developers.)
  • Rust in Action by Tim McNamara - Systems programming concepts and techniques.
  • Programming Rust by Jim Blandy, Jason Orendorff, Leonora F. S. Tindall - This revised, second edition covers the Rust 2021 Edition. It expands on many concepts in TRPL book. I like that it explains the memory layout of common Rust data structures.
  • The Rustonomicon book - Meet Safe and Unsafe.
  • Summary of the Rust book
  • Zero To Production In Rust - The ideal starting point for your journey as a Rust backend developer. You will learn by doing: you will build a fully functional email newsletter API, starting from scratch.
  • Awesome Rust Books - List of Rust books grouped by level.
  • Rust for the Polyglot Programmer

Presentations and talks

Cheat sheets

Libraries

Useful libraries. Some created by Rust core members.

Blessed - An unofficial guide to the Rust ecosystem.

Not-Yet-Awesome Rust - A curated list of Rust code and resources that do NOT exist yet, but would be beneficial to the Rust community.

View all

Blogs and articles

View all

Newsletters

Async Rust

Editor, IDE

https://areweideyet.com/

Things I discovered:

Systems programming with Rust

Projects for learning

Rust communities

Users of the Rust programming language: https://communitywiki.org/trunk/grab/Rustaceans

Reddit /r/rust

View all

Learning Rust as a Python/JavaScript/Go programmer

Rust for Python programmer

General

Not so useful knowledge.

Similar projects


Originally published at GitHub Gist