banner
davirain

davirain

twitter
github
知乎
twitter

Rust Resources Every Learner Should Know in 2023

Last year, I started learning Rust primarily for application in embedded systems. At that time, I also shared all the learning materials I encountered in a post titled “35 Rust Learning Resources Every Beginner Should Know in 2022”. Since then, I have not stopped learning Rust but have been continuously working to solidify my foundation. Therefore, I have been looking for new learning resources.

In this article, I will expand last year's post by adding more resources and reflecting on some paid resources that I had not utilized before. Just a reminder, at that time, I categorized the resources into six main categories: 1) Reading Materials, 2) Practice Resources, 3) YouTube Videos, 4) Git Resources, 5) Cheat Sheets, and 6) Q&A Forums. This year, I have added three more categories, which are 7) Courses, 8) Podcasts, and 9) Newsletters. In relevant cases, I will also add annotations for the level of the resources, whether they are beginner (👶), intermediate (👨), or advanced (👴).

I want to emphasize again that my learning journey began with the official Rust language resource “the book,” and then I primarily practiced by completing the amazing Rustlings exercises. All the other resources mentioned in this article are ones I encountered during my learning process to clarify concepts I read in “the book” or when I faced difficulties in a Rustlings exercise and wanted to explore further. Finally, when asked if I would learn Rust based on the resources at hand, if any, I might start with the quick summary resources mentioned below before tackling “the book.” If I were to choose a paid resource, then “Beginning Rust” would be the book I would select.

1) Reading Materials 📚#

Quick Summaries#

  • 👶 “The Rust Guide” is a step-by-step guide to the Rust programming language. It outlines the language well and allows learners to modify code examples for experimentation.

  • 👶 “Learn Rust in Half an Hour” is a quick overview covering many Rust concepts and providing quick examples. Everything is on a single webpage! This resource is also very useful for quickly refreshing various concepts.

  • 👶 “A Gentle Introduction to Rust” is a short book that summarizes the main concepts of Rust. The author's idea is to “try out” enough language knowledge before diving into more complex resources like “the book.”

🆓 Free Online Books:#

  • 👶 Rust Book "The Book": This is the official book on the Rust programming language written by the Rust development team at Mozilla Foundation. This is where I started learning Rust and one of my favorite resources. I often return to this book for information while writing Rust code.

  • 👶 Rust By Example collects runnable examples of various Rust concepts. I find it useful as a reference when learning concepts in "The Book."

  • 👶 Easy Rust: This is a resource that attempts to teach the Rust programming language using “easy-to-understand English” for non-native English learners. I personally find it helpful in clarifying concepts. The benefit of this book is that each chapter links to a YouTube video associated with that chapter.

  • 👴 Rust Atomics and Locks: This book, written by the excellent Mara Bos, is available for free. As the title suggests, it covers knowledge related to Rust atomics and locks. Therefore, the content of this book is very useful when writing concurrent application code. Generally speaking, this is not something beginners can easily grasp, but as you progress in your Rust knowledge, this is a must-know resource.

  • 👴 Rust Design Patterns: If you want to write code that adheres more to Rust programming language conventions, this is a great resource. It is not a good book for beginners but can be referenced when further learning Rust. If you come from another programming language, this book can also help you understand the differences in design patterns. Reading parts of this book actually helped me read other people's code.

💲 Paid Print Books:#

I personally relied entirely on free materials to learn Rust, but the books listed here are ones I obtained after my learning. Additionally, some may prefer more tactile free books, among which “the book” itself can also be purchased in print.

  • 👨 Rust in Action: I purchased this book last year. Rust in Action is a great read that provides many examples, but I wouldn’t recommend it for beginners. The author (Tim Mcnamara) himself suggests that those already familiar with some Rust read this book. My personal experience is that this book helped clarify some Rust concepts I was still unclear about. On the other hand, there are some chapters I skipped that focus more on specific application areas. Lastly, it’s worth mentioning that the author Tim Mcnamara also maintains a YouTube channel related to Rust, listed in the video section below.

  • 👨 Programming Rust: Fast, Safe Systems Development: This book is rated as an Amazon bestseller. I also got a copy last year. It details many nuances and different approaches to doing the same things in Rust. I think it’s a very good reference book because I feel it covers every aspect of the language. However, I don’t recommend it for beginners as it can sometimes be a bit overwhelming.

  • 👶 Beginning Rust: From Novice to Professional: If you want to purchase a book and you are a beginner, I would say this is the book you should choose. I found this book to be one of the easiest to understand for teaching Rust. The benefit of this book is that its material is also combined with practical materials on Educative.

  • 👴 Rust for Rustaceans: This is a popular book among advanced users with great reviews, but I haven't gotten it yet. I recommend it because the author Jon Gjengset has a YouTube channel that I really enjoy (more details in the video section below).

2) Practice Materials 🏋️‍♂️#

