• by serial_dev on 9/12/2022, 6:04:01 PM

    This looks like a great resource, starred and upvoted.

    I'm planning to learn Rust next, going to start in a week after a job interview I had already lined up at Google.

    I worked with many languages professionally (JavaScript, TypeScript, Java, Python, Go, and now Dart) and many others at the university (C, C++, C#)...

    ...and Rust is very appealing to me. It's a modern language where the dev tools are straightforward, no need to deal with learning 30 years of legacy conventions, great performance that's on pair with C/C++, yet, at the same time high level and easy to read and reason about. The language is still young enough to make a dent in the ecosystem and build stuff for fun without people whining about JavaScript fatigue. It's versatile, so it can be used (at least theoretically) for web backend, frontend, desktop apps, command line tools, systems programming. It has all the good parts from OOP and FP.

    Yes, I'm at least partially responsible for having "xyz rewritten in Rust" almost every day in the top list on HN.

    One thing in a bit worried about is the job market, I've been paying attention to job adverts for months and I didn't see many companies that I'd like to join that use Rust in my area (Germany).

    Learning it and doubling down on Rust feel like a gamble, but at the same time, I can't imagine that Rust will not be one of the most important languages of the next decade.

  • by givemeethekeys on 9/12/2022, 5:50:45 PM

    This is a good list, although it contains a lot of redundancy - at least, the first "how to learn" links - the youtube videos cover the same material over and over again. They are good - you may not need to watch every one in order as the author suggested.

    My approach has been considerably, uhh.. lazier, if you will:

    I just read through the rust book available on http://rust-lang.org. It is easy to follow although, sometimes it doesn't fully explain the "why" behind certain things to idiots like me. For that, I turned to a quick online search, which brought up helpful blog posts, Reddit and Stack Overflow posts.

    Thats it. Next, I'll try to wrap my head around Actix to create a web server.

  • by becquerel on 9/12/2022, 5:45:24 PM

    Is Rust old enough for there to be a 'modern' Rust?

  • by outside1234 on 9/12/2022, 5:56:26 PM

    My first piece of advice is to just start writing code.

    If you are not specifically interested in super high performance systems level code, my second piece of advice would be to write code that avoids lifetime annotations until you get the basics of the borrow checker down.

    For me, this meant writing a gRPC API with Rust using `tonic` with a `diesel` based persistence backend and observability with `tracing` and `opentelemetry`. This gives you a good survey of the basics and you'll learn about all of the core traits and language features in the process.

  • by nindalf on 9/12/2022, 6:25:50 PM

    This list undoubtedly took a lot of effort to compile, but I fear it might intimidate a newbie.

    I’d say the guide to learn modern rust could be much simpler - read The Book, write some code, and listen to Clippy (the linter) and apply rustfmt regularly.

    Almost all Rust code out there looks similar to each other because they pretty much follow this process - follow the standard linter and code formatter. The best part is, each Rust release introduces few changes so it’s easy to stay in tune with best practices.

  • by porknubbins on 9/12/2022, 6:35:39 PM

    I love Rust and this is a great resource that I will certainly refer too, but I wonder if there is a little too much Rust language anxiety since we have a so many articles on "how to X in Rust". Doesn't that point to some complication if the thing being implemented is necessarily so tightly coupled with the language its implemented in (ie in a Write TCP in Rust type resource) that you need a special resource on how to to do it? There are some exceptions where like trying to do Linked Lists in Rust where the language will do everything it can to stop you, merits its own article.

  • by burntsushi on 9/12/2022, 6:17:05 PM

    A lot of the links look reasonable.

    The substring section[1] looks a bit weird though. If you're learning Rust, diving right into how to work with char indices instead of byte offsets does not feel like the right thing to cover right away. You might really need that, but chances are you don't and would be much better served by a section that talks about how you probably don't want char offsets at all. But even that doesn't seem like you should whack a beginner with right away unless they have a specific hang-up on it.

    Beginner string stuff should be talking about string representation and going over the &str and String APIs. And depending on how early you get to it in the overall tutorial, probably using it as a springboard to talk about lifetimes.

    But writing code so you can go out of your way to do something that is probably wrong in the first place? Noooooo.

    Anyway, sorry to pick at this specific point, but the Gell-Mann amnesia effect comes to mind.[2]

    [1]: https://github.com/joaocarvalhoopen/How_to_learn_modern_Rust...

    [2]: https://en.wikipedia.org/wiki/Michael_Crichton#GellMannAmnes...

  • by zinclozenge on 9/12/2022, 6:46:46 PM

    I'd be really interested in a series that would go over how you might write code in one language (say c++, java, python, whatever), how you might try to write it in Rust and the problems it entails, and then how to write it properly.

    I haven't written Rust in 3-4 years, and trying to get back into it is painful.

  • by kbd on 9/12/2022, 6:22:35 PM

    I've been meaning to dig my teeth into rust for a long time. JT's intro to Rust videos[1] are first on my list for when I can devote the uninterrupted hours.

    [1] https://youtu.be/gesNaLkUJeA

  • by faitswulff on 9/12/2022, 6:29:07 PM

    If, on the other hand, you’re interested in pre-modern Rust, there’s always this repo: https://github.com/graydon/rust-prehistory

  • by hbn on 9/12/2022, 5:56:15 PM

    Some people need to get with the picture and drop those antiquated 2021 practices. Puke!

  • by jeff-davis on 9/12/2022, 9:52:59 PM

    A lot of the frustrating parts seem to be related to async/await, and that seems lightly covered here.

    In particular, the intricate dependencies needed to do basic stuff, and choosing among many approaches.

  • by cush on 9/12/2022, 6:55:41 PM

    Why would this be better than the Rust Book?

    https://doc.rust-lang.org/stable/book/

  • by 98sbs on 9/12/2022, 6:16:44 PM

    Can I get a job with Rust?

  • by sn9 on 9/13/2022, 2:40:36 AM

    Is this a normal amount of studying to be considered an expert in a language? Like not a world authority, but an expert as far as professional software development hiring.

  • by denimnerd42 on 9/12/2022, 5:56:32 PM

    what word are people going to use after modern. it's kind of like using the word new. we don't use modern rust around here anymore, just modern new new modern rust.

  • by spookierookie on 9/12/2022, 6:08:07 PM

    So Rust is now old enough for people to talk about "Modern" Rust?

    I'm either missing something or words don't mean what they used to...

  • by cutierust on 9/12/2022, 6:18:48 PM

    I thought entrust was modern, now there is a modern rust too!? :P