Subscribe Now
Trending News

Blog Post

I went about learning Rust
News

I went about learning Rust 

Rust has been on my radar for a long time now,
and about a year ago I finally began allocating some time every week to learning
it.

In this post I’ll provide details on the learning path I’ve followed for Rust,
in the hope that this may prove useful for others. You’ll note
that this isn’t exactly a “Learn X in 24 hours” kind of journey, as it stretches
over a long time period and covers lots of different materials. YMMV.

This learning journey alternates consuming information (mostly books) with
coding activities (some guided by books, some not). In my experience, both are
critical for really learning a language or any other tool deeply, and the
combination of the two is powerful.

Consuming information

These are the Rust-specific books I’ve read, roughly in chronological order.
There are additional books in the “writing code” section, but those are not
Rust-specific.

Programming Rust (link to review)
is the first book I read for an initial introduction to the language.

The Rust Programming Language – I haven’t read this one cover to cover, but
have skimmed major parts of it, implementing the projects it lists. I’ve also
used it a bunch as a reference since it usually comes up high in Google
rankings; it’s a better reference than Programming Rust, IMHO.

Rust in Action (link to review).

Rust for Rustaceans (link to review).

In addition to these books, I’ve watched a few of John Gjengset’s videos on
YouTube. These are very interesting, and I’ll probably watch more to learn about
specific advanced concepts of Rust, as needed.

Finally, over this year I’ve read a bunch of blog posts about Rust, mostly stuff
that made it to the front pages of HN or r/rust from time to time.

Writing code

rustlings – small exercises for
reading and writing snippets of Rust code. Nice concept, though not very
comprehensive. It’s still quite useful when just getting started.

Advent of Code – I love AOC, and the 2021
edition was a great opportunity to practice some Rust. I’ve implemented the
solutions for days 1-18 in Rust, for a total of ~2 KLOC. Solving AOC problems
is a terrific way to learn and practice programming languages. I’m very likely
to tackle AOC 2022 in Rust again, to keep my skills sharp.

The Ray Tracer Challenge book (link to review).
This book is language agnostic, and I picked Rust to implement a simple ray
tracer. Another great way to practice a new language! Almost 4 KLOC for this
one.

Crafting Interpreters (link to review).
Reimplemented the majority of the clox compiler and VM in Rust, ~2 KLOC.

In addition to these, I’ve done quite a bit of experimentation, writing code to
explore various areas of Rust. Some of this was mentioned in blog posts, but most wasn’t. I estimate there’s
a total of ~6 KLOC of Rust there.

Overall, over these past months I’ve written about 14 KLOC of Rust in the
process of learning and practicing the language.

What’s next

I wouldn’t call myself a Rust expert, but over this last year I believe I’ve
developed a good understanding and intuition for the language, to the extent
that I would feel confident using it for a production project.

Overall, I like Rust and I’m happy to have added it to my toolbox.
It has issues, and I certainly have opinions about it, but that will have to
wait for a separate post 🙂

Read More

Related posts

© Copyright 2022, All Rights Reserved