Skip to content

Resources

Level: reference · the map

One line: A curated shelf rather than a link dump — every entry says when it is the right one, because the problem with Rust learning material is not that there is too little of it.

There is an enormous amount of good Rust material, almost all of it free, and that is precisely the difficulty: at any given moment roughly two of these are the right thing to read and the rest are a way of avoiding the one you need. So the shelves below are organised by the moment you are in rather than by topic.

Five kinds of material, and what each is for

Most wasted reading is a category error — opening a tutorial when the question has a right answer, or a specification when the question is "how do people usually do this?"

Kind Answers Shelf
Normative documents What is Rust obliged to do? Official docs
Books Why is it shaped this way? Books
Exercises Can I actually write it? Exercises
Domain material How does this work for async / embedded / macros? Going deeper
Lookup What is the name of the thing I want? Cheat sheets — and std

The two that get confused are the first two. A book argues; a reference defines. "Struct fields are laid out in declaration order" is a reasonable-sounding sentence from a tutorial and explicitly not guaranteed ↗ by the language — no third tutorial would have caught that, and one line of the Nomicon does.

The shelves

Page For
Books reading — every Rust book worth naming, with a verdict on each and what the verdict is based on
Official docs the definitive answer — std, the Reference, the Nomicon, the error index, the RFCs
Cheat sheets looking something up — which sheets are maintained, which are frozen, and what the frozen ones stopped knowing
Exercises typing — the practice tracks, and which one suits which stage
Going deeper a specific domain — unsafe, embedded, async, macros, testing, performance
Why Haskell curiosity — what Rust borrowed, renamed, and deliberately left behind
Structs one topic — the checked shelf for structs: the chapter, the normative sources, the videos worth the time

Some sections keep their own reading list next to the lessons, because the sources for one subject belong beside it: Traits and Strings both do. Structs is the exception that sits here, because it is the topic where the free material is thickest and the quality spread widest.

Where to start, honestly

If you are… Read
starting from zero Start here — the plan, and the three resources it is built on
starting from zero, and prefer slides to prose Comprehensive Rust ↗ — Google's four-day course, and unusually good
fighting the borrow checker the Brown University edition ↗ of The Book — same text, with interactive quizzes that catch the misunderstanding
coming from C Rust for C Programmers ↗, then Learn Rust the Dangerous Way ↗
coming from Python or ABAP this library — every lesson has an "If you are coming from another language" section for exactly that
wanting to type rather than read rustlings first, then 100 Exercises ↗
stuck on lifetimes specifically quinedot's guide ↗ — the best free treatment of the topic
deciding whether a book is worth buying Books — and the short answer is usually no, the free one is better
looking something up mid-edit cheats.rs ↗ — the shelf says why that one and not the others

Three notes on this shelf

Nearly everything here is free, and the paid books are marked. The whole free shelf — first book, ownership, lifetimes, concurrency, idioms, performance — is linked from Books, which also reviews what is in print and says plainly which titles are worth paying for. Every link on every shelf page was checked on the date that page states. Dead links are named rather than quietly deleted: a shelf that only lists what works is a shelf you cannot trust about anything else.

A verdict is not a checked fact, and the pages say which is which. Every other page in this library is backed by a program that prints the answer. A book review cannot be. So the review pages separate the two explicitly — publication facts fetched from the publisher, verdicts marked as judgment, and "unvetted" used where the honest answer is that nobody here has read it.

The Google Docs from the original list are not linked here. They are private documents; a link to one is a 404 for every reader of this site and a leaked document id besides. Their contents — which is what mattered — are what this section is made of.

And when a resource is not the answer

The failure mode this section exists to prevent: reading a fourth explanation of ownership instead of writing a program that owns something. The Book's chapter 4 plus one afternoon of the compiler saying no will teach you more than the other three combined.

If you have read the chapter and it has not landed, the fix is usually a different kind of resource rather than a better one — an exercise instead of a chapter, or a video instead of prose — which is why the tables above sort by situation rather than by subject.

Po polsku

Ta strona zaczyna się od stwierdzenia, że materiałów o Ruscie jest za dużo, nie za mało — a po polsku jest dokładnie odwrotnie i warto o tym wiedzieć, zanim zacznie się szukać. Jedyny obszerny polski kurs to Tour of Rust ↗, przetłumaczony do rozdziału 5 (podstawy, struktury, typy generyczne, własność i pożyczanie); od rozdziału 6 polskie strony pokazują już angielski tekst. Poza nim zostają pojedyncze wpisy blogowe, nagrania z konferencji i notatki z zajęć. To nie jest powód do rezygnacji, tylko instrukcja czytania półek poniżej: są angielskie, bo w tej konkretnej dziedzinie polskiego zamiennika po prostu nie ma.

Tabela pięciu rodzajów materiału jest dla polskiego czytelnika bardziej przydatna niż dla angielskiego, bo po polsku te kategorie są obsadzone skrajnie nierówno. Dokumenty normatywne — std, Reference, Nomicon, indeks błędów — nie istnieją po polsku i nie powstaną; to jedyna półka bez zamiennika, więc warto oswoić ją wcześnie, a nie „kiedyś, jak podszkolę angielski”. Najlepiej obsadzona po polsku jest za to kategoria tutoriali i wpisów blogowych — czyli właśnie ta, którą ta strona każe dawkować najostrożniej. Samo wyszukiwanie po polsku popycha więc w stronę błędu kategorii, przed którym strona ostrzega: na pytanie „co Rust jest zobowiązany zrobić?” zwróci czyjąś opinię zamiast definicji.

Dwie sztuczki, które to omijają. Po pierwsze, kod błędu jest niezależny od języka: zamiast opisywać problem po polsku, wpisz rustc --explain E0499 — odpowiedź przychodzi lokalnie, bez wyszukiwarki, i jest normatywna. Po drugie, szukając w sieci, dopisuj rust i zostawiaj resztę po angielsku (rust borrow checker, rust lifetime elision); polskie tłumaczenie terminu zwraca zwykle mniej i gorzej, i to niezależnie od tego, jak dobrze brzmi. A na koniec ostrzeżenie z dołu tej strony, które po polsku jest jeszcze ostrzejsze, bo alternatywnych wyjaśnień jest mniej: czwarte wyjaśnienie własności nic nie da, jeśli nie towarzyszy mu program, który coś posiada. Kiedy rozdział nie „wchodzi”, zmień rodzaj materiału — ćwiczenie zamiast rozdziału, nagranie zamiast tekstu — a nie autora.

Szukaj po polsku: Rust po polsku · kurs Rusta po polsku · dokumentacja Rusta · rustc --explain E0499 · rust reference · cheats.rs