35 Rust Learning Resources Every Beginner Should Know in 2022
Tags: rust, beginners, programming
Published: 2022-04-11 18:20:07

In my Rust learning journey, I took the approach of immersing myself in Rust wherever I go. As such, I happened to look for a lot of various material types I can read, watch, listen to, or practice with. This post is an aggregation of all that material I came across which is comprised of a total of 35 different resources. I split the material into 6 main categories: **1) reading material**, **2) practice resources**, **3) youtube videos**, **4) git resources**, **5) cheat sheets**, and **6) question forums**. In the list, I also add some resources that I came across that I read good things about but didn't really have the chance to leverage myself. This was mainly because they were some form of paid resource. I personally relied on free resources only and found them to be sufficient. However, I probably would go for a paid resource in the future if I feel the desire to have a hard copy of a resource or find a need to pay for a practice resource.

To quickly give some context before diving in, my learning journey started with the official Rust language resource known as "the book" and then I practiced mainly by doing the amazing Rustlings exercises. All other resources I mention in this post, I referred to along my learning journey to clarify concepts I came across in "the book" or when I got stuck in a certain rustling exercise and wanted to explore more. Lastly, when I am asked if I would do anything differently learning Rust, if anything, based on the resources at hand, I probably would have started with the quick summary resources mentioned below first and then tackled "the book". I would have probably done that if I came across the summaries earlier. I guess I was too excited to get started. With that being said, the list is as follows:

