Rust Learning Path from Novice to Mastery
nativebyx.dev
nativebyx.dev
It gave two things - a context of an actual project (especially as usually ecosystem is more important, and tricky, than the language itself) and motivation. Otherwise, I either stop learning (which often is a good thing because it turns out I don't need this language or tech) or don't internalize the most important things.
Coming from a C++ background, learning Python required a trial-and-error process similar to what you've described. However, learning Groovy while knowing Python and Java took only a single pass through the Groovy docs - just to figure out what exact elements of Python and Java has Groovy incorporated in what way.
In context of tutorials, a lot of people write them "for themselves" without realizing it - there's just too much implicit knowledge assumed. And it's hard work to expand on all of it, without going down the rabbit hole and ending up explaining the concept of Turing Machines.
That's exactly what "Zero To Production" is about. Actually most of what makes Rust intro material good is that you are building things, not just going on about syntax and language particulars.
For example, "The Book" (what we call "The Rust Programming Language") ends with building a multi-threaded web-server.
And, most importantly, it is complete. It starts with how to install it, and the installation actually works in a few lines of code. The authors put a lot of effort into the general onboarding user experience.
comptime is cool, and I see a future for zig or its ideas, but not in less than 5 years.
In any case, I'm totally happy with Rust, and apart from the missing hot code reloading, it's so enjoyable to code in.
The world needs languages that try to be both safe and high performance. Rust is taking a shot at it. I'm not actually using it myself, but when I see people getting excited about it, I'm not laughing at them. I'm thinking that I get where they're coming from.
The only avenue that it has yet to penetrate is gaming. No other language has achieved this yet, and rust is the closest.
Finding it hard to judge. Sooner seems better but at risk of missing major understanding pieces which could end up being slower in total
There are also language concepts that will not make much sense when learning without context from a book, but will make much more sense after attempting to write something without using that first.
Rust is sufficiently complex that you have to do projects to encounter every nook and cranny of even the core language. Other language like python expertise in the language often involves knowing the libraries.
Suppose you're read a book about Rust and now you want to write a web service. You take a peek on Reddit and hear good things about Axum, so you check out its docs.
You write some handlers that do crud operations on a database, and it's all going well. You can translate the examples in the docs into your code in a pretty straightforward way.
Then you decide you want live chat. You've heard of websockets, and axum has a websocket example. But you keep beating your head against the compiler. What is the right type for a chat room? Who owns the chat rooms?
You realize now would be a good moment to take a step back and learn more systemically. After reading through the tokio mini redis tutorial async makes a lot more sense and you're back on track.
In this example you "wasted" a little time before you took a step back and studied async more, but you saved significant time by tailoring your learning to what you needed. If you hadn't gotten partway into your project you might not have realized you'd want to learn async next and instead studied something else.
"Becoming Rustacean: Resources to Learn Rust Programming" https://news.ycombinator.com/item?id=35522076 (148 points | 3 days ago | 47 comments)