Here are the books and topics I'm currently hoping to read and learn:
- Rust for Rustaceans
- Rust in Action
- Rust Nomicon
- Rust Design Systems
Here are the books and topics I'm currently hoping to read and learn:
It depends on your goals and interests, and how well you understood the official tutorial book.
End of this year the third edition of "Programming Rust" by Jim Blandy will appear. The second edition was quite good, but there is a lot of overlap with the official tutorial book -- and well, list price is a bit heavy.
For advanced Rust, the book "Effective Rust" is quite good, it is also freely available online.
For more concrete projects, "Command-line Rust" or "Secrets of Rust" might be an option, their content seems to be very simple and so fast to read.
Personally, I have the problem that I am forgetting more of Rust, than I am learning new. Rust is a complex language, and as I have done nearly no Rust programming this year, I know currently less than two years ago. As a compact Rust (recap) course, I still recommend my own book "Rust for C-Programmers", I regard it still as quite good, and might read it myself one more time in winter to refresh my memory.
Unfortunately, most Rust books seems to be very bad. But that might be true for most computer books that appeared in the last decades. Recently I was asked for a very simple beginner book, so I had a closer look at the Amazon preview of "Rust in a months of lunches" and was really surprising how bad a book can be to still be accepted by Manning for printing and selling.
Of course we have lists of Rust books like
My main goal is to understand and use Rust much better, take my skills to a more advanced level, and especially gain a deeper understanding of concepts like lifetimes and ownership.
I think just writing code helps more than reading a lot. Personally I also use AI to improve my Rust skills.
But "Rust for Rustaceans" by Jon Glengset should be good for a deeper understanding, and the lecture notes of Quinedot are also a good free learning resource for advanced stuff, see Appendix - Rust for C-Programmers
Thank you for your suggestions, your help, and for taking the time for me. With that in mind, I'm thinking of planning my list as follows:
Rust for Rustaceans
Effective Rust
Rust for C Programmers
The one I usually recommend after/while starting to learn Rust is Effective Rust by David Drysdale. Full of good advices and clarifications for common difficulties in Rust. So I second that one; I think that's the book that makes most sense at this point.
Depending on the content in the edition you've already read, this might be somewhat redundant, but a great book to learn Rust is Programming Rust by Jim Blandy, Jason Orendorff, Leonora F. S. Tindall (already mentioned above too). The most clear and didactic I've ever read, which covers the basics and also advanced topics like asynchronous and concurrent programming. There's a 3rd edition in the works, but it keeps being pushed back, so I'm not sure exactly when it'll be published, unfortunately.
Rust Atomics and Locks by Mara Bos is a great book for more advanced notions on concurrency, probably for later.
Another specialized book to keep in mind is Write Powerful Rust Macros, for procedural macros.
Apart from books, Learning Rust is a helpful website, especially to understand how references work. Rust for C programmers is helpful, too, if you're coming from there (EDIT: already mentioned, I'm just an echo
).
PS: I assume you already know the reference and other links listed on the Rust website.
I was thinking recently that the concepts of lifetimes and ownership are incredibly simple. The rules can be described on a single page. The difficulty people seem to have is with the consequences of those rules when writing one's programs. It forces the programmer to think more about where their data is, how it is related, and how it is shared.
I'm not sure one can soak up all that from books so easily. Better to start writing code, run up against the rules, finding/figuring out the solutions, the experience teaches.
Think of it like adding rules to the game of chess or changing some of them, it would totally change the way the game is played. Reading the new rule book is one thing, but actually playing the new game is another.
Actually, I don't have a problem with the concept of ownership. As for lifetimes, the more projects I develop, the more I really grasp it, and I'm happy learning something new each time. Still, I set this as a goal to understand it even better, because I can still make mistakes while developing a project. Thanks <3