### 1) Reading Material 📚
#### Quick Summaries
**1\.**  [Tour of Rust](https://tourofrust.com/) is a step-by-step guide for the Rust programming language. It gives a nice overview of the language and allows the learner to also modify the code examples to experiment. I would say that the Tour of Rust is not a resource that you would rely on by itself.

**2\.**  [A half-hour to learn Rust](https://fasterthanli.me/articles/a-half-hour-to-learn-rust) is a nice and quick summary that goes over a lot of concepts of the language with quick examples. Everything is on a single webpage page! as a result, I find this resource very useful for refreshing quickly on certain concepts.

**3\.**  [A Gentle Introduction to Rust](https://stevedonovan.github.io/rust-gentle-intro/readme.html) is sort of a short book that summarizes main Rust concepts. The idea, as mentioned by the author, is to "try before you buy" to get to know enough about the language before digging into the more involved resources like "the book".

#### 🆓 Free Online Books:
**4\.** [Rust Book "The Book"](https://doc.rust-lang.org/book/): This is the official book on the Rust programming language, written by the Rust development team at the Mozilla Foundation.

**5\.** [Rust By Example](https://doc.rust-lang.org/rust-by-example/): Rust by example has a collection of runnable examples for the various concepts in Rust. I found it useful to refer to alongside "the book" whenever I learned a concept there. 

**6\.** [Easy Rust](https://dhghomon.github.io/easy_rust/): This is a resource that tries to focus on using "easy English" for learning Rust for non-native speakers of English. I personally found it useful to clarify concepts along the way. The nice thing about this book also is that there is a youtube video linked in the book and associated with each chapter.

#### 💲 Paid In-Print Books:
I personally relied completely on the free material to learn Rust, however, the books listed here are ones I saw many positive comments about. Additionally, some might prefer a more tangible form for books of which "the book" itself is also available as hard copy [here](https://amzn.to/3Km3jwl).
         
**7\.** [Rust in Action](https://amzn.to/3DRu0qh):  For this book, the author, Tim Mcnamara, also has a youtube channel where he explains Rust concepts.

**8\.** [Programming Rust: Fast, Safe Systems Development](https://amzn.to/3Jfxbtb): This book is rated as an Amazon bestseller as well.

**9\.** [Beginning Rust from Novice to professional](https://amzn.to/3DS1pBi): The nice thing about this book is that its material also ties to practice material on [Educative](https://www.educative.io/courses/ultimate-guide-to-rust-programming).

### 2) Practice Material 🏋️‍♂️
#### 🆓 Free Resources

**10\.**  [Rustlings](https://github.com/rust-lang/rustlings) is a git project with small exercises to learn Rust. I absolutely loved this resource as it covered each topic in "the book" and was challenging at times. I worked through the whole set of exercises and felt quite accomplished every time I got through a tough one. My favorite was figuring out how to write a function to find the factorial of a number in a single line using iterators.

**11\.** [Exercism](https://exercism.org/tracks/rust) has a hands-on Rust learning track. I personally found the exercises interesting in the way they are presented. Though I found the exercises to be a bit more simplistic. This could be because I came about the resource later in my learning. 

**12\.** [Codewars](https://www.codewars.com/?language=rust) allows you to do coding challenges with peers. It is really cool and helps hone your skills. I personally found it useful to figure out if I understood certain concepts correctly. 

**13\.** [Coding Game](https://www.codingame.com/start) is a game-based learning how to code website that also supports Rust. I didn't get to delve too much into it though Coding Game has a lot of good reviews as it helps make learning fun.

#### 💲 Paid Resources

**14\.** [Egghead.io](https://egghead.io/q/rust) is more project-oriented and helps developers build portfolios through projects for jobs. There are various interesting options, though one of the nice ones is a course that walks through the Rustlings exercises.

**15\.** [Educative](https://www.educative.io/) has several resources to learn Rust hands-on of which one ties to the [Beginning Rust from Novice to professional](https://amzn.to/3DS1pBi) book.

### 3) YouTube Videos 📹

**16\.** [Rust Tutorial](https://www.youtube.com/playlist?list=PLLqEtX6ql2EyPAZ1M2_C0GgVd4A-_L4_5), by Doug Milford was one of my favorite resources. Doug does a great job in explaining a lot of the sticky concepts in Rust. The videos also go over different code examples and scenarios to explain.

**17\.** [CS Honors @ Illinois](https://www.youtube.com/channel/UCRA18QWPzB7FYVyg0WFKC6g/featured) was another favorite go-to channel to clarify concepts. The series of videos is based on the CS196 (now CS124) freshman course at the University of Illinois at Urbana Champaign which is run by students. The course videos are not entirely about Rust, however, for the ones that do cover Rust concepts, I found them to be extremely helpful.

**18\.** [Lets Get Rusty](https://www.youtube.com/c/LetsGetRusty/featured) is a useful channel that provides weekly videos about Rust. It has a nice playlist that goes over "the book" chapters one by one. Though I did find the videos to be fast-paced at times and struggled a bit with some of the explanations.

**19\.** [Rust Crash Course](https://www.youtube.com/watch?v=zF34dRivLOw), by Brad Traversy is a great quick tour that introduces various concepts to the absolute beginner.

**20\.** [Ryan Levick](https://www.youtube.com/channel/UCpeX4D-ArTrsqvhLapAHprQ) is a Microsoft engineer that works on Rust and has a series of videos with useful explanations for certain concepts. There is also a cool project where Ryan builds an SDK for Microsoft Flight Simulator 2020 using Rust.

**21\.** [timClicks](https://www.youtube.com/channel/UClny6qj9Mv7uFo9XGUGYQBA) is a channel by Tim Mcnamara that covers various topics in Rust and also offers live coding streams. Tim is also the author of the [Rust in Action](https://amzn.to/3DRu0qh) book mentioned earlier.

**22\.** [Free Code Camp](https://www.youtube.com/watch?v=MsocPEZBd-M&t=1820s) provides a beginner tutorial for Rust that works through a CLI application. Although somewhat useful, I didn't spend much time on this one as I struggled with the audio quality and the video was hard to view on Mobile.

**23\.** [Jon Gjengset](https://www.youtube.com/channel/UC_iD0xppBwwsrM9DegC5cQQ) provides a series of videos about Rust concepts, however, I didn't find many to be entry-level as they assume a certain level of knowledge. These videos would probably be better when you become more comfortable with Rust concepts.

### 4) Git Resources 💾

**24\.** [The Rust Programming Language](https://github.com/rust-lang) is where you would find most documentation and guides related to the language itself and its crates/libraries. 

**25\.** [Awesome Rust](https://github.com/rust-unofficial/awesome-rust) is a great repo with a huge curated list of plenty with Rust code and resources. You can find complete applications in different areas that were built based on Rust.

**26\.** [Ferrous Systems](https://github.com/ferrous-systems) is a Rust consultancy and one of the leading contributors to the Rust ecosystem. In their repos, Ferrous provides publicly all the training material (code examples and slides) in their paid private training courses. This also includes their embedded training.

**27\.** [The Algorithms](https://github.com/TheAlgorithms/Rust) Rust git repo offers code examples for many essential standard algorithms for data structures, sorting, and strings, among many others. This is a very good resource if you are trying to practice for job interviews.  


### 5) Cheat Sheets 📃
There are various options, just pick what suits you most

**28\.** [The Rust language cheat sheet](https://cheats.rs/)

**29\.** [Rust beginner cheat sheet](https://quickref.me/rust)

**30\.** [Rust cheat sheet](https://phaiax.github.io/rust-cheatsheet/)

**31\.** Let's get rusty cheat sheet which you'd have to sign up for a newsletter [here](https://letsgetrusty.com/) to get.

### 6) Question Forums 🙋‍♂️
Asking Questions is obviously a crucial part of learning. What made it better is how helpful and friendly rustaceans are. Also for the resources listed below, the awesome part was that you get your questions answered really quick (almost immediately most of the time).

**32\.** [The Rust Programming Language Discord](https://discord.com/invite/rust-lang)  

**33\.** [The Rust Programming Language Community Discord](https://discord.com/invite/rust-lang-community)

**34\.** [The Rust Programming Language Subreddit](https://www.reddit.com/r/rust/)

**35\.** There is the [Rust Language Forum](https://users.rust-lang.org/) which I personally didn't leverage at all as I found what I need in the previous.

### Conclusion
Learning Rust is no easy feat, as such leveraging as many resources as possible becomes necessary to assert acquired knowledge. In my journey, I've come across many resources that I found useful and summarized in this post. I hope for the new learners to be able to leverage and find useful. What was your experience like? What were your favorite Rust learning resources? Share your thoughts in the comments 👇. 

#### If you found this post useful, and if Embedded Rust interests you, stay in the know and skyrocket your learning curve by subscribing to The Embedded Rustacean newsletter:

{% cta  http://www.theembeddedrustacean.com %} Subscribe Now to The Embedded Rustacean{% endcta%}