Skip to content

Instantly share code, notes, and snippets.

@noxasaxon
Last active March 26, 2024 17:53
Show Gist options
  • Save noxasaxon/7bf5ebf930e281529161e51cd221cf8a to your computer and use it in GitHub Desktop.
Save noxasaxon/7bf5ebf930e281529161e51cd221cf8a to your computer and use it in GitHub Desktop.
Learn Rust!

Learning Rust

Getting Started + Installation | Cheat Sheet

Table of Contents

  1. How Do I Start Learning Rust?!
  2. Ok, I Think I Know The Basics But How Do I Get Better?!
  3. Rustlang Tooling
  4. Helpful References Throughout Your Journey
  5. The Rust Community
  6. Recommended (but not free) Books & Courses

How Do I Start Learning Rust?!

by Reading

  • The Book: start reading now, read it whenever you can, and don't worry if it takes a long time to get through. You will reference it for most of your time using Rust. or try the Rust Book with Quizzes

    Affectionately nicknamed β€œthe book,” The Rust Programming Language will give you an overview of the language from first principles. You’ll build a few projects along the way, and by the end, you’ll have a solid grasp of the language.

  • Rust By Example: like 'The Book', with less docs and more sample code

    If reading multiple hundreds of pages about a language isn’t your style, then Rust By Example has you covered. While the book talks about code with a lot of words, RBE shows off a bunch of code, and keeps the talking to a minimum. It also includes exercises!"

  • (Blog) Mental Models for Learning Rust. (kerkour)
  • (Blog) A Half Hour to Learn Rust. (fasterthanlime)
  • (Blog Series) Learn Rust the Dangerous Way (cliffle) "Rust features in context for low-level C programmers"

    Existing Rust tutorials are great, but they focus on safe features. This companion tutorial takes an unsafe-first approach that may be more appealing for low-level systems programmers like me.

by Watching

by Doing

  • Tour of Rust: Step-by-step interactive walkthrough of Rust, all in your browser.
  • Rustlings: Rust by Example -style exercises you complete via your own local environment

    Alternatively, Rustlings guides you through downloading and setting up the Rust toolchain, and teaches you the basics of reading and writing Rust syntax, on the command line. It's an alternative to Rust by Example that works with your own environment.

  • Exercism.org: Work through examples in order from "hello world!" to advanced concepts like Doubly-linked lists. Do work in the browser or via your local environment using the exercism CLI, with progress reflected in the web app. Get mentorship and guidance from real people.

    We’re building a place where anyone can learn and master programming for free, without ever feeling lost or stupid. We're here to help everyone get really good at programming, regardless of their background. We want to share our love of programming, and help people upskill as part of their upward social mobility.

Ok, I Think I Know The Basics But How Do I Get Better?!

by Reading

by Watching

by Doing

  • whorl

    whorl was created to teach you how async executors work in Rust. It is not the fastest executor nor is it's API perfect, but it will teach you about them and how they work and where to get started if you wanted to make your own.

  • macrokata Learn macros over a set of exercises
  • TP-201: Practical Networked Applications in Rust

    A series of projects that incrementally develop a single Rust project from the ground up into a high-performance,

  • https://github.com/dpc/sniper

    Educational Rust implemenation of Auction Sniper from Growing Object-Oriented Software, Guided By Tests networked, parallel and asynchronous key/value store. Along the way various real-world Rust development subject matter are explored and discussed.

  • Learn Video Codecs by Implementing one in 100 lines of Rust

Rustlang Tooling

Helpful References Throughout Your Journey

The Rust Community

Recommended (but not free) Books & Courses

Beginner

Intermediate

@NoelJacob
Copy link

Awesome material but why didn't you make this a repo?

@tranzystorekk
Copy link

@equalis3r
Copy link

Rust Atomics and Locks: Low-Level Concurrency in Practice by Mara Bos (https://marabos.nl/atomics/) deserves a spot I believe.

@nazmulidris
Copy link

This site has lots of information on topics like proc macros, async Rust, and nom, etc: https://developerlife.com/category/Rust/ (full disclosure: I am its maintainer)

@imobachgs
Copy link

Thanks for sharing this! Another interesting resource might be the Let's Get Rusty channel.

@edg-l
Copy link

edg-l commented Mar 1, 2023

@sn99
Copy link

sn99 commented Mar 1, 2023

There is also this although incomplete https://github.com/rust-unofficial/rust-practise-questions :p

@noxasaxon
Copy link
Author

@NoelJacob :

Awesome material but why didn't you make this a repo?

I really just wanted a single markdown file to share with folks interested in learning Rust, whether they were new programmers or staff engineers. It was never going to be the 'most complete' collection of resources because cognitive overload is real. Also I recently found the Awesome Rust and Rust Learning repos which are much larger collections of rust resources that i'll link in the gist.

@edg-l :

https://github.com/usagi/rust-memory-container-cs
This is really cool, gonna update the gist.

@nazmulidris

This site has lots of information on topics like proc macros, async Rust, and nom, etc: https://developerlife.com/category/Rust/ (full disclosure: I am its maintainer)
I just subscribed, this is really cool! i'll add it to the gist

Also updated the gist with tips from r/rust and elsewhere:

  • https://github.com/ctjhoa/rust-learning is a much more exhaustive list in repo form
  • Fixed mistake: Moved Rust in Action to the "Beginners" section
  • Removed Comprehensive Rust from the "Beginners" section
  • Added the rustonomicon for folks that need to know unsafe
  • Added MacroKata

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment