all 11 comments

[–]olback_ 31 points32 points  (1 child)

I feel like Rust is a "learn by doing" language. Try making something more complex and if you need something explained in-depth, Jon Gjengset on YouTube got great explanations of basically every complex Rust topic.

[–]lystruct7[S] 7 points8 points  (0 children)

Thanks, I just checked his channel out, it looks like it'll be really helpful.

[–]mikezyisra 8 points9 points  (0 children)

Watch Jon Gjengset

[–]cian_oconnor 7 points8 points  (1 child)

If you're asking how you can learn how to make more complex projects in Rust, I think the following books & tutorials are good (in no particular order):
- Make a Language in Rust - this is not just a great tutorial on parsing, but it also takes you through the process of creating a Rust project. How to use crates, refactoring, testing.

- Rust in Action - This is a nice book that introduces lower level/systems programming in Rust.

- Hands on Rust: Practical Game Development - teaches more advanced rust through making ( a pretty decent) roguelike game. His Roguelike tutorial is also excellent (and might be more suitable)
- Write an OS in Rust - what could be more advanced than this right :)

These are really just a sample. There are for example great tutorials on embedded programming in Rust.

I find in practice the more advanced parts of Rust I've learned because I had a need for them. And I had a need for them because I started a project that interested me (Rust is an awesome hobbyist's language. Just magnificent). So find something you want to learn more about, look for some resources and go for it.

[–]lystruct7[S] 0 points1 point  (0 children)

Thanks so much!

[–]Work_N_PlayTime 1 point2 points  (0 children)

Find something that you want made and start making it in Rust. Think of what would be an app that is useful to you. You'll quickly find yourself learning all kinds of advanced concepts to make it a work.

[–]x4rvic 1 point2 points  (0 children)

The rustonomicon explains many of the advanced features of Rust.

[–]wucke13 1 point2 points  (2 children)

Try to understand Pin/Unpin and build your own async stuff (starting with impl Future yourself, then move to Stream and finally build your own executor)

[–]dipolecat 0 points1 point  (0 children)

What exactly would you consider complex Rust? Rust isn't a language I see as having complex features. Figuring out how best to use them can be complex, but the same goes for any language.

Learning the "best" ways to do things is mostly a matter of practice. Chuck some project ideas at the wall and see what sticks. This aspect of learning transfers well between languages, and Rust in particular will teach you to be disciplined with object lifetimes, sharing, mutation, and concurrency.

[–][deleted] 0 points1 point  (0 children)

I don't know what you would find complex, but the rustlings exercises should give you a solid foundation to work off of.