I like the Rust book a lot but it's a bit too slow moving. It explains concepts I already know so I have to skim, but then I miss something.
Perhaps the best thing doesn't exist yet! Maybe I'll write it someday. But I thought I'd ask ;-)
I like the Rust book a lot but it's a bit too slow moving. It explains concepts I already know so I have to skim, but then I miss something.
Perhaps the best thing doesn't exist yet! Maybe I'll write it someday. But I thought I'd ask ;-)
After that I really like this resource, which gets much more practical about problem-solving borrowing issues and introduces some really important tools from the standard library: https://rust-unofficial.github.io/too-many-lists/
If the Book teaches you what features Rust has, this teaches you how to use Rust in practice. It also taught me that it was a fool's errand to go and try to implement all the core data structures as a part of my learning process, because that kind of pointer-twiddling is one of the hardest possible things to do in safe Rust :)
I still use the tool today (although I'm still not sure it's the most elegant solution :P), and I've taken that knowledge I picked up in the process for other projects I've since done in Rust.
If I were where you are, I'd do something similar: carve out a simple project that you could complete in a day (or two) in a language you're more familiar with, and try to do it in Rust.
I'd also recommend joining the Rust Discord channel to field any immediate questions you might have (and going to the Forums if there's something more involved you'd like opinions on).
Good luck :)
Even though the two concepts are intertwined, you'll master borrowing well before you master lifetimes. And that's okay.
Early on you'll probably not need to author many structs that require lifetime annotations. If you think you need to, you're either purposefully building something complicated and/or memory-limited, OR you're using the concept without understanding and not needing to do so.
If you can stay away from writing your own explicit lifetimes on structs and interfaces while you're learning, it becomes a much easier process.
Once you've mastered this stuff, Rust is seldom more difficult than any other language.
It's like that quote from the Matrix. You get used to it. Pretty soon you won't even see the borrow checker.
There is also "Programming Rust", which you might like better.