Beginner to rust

I am new to learning rust. I am currently avoiding finishing some math and english homework.

how did you learn rust and how did you manage to balance learning rust with work and school life (that is if this applies to you).

what are some goals and deadline that you set for learning rust.

First I skimmed, read through the book understanding what I could and flying past the complex stuff. All the way to the end.

Then I read the book, understanding what I could. Typing the examples and playing a bit. Doing the typing, compiling, etc. Understanding or not, play with the code a bit , then on to next chapter. All the way to the end.

Then I read the book, understanding quite a bit more. Doing the typing. This time, the file placement, modules, workspace, etc start to work in my brain.
While reading the book repeatedly I also take breaks and read, skim the standard library. "rustup doc std::vec" for example...

Now I am lurking here while I go through the book a fourth time.

Learning Rust for me can be a form of structured procrastination, meaning:

". . . anyone can do any amount of work, provided it isn't the work he is supposed to be doing at that moment." - Robert Benchley


Here is my stream of consciousness for where/what I recommend for learning Rust: Book, Exercism, Udemy has a couple of low cost, good intro courses (e.g., one in particular from Pack); New Rustacean podcasts 2018-2019 by Chris Krycho - lucid and fundamental. I also enjoy reading the Rust RFC book to understand “how did we get here?”. I find myself reading Ritchie’s Programming C here and there to remind myself of the core issues at hand. I’m a big fan of FP (I was Java certified in the 90s - I know OO and love FP). Rust is neither OO nor FP, it’s both :)) there are serious productivity and performance gains to be had using a parade of map, filter reduce plus so much more from std::iterator... not to mention ways to avoid if statements and so much more using match statements. Finally, to get a wholistic view of Traits, there are several accessible, well written papers that describe “ad hoc polymorphism” aka “type classes”. Most use Haskell to describe it, but the concepts are well presented and applicable (Rust was influenced by concepts versed in Haskell). Finally, I would be remiss without mentioning a fun read “The little typer“ from MIT press. Programming with types is at minimum a useful mental exercise and likely something that will have you appreciate all the more the power and potential of the static type checker.

Note: the inventory of sources for triangulating various Rust concepts is missing a big one: the borrow-checker. This is likely the most pioneering concept brought to us by Rust so is the authority here.

I want to give a shout out to FasterThanLime. His blog covers the whole journey from the basics:

To more advanced things like:

And everything in between. I wish I had known about his blog when I was learning. It would have saved me a lot of time.


Strongly recommend Exercism.