I want to learn Rust. There are so many resources available and I am unsure which one to go for, and if there are any tips on getting started?

I am a software developer by trade

Edit: Thanks for all the great replies!

79 points

As a wise person once told the Internet, don’t worry about picking the best one. But if you really had to pick one just start with the rust book. https://doc.rust-lang.org/book/ I would suggest to just dive in with a specific need you want to solve and instead of using your language of choice just use rust and look up stuff as you go. Hands on learning is usually the best learning. The only thing you need to “learn” is how to follow the ownership/borrowing paradigm that rust brings to the table.

permalink
report
reply
17 points

I’m looking at this book now and I guess I’ll keep reading, but the early parts are quite verbose and I keep waiting to get to a description of the language. Something like “Rust for C++ programmers” might be worth a shot: https://github.com/nrc/r4cppp

There are a few different things like that for Ada. There are also a few “Rust for Haskell programmers” and I might look at a few of those.

permalink
report
parent
reply
18 points

There’s also Rust for the Polyglot Programmer which seems to be a generic version of those.

permalink
report
parent
reply
3 points

Thanks this looks good.

permalink
report
parent
reply
30 points
12 points

I second rustlings, it’s really good!

permalink
report
parent
reply
2 points

Was about to say this one, it is very good!

permalink
report
parent
reply
23 points

https://doc.rust-lang.org/book/ this is a great starting point. Then when you got the basics, and fiddled around a bit, then you can start looking for more specialized books (like Rust Atomics and Locks https://marabos.nl/atomics/ )

permalink
report
reply
18 points

IMO the best way to start in a new language is to rewrite some of your previous projects in that language.

I generally start out by rewriting a couple simple 1-3 function console apps, basic leet code stuff like; palindrome, fizzbuzz, reverse an array in place, etc, and some simple unit tests for them. Then I go ahead and rewrite some of my previous projects or uni assignments in that language.

At that point I generally have a good understanding of basics and have an idea of how to approach a new project. When I got to this point in rust I then started on threading, async, why it’s easy to return a String and an ordeal to return &str, etc.

permalink
report
reply
-1 points

Please, don’t ever use async Rust lol :( it’s so terrible to work with closure recapture. There’s really one way of structuring your code to keep the borrow checker happy and I haven’t yet found it in my projects lol.

permalink
report
parent
reply
6 points

Yeah I would also recommend avoiding async Rust as much as possible. There’s really only a small number of situations where you need it - WASM, embedded (Embassy), and unfortunately most of the web ecosystem forces you to use it even if it isn’t necessary for 99% of people.

Sync Rust - even multithreaded - is absolutely fantastic at protecting you from mistakes & giving an “if it compiles it works” experience. Async Rust on the other hand is full of surprising and difficult to debug footguns.

permalink
report
parent
reply
15 points
  1. Combine iron with moist air.
  2. Wait.
permalink
report
reply
6 points
*

Let’s not waste time! Add salt.

permalink
report
parent
reply
2 points

Save a little more and add some hydrogen peroxide!

permalink
report
parent
reply
1 point

Nitric acid!!

permalink
report
parent
reply

Programming

!programming@programming.dev

Create post

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person’s post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you’re posting long videos try to add in some form of tldr for those who don’t want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



Community stats

  • 3.1K

    Monthly active users

  • 1.8K

    Posts

  • 30K

    Comments