Home

Awesome

Rust :crab:. How do I start?

A collaborative advice for this casual question that gets asked many times, so here it is as a Github repo anyone can contribute to and improve!

🐱 What to expect?

Some hand-selected articles to give you a feeling of what's the journey like.

🚜 Main track

This is largely the learn path you should follow. It is hand-selected, minimal, and high-value, highly effective content only

  1. 🦀 The 📚Rust Book. You can read it cover to cover, or skim it. What ever you do, make sure you have a pet project idea to experiment with. You can pick 📚any of the core utils you like. The advantage of just re-implementing a core util is that you are probably familiar with one of those, they're just CLI apps and you're not biting more than you can chew, and you do have the source code in that repo for reference.
  1. 🧰 Pick a hobby project that's useful for you. Something more than trivial that includes data passing and a few modules (just so you get to experience the borrow checker and data modeling) something in the scope of 🏗️bat. Work on it and go back to the Rust book from time to time (as well as, well - StackOverflow). Repeat, rinse.
  1. 🤝 Asking for feedback is highly encouraged to get better at writing idiomatic, readable and performant Rust. You can ask for feedback in the Rust Subreddit or in the Rust Programming Language Community Discord Server.
  2. 📐 The 📚Rust API Guidelines for why things are the way they are. E.g. why into, and why the _mut postfix. For understanding the Rust-"isms" around you when reading people's code.
  3. 🌱 You're now ready for 🏋️‍♀️Rust by example and 🏋️‍♀️Rust by practice
  4. ⏫ 📚Rust patterns is a great intro to idioms in Rust
  5. 🚀 Next, 📚Zero to Production in Rust will give you some service-ish, production-ish use cases which will round off your experience
  6. 🤔 When you feel curious about the "why's", pick up 📚Rust for Rustaceans. Skim it and read what's interesting to you, cover-to-cover is a hard read, unless you have the focus & time.

From here, since everyone have their own taste, visit 📚Rust Books from time to time to pick up a resource that you feel can move you forward to the next step.

📦 Starter libraries - save me from choosing 🤦‍♀️!

These are opinionated but popular choices. The goal is to avoid paradox of choice while learning.

:ok_hand: Thinking in Rust

Hand picked material to give you context, reasons, and history of how Rust evolved. Some of it is historical.

🥇 Gold Nuggets

Great articles, blogs, videos of specific topics in Rust, that are must-read or must-watch

💡 Project ideas

These are easy starter project ideas, not full-blown projects, just to get you up and running.

🤘 Looking to work with other people

Find other people that are passionate and looking to build stuff in Rust for fun.

🤾‍♂️ Hold on! I want to just play around before deciding to start

Some links to give you a feeling of Rust, if you're not ready to make the jump yet, or need some convincing to invest the time

💻 Cool stuff to have open in a tab while working

If you have multiple screens, and like a full immersive learning experience - you can keep these open at all times

🚀 Releasing

Mental Bridges

These links will help bridge the mental model when you're coming from Node.js

I'm a Node.js Developer

  1. Add Rust for node developers to your schedule, which is a soft intro just to get your bearings.

I'm a Python developer

  1. Check out From Python into Rust

Contributing

Please feel free to submit PRs to improve this list. A few pointers:

  1. The list must be concise
  2. If there are new tracks, feel free to open them by adding a new subtitle to this README and submit PR (i.e. "Rust for game developers, how do I start?")

Happy hacking!