Rust and Systems Programming Basics Roadmap

Learn Rust and the systems concepts behind it: memory, ownership, concurrency and low-level I/O.

10 milestones · ~175 hours total

  1. 1

    How computers run programs

    ~14h

    Stack vs heap, pointers, memory layout, processes and system calls. A little C reading helps.

    Practice this →
  2. 2

    Rust basics

    ~18h

    Cargo, variables, types, control flow, structs, enums, pattern matching and modules.

    Practice this →
  3. 3

    Ownership, borrowing and lifetimes

    ~25h

    Move semantics, references, the borrow checker and reading compiler errors calmly.

    Practice this →
  4. 4

    Error handling and collections

    ~16h

    Result and Option, the ? operator, Vec, HashMap, iterators and closures.

    Practice this →
  5. 5

    Traits and generics

    ~14h

    Defining behaviour, trait bounds, trait objects vs generics and common standard traits.

    Practice this →
  6. 6

    Smart pointers and memory

    ~12h

    Box, Rc, Arc, RefCell, Drop and why the compiler rejects certain designs.

    Practice this →
  7. 7

    Concurrency

    ~20h

    Threads, channels, Mutex, Send and Sync, then async/await with Tokio at an introductory level.

    Practice this →
  8. 8

    Systems-level I/O and networking

    ~18h

    Files, sockets and processes; write a small TCP echo server and a command-line tool with clap.

    Practice this →
  9. 9

    Testing, tooling and unsafe

    ~8h

    cargo test, clippy, rustfmt, documentation, and what unsafe means and when it is justified.

    Practice this →
  10. 10

    Build a systems project

    ~30h

    Examples: a grep clone, a key-value store or a simple HTTP server, with tests and a written design note.

    Practice this →