🆓 Free Resources#

  • 👶 Rustlings is a git project that contains small exercises for learning Rust. I really enjoy this resource because it covers every topic in "The Book" and can be quite challenging at times. I completed all the exercises, and I felt a great sense of accomplishment every time I finished a difficult task. My favorite was writing a function in a single line to find the factorial of a number using iterators.

  • 👶 Exercism has a learning path for practicing Rust. I find the presentation of these exercises interesting. Although I found these exercises a bit too simple, this might be because I discovered this resource later in my learning.

  • 👶 Codewars allows you to engage in programming challenges with peers. This is cool and helps you hone your skills. I found it very useful for figuring out whether I correctly understood certain concepts.

  • 👶 Coding Game is a game-based learning programming website that also supports Rust. I haven't explored it in depth, but Coding Game has received many positive reviews for making learning fun.

  • 👶 StackUp is a developer community where you can learn and earn rewards by participating in our activities and tasks.

  • 👨👴 Advent of Code is an annual event where you can solve small (but high-quality) programming puzzles using any language you want. It is applicable to any language you are learning. You might find this, this, and this repository useful as they provide templates and solutions for previous years.

  • 👶👨👴 LeetCode is a popular interview preparation platform with various coding problems of different difficulties to solve. If you encounter difficulties, there are various repositories and developer video resources solving Rust coding problems.

💲 Paid Resources#

  • 👶 Egghead.io is a project-oriented resource that helps developers build portfolios by creating projects for work. There are various interesting options, one of which is stepping into Rustlings exercises through a course.

  • 👶 Educative has several resources for practicing learning Rust, one of which is closely related to “Beginning Rust: From Novice to Professional.”

3) YouTube Videos 📹#

  • 👶 Rust Tutorial by Doug Milford is one of my favorite resources. Doug does a great job explaining many tricky concepts in Rust. The videos also present different code examples and scenarios to explain concepts.

  • 👶 CS Honors @ Illinois is another channel I like to refer to for concepts. This video series is based on the CS196 (now CS124) freshman course at the University of Illinois Urbana-Champaign, hosted by students. These course videos do not cover Rust entirely, but for those videos that cover Rust concepts, I found them very helpful.

  • 👶 Lets Get Rusty is a useful channel that provides weekly videos on Rust. It has a nice playlist that introduces each chapter of “the book” one by one. Although I sometimes find the video pace a bit fast and some explanations somewhat difficult.

  • 👶 Brad Traversy's Rust Crash Course is a quick introduction that introduces various concepts to absolute beginners.

  • 👶 Ryan Levick is an engineer who previously worked at Microsoft and is now working on Rust, providing a series of useful explanations of certain concepts in his videos. There’s also a cool project where Ryan builds an SDK for Microsoft Flight Simulator 2020 using Rust.

  • 👨 timClicks is a channel created by Tim Mcnamara that covers various topics in Rust and provides live coding streams. Tim is also the author of the previously mentioned book Rust in Action.

  • 👶 Free Code Camp provides a beginner tutorial for Rust, operating through a CLI application. While somewhat useful, I didn’t spend much time on this because I found it hard to hear the audio quality, and the video was difficult to watch on my phone.

  • 👴 Jon Gjengset offers a series of videos on Rust concepts, but these videos are not truly beginner-level as they assume a certain level of knowledge. These videos may be better as you become more familiar with Rust concepts. That said, this is a channel I really enjoy after delving deeper into Rust. In the videos, Jon picks a specific topic in Rust and addresses it from almost every angle. But be careful, these videos can be very long! Each video may be no less than an hour long. The longest video is 7 hours and 20 minutes!

  • 👶 Code to the Moon provides great videos that clarify specific difficulties in Rust.

  • 👶 Noboilerplate offers interesting and quick Rust tech videos.

  • 👶 Dcode provides a playlist of high-quality Rust programming tutorials.

  • 👶 300 Seconds Rust offers short videos on different Rust concepts. If you want to quickly refresh or delve into a concept, this will be a great resource.

  • 👶 The dev method provides a list of Rust videos explaining specific concepts. I find the explanations very clear and easy to understand.

4) Git Resources 💾#

  • Rust Programming Language is the main source for finding most documentation and guides related to the Rust language and its libraries.

  • Awesome Rust is a very good repository with a curated list of many Rust codes and resources. You can find complete applications built in different domains based on Rust.

  • Ferrous Systems is a Rust consulting company and one of the main contributors to the Rust ecosystem. In their repository, Ferrous publicly provides all training materials (code examples and slides), including their embedded training courses.

  • Algorithms Rust git repository provides code examples of many basic standard algorithms, including data structures, sorting, and strings. If you are practicing for a job interview, this is a very good resource.

5) Courses 👨‍🏫#

  • 👶 “Rust First Steps” is a free course provided by Microsoft that offers an introductory perspective on Rust.

  • 👶 “Rust in Motion” is a paid short video course provided by Carol Nichols and Jake Goulding. Carol Nichols is the co-author of the previously mentioned “The Rust Programming Language.” The videos introduce the basic aspects of Rust.

  • 👶 “Rust Essential Training” is a paid course available on LinkedIn with high ratings. It covers the essential aspects of Rust that are crucial for beginners.

6) Cheat Sheets 📃#

There are various options, choose the one that suits you best:

7) Q&A Forums 🙋‍♂️#

Asking questions is clearly a key part of learning. The friendliness and helpfulness of Rustaceans make it even better. For the resources listed below, it’s surprising how quickly you can get answers to your questions (most of the time almost immediately).

9) Podcasts 📻#

Here are some useful podcasts discussing Rust concepts and interesting topics.

9) Newsletters 📰#

To stay updated on Rust, you can subscribe to the following newsletters. These newsletters provide a weekly summary of everything related to Rust.

Conclusion#

Learning Rust is not an easy task, so it becomes necessary to utilize as many resources as possible to confirm the knowledge you have mastered. Throughout my learning process, I encountered many resources that I found useful and summarized them in this article. I hope learners find it helpful. How has your experience been? What are your favorite Rust learning resources? Share your thoughts in the comments. 👇

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.