this post was submitted on 26 Aug 2024
142 points (98.0% liked)
Programming
17669 readers
166 users here now
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 [email protected]
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I agree with the others who say to start with The Book -- https://doc.rust-lang.org/book/
From there, start trying to create small things that you might want or need to do (parsing JSON is something that I needed to do and I started there).
From there, you will learn to fight the borrow checker and start to feel how rust is working. This will be annoying at first, but get better over time (at least in older versions of Rust; I haven't used it in a while so it may be different now).
Read the official rust book until you feel like want to experiment with something, then go to advent of code and try something, anything out.
Then start investigating why it doesn't quite work. And I guess gpt for suggestions and random questions isn't a bad idea.
What is the borrow checker and why are people so frustrated by it?
Very TL;DR version: a variable has an owner. If you pass it off to another function, you no longer own it and can't use it until/unless it gives the variable back. Rust can be really strict on making sure you aren't trying to use something you don't own at that time. The documentation explains it better than this (and I wrote a longer post but accidentally closed the window and lost it). See also mutability and lifetimes for some pain points people might not be used to.
Thanks for the answer!