Epilogue

Our tour of Rust ends here.
It has been quite extensive, but by no means exhaustive: Rust is a language with a large surface area, and an even larger ecosystem!
Don't let this scare you, though: there's no need to learn everything. You'll pick up whatever is necessary to be effective in the domain (backend, embedded, CLIs, GUIs, etc.) while working on your projects.

In the end, there are no shortcuts: if you want to get good at something, you need to do it, over and over again. Throughout this course you wrote a fair amount of Rust, enough to get the language and its syntax flowing under your fingers. It'll take many more lines of code to feel it "yours", but that moment will come without a doubt if you keep practicing.

Going further

Let's close with some pointers to additional resources that you might find useful as you move forward in your journey with Rust.

Exercises

You can find more exercises to practice Rust in the rustlings project and on exercism.io's Rust track.

Introductory material

Check out the Rust book and "Programming Rust" if you're looking for a different perspective on the same concepts we covered throughout this course. You'll certainly learn something new since they don't cover exactly the same topics; Rust has a lot of surface area!

Advanced material

If you want to dive deeper into the language, refer to the Rustonomicon and "Rust for Rustaceans".
The "Decrusted" series is another excellent resource to learn more about the internals of many of the most popular Rust libraries.

Domain-specific material

If you want to use Rust for backend development, check out "Zero to Production in Rust".
If you want to use Rust for embedded development, check out the Embedded Rust book.

Masterclasses

You can then find resources on key topics that cut across domains.
For testing, check out "Advanced testing, going beyond the basics".
For telemetry, check out "You can't fix what you can't see".