How to start learning a systems language

This page summarizes the projects mentioned and recommended in the original post on /r/rust

Our great sponsors
  • Onboard AI - Learn any GitHub repo in 59 seconds
  • SonarLint - Clean code begins in your IDE with SonarLint
  • Revelo Payroll - Free Global Payroll designed for tech teams
  • InfluxDB - Collect and Analyze Billions of Data Points in Real Time
  • TablaM

    The practical relational programing language for data-oriented applications

    In my case each lang I have learned (+12) I start coding a mini-ORM. I have done the same so many times, and that is a good way to learn from me. Also, I have to learn Rust building

  • Rustlings

    :crab: Small exercises to get you used to reading and writing Rust code!

  • Onboard AI

    Learn any GitHub repo in 59 seconds. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at

  • book

    The Rust Programming Language

    Read the first couple chapters of the The Rust Book. Maybe follow along with the exercises. But just let the intro sink in a bit.

  • command-line-rust

    Code for Command-Line Rust (O'Reilly, 2022, ISBN 9781098109417)

    I think the best way to start learning a programming language is to write lots of small programs that you probably already know. Rust is a perfect command-line language, so I think it makes sense to start by implementing simple programs like "head" and "grep." I also think one should always learn to write and run tests, so I present my GitHub repo of inputs and tests you might like to use to write 14 such standard Unix command-line utilities: If you want guidance on the language, I wrote a book called Command-Line Rust (O'Reilly, 2022) that explains all this code. One caveat is that the "clap" (command-line argument parser) module was at 2.33 when I published but is now v4, so you should look at the appropriate branches for versions of the programs that use the "builder" and "derive" patterns for that module. Or just use any old command-line parser you like as there's no requirement to use "clap." Best of luck to you!

  • serde

    Serialization framework for Rust

    Serde for JSON, TOML, YAML, CSV (with csv), XML (with quick-xml), etc.

  • too-many-lists

    Learn Rust by writing Entirely Too Many linked lists

    Second, once you've finished something introductory like The Book, read Learning Rust With Entirely Too Many Linked Lists. It really helped me to understand what ownership and borrowing actually mean in practical terms. If you don't mind paying for learning materials, a lot of people recommend Programming Rust, Second Edition by Blandy, Orendorff, and Tindall as either a complement, follow-up, or alternative to The Book.

  • PyO3

    Rust bindings for the Python interpreter

    PyO3 and Maturin are also great for writing importable Python extensions in Rust without worrying about memory-unsafety.

  • SonarLint

    Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts