One Year with Rust: A Practical Learning Path

Rust had been on my list of languages to learn for years, and over the past twelve months I finally committed to studying it seriously—setting aside time each week to work through materials, write code, and build projects. Below is the approach that worked for me, which combined reading with substantial hands-on programming across several larger projects.

Books and Other Reading Material

I worked through several Rust-specific books over the course of the year, starting with Programming Rust as a general introduction. Later, I read Rust for Rustaceans and Rust in Action, each of which covers more advanced and practical topics respectively. I also spent considerable time with The Rust Programming Language—not reading it cover to cover, but skimming major sections and using it as a reference. In my experience, it tends to rank high in search results and offers clearer explanations than some other references.

Outside of books, I watched several of John Gjengset's YouTube videos on Rust, which I found quite valuable. I plan to revisit these when I need to dig deeper into specific advanced concepts. I also read many Rust-related blog posts throughout the year, mostly those that surfaced on Hacker News or the r/rust subreddit.

From Exercises to Full Projects

Reading alone never makes a language stick. For that, I balanced the books with several kinds of coding work, ranging from small guided exercises to larger, language-agnostic projects I chose to implement in Rust.

Early on, I worked through rustlings, a collection of small exercises covering reading and writing Rust code. The scope is not exhaustive, but it proved useful for getting comfortable with syntax and basic idioms during the initial phase of learning.

I then moved on to real projects. The first was Advent of Code 2021; I solved the problems for days 1–18 in Rust, which came to roughly 2,000 lines of code. AOC is an excellent way to practice a new language, as the problems push you through a variety of data structures and algorithms. I plan to take part again in 2022.

Beyond that, I used two language-agnostic books to force me to write substantial Rust code:

  • The Ray Tracer Challenge — I implemented a simple ray tracer following this book's specifications, writing nearly 4,000 lines of Rust.
  • Crafting Interpreters — I reimplemented most of the clox compiler and VM in Rust, amounting to roughly 2,000 lines.

Between these projects and additional experimentation—some documented in blog posts and most not—I have written about 14,000 lines of Rust in total over the last year.

Where I Stand Now

I would not describe myself as a Rust expert, but I have built up solid understanding and intuition for the language over this period. I feel comfortable using Rust for production work, and I'm glad to have added it to my toolbox.

That is not to say Rust has no flaws—I have plenty of opinions on its shortcomings. But those will have to wait for another post.