Searching for a new programming language to learn in 2021? There are many great options out there, but Rust might be one of the best. It’s fun to learn, can improve your skills as a software developer, and has a very welcoming community.
In this article, I will look at why you should learn Rust, list the path I would take to learn Rust if I were you, and then include the resources (all of them free!) that you can use in your journey.
I’m not going to say that all the software development companies of the world are waiting in line to grab new Rust developers hot off the presses. That might be true in a few years or so.
For now, Rust is the best language for growing as a software developer.
First off, working with things like memory management, borrow checker, lifetimes, and the expressive types will undoubtedly make you a better software developer. More than most other programming languages, Rust is good development practices set in stone.
But that’s not all. While Rust is neither Haskell nor Lisp, it has awesome support for all kinds of fun activities like functional programming and macros that you can try out while learning Rust.
Additionally, Rust has a huge community of helpful people and a ton of learning materials. That also counts for something.
While nobody would fire me for recommending you to start with the official Rust book (and it is, indeed, a reasonable choice), I think there is a better and more practical way.
Learning the language with just a book is a journey that frequently stops somewhere around the 70th page. Therefore, I believe in accomplishing small things and acquiring practical skills before taking on the long-distance trail that is The Rust Programming Language.
First off, I suggest checking out one of the introductory Rust tutorials: either A half-hour to learn Rust(text), Tour of Rust (interactive), or Rust Crash Course (video). This should get you going with Rust’s syntax and the main philosophy of the language.
At any point where you feel that you are almost ready to build your own toy applications, just go ahead and do it. There are some nice online communities to ask for feedback and support, so don’t be worried about getting stuck!
Below, I cover these and all the other resources you might use while learning Rust: books, tutorials, videos, and more. Each one has a small description so you can decide which are useful for you and which are not.
The Rust Programming Language is the official tome that contains all the basics of the language. If you want to learn Rust, you will find all the information necessary here, and it’s quite a good resource.
Rust By Example is a collection of runnable examples that cover more or less the same features as the official Rust book. It might be a good place to turn to for examples on how to use a particular feature.
The Rust Cookbook contains practical code samples that accomplish some of the basic programming tasks you might do with Rust. The collection does feel rather haphazard, though.
Easy Rust is a book that is originally meant for non-native English speakers, but, to be honest, I think that a lot of people will find it easier to learn Rust from it. The official book is a bit dense, and, while this book could use a little bit of editing to receive a stellar recommendation, I think it is much more accessible.
There’s zero fluff here. In a time frame that’s rather close to the half an hour mentioned in the title, you will get accustomed to Rust code by going through a lot of different code snippets.
A Gentle Introduction to Rust is an extensive online tutorial/book written in a very enjoyable language that covers most of the basic Rust.
Tour of Rust is a fun, interactive tutorial on the basics of Rust. It’s also multilingual (available in 15 languages!), which could be a benefit for non-native English speakers.
If you don’t yet know a lot about Rust, I have written a small introduction that talks about why Rust is cool and what it is used for. It can be useful for gaining more context before using other learning resources.
A concise 2-hour video on the basics of Rust that is good for learning the syntax of Rust and getting familiar with Rust code.
This is a video series that covers the book mentioned before, Easy Rust. If you prefer learning from videos, this could be a great alternative to using a book. At the moment of writing, the project is not yet complete and covers only a fifth of the book.
Crust of Rust is a collection of 90+ minute videos on more intermediate Rust topics such as lifetimes, iterators, and others. These videos are well presented and quite informative, so I highly suggest checking them out at some point.
If you want to get more experience and intuition with the language, Exercism is a stellar option. I’d recommend doing exercises as early as possible since it is a fantastic way to cement concepts and accomplish stuff without agonizing over what things to build.
Rustlings is basically Rust-specific Exercism. In most of the exercises, there is some kind of fault in the code that makes the compiler angry, and your job is to pacify the compiler. It’s great to build intuition on how the Rust compiler works and what are the most common code issues.
Too lazy to download the Rust compiler and set it up? You can try out Rust in the Rust Playground.
Rust Cheat Sheet is what the name implies. A lot of stuff on Rust on one huge page. You might find it useful as a reference piece while writing code.
While learning a programming language just by listening to podcasts is not the greatest idea ever, New Rustacean is an excellent resource to learn or reinforce basic Rust concepts while taking a walk or (less common nowadays) doing a commute.
I hope that these resources can help you in your journey, and I wish you the best of luck in learning Rust. 🦀 If you want to read more about Rust, subscribe to us on Twitter for more new articles or go straight to our blog's Rust tag.