The Relicans

loading...

Why I'm Learning Rust

aishablake profile image Aisha Blake ・3 min read

I've been a JavaScript developer for nearly my entire career. I've even spent much of said career teaching other people to write JavaScript. And now, all of a sudden, here I am coming to you live on Mondays (and Tuesdays) to stream Learning Rust.

I could sum this up quickly by saying "Why? Because I can!" but there are other good reasons to learn Rust and I'd also like to share some of the resources I've used so far.

Move fast without breaking things

My (perhaps over-) simplified impression of Rust's goals is that it's trying to be fast, safe, and friendly. You get the crunchy, low-level goodness that you get with a language like C++ but with guardrails that make it more difficult to make costly mistakes.

In addition, at least so far, the error messages and documentation I've read have been uncommonly clear and helpful. In the following example, the compiler is not only telling me that I tried to use a variable that doesn't exist but is telling me there's a similar name that does exist which may be (is) what I'm looking for.

error[E0425]: cannot find value `filename` in this scope
 --> src/main.rs:9:23
  |
9 |     println! ("{:?}", filename);
  |                       ^^^^^^^^ help: a local variable with a similar name exists: `fileName`
Enter fullscreen mode Exit fullscreen mode

Learning with a buddy

Probably the best part of this process for me has been that I'm not doing it alone! My brilliant colleague ChaelCodes is right there with me, which has made the last couple of weeks so much more fun. We approach the material differently, come up with different questions, and can play off of each other's strengths.

Aaaand sometimes we get sidetracked and I sing songs. 😅

The point is that I highly recommend connecting with at least one other person also actively learning whatever you're trying to learn. It might be difficult to find someone you vibe with but it's worth the effort!

Some ideas for finding your learning buddy:

  • Put out a call on Twitter
  • Check your Slack and Discord communities for an "accountability" channel
  • Join whatever platform people use to talk about your subject of interest
  • Ask around at work to see whether anyone has the interest/bandwidth

Circling back to web dev

My friend Laurie Barth was the first person to spark a real interest in Rust for me. She did a great job of sharing her first impressions of the language on her blog. That led to me digging into some of Chris Biscardi's writing on his experience with Rust. Essentially, hearing what other folks in my very JavaScript-heavy circle were doing with Rust got the wheels spinning in my head too!

Chris is building a Jamstack framework called Toast with both Rust and JavaScript that feels like it's right up my alley. I'd like to be able to contribute to the project and better understand how it works!

I'm not planning on shifting to systems engineering or game dev anytime soon, so it helps to have a project in mind that's relevant to my primary area of interest (broadly, web development).

Resources

I'm excited by what I've learned so far! It feels good to have the time and freedom to devote to learning something like this because I want to. If you've decided you want to as well, check out the following resources and be sure to drop in on my Twitch channel and tell me what you're building with Rust!

Discussion (3)

pic
Editor guide
Collapse
eduardoklosowski profile image
Eduardo Klosowski

I've tried to learn rust a few times, and this time I'm getting good results, I just need to do a project now.

Collapse
aishablake profile image
Aisha Blake Author

Oooh, I'd love to see what you make!! This is my first time around and I've been having a great time but really only just getting introduced to the community.

Collapse
eduardoklosowski profile image
Eduardo Klosowski

For now, I only used rust to do some experiments for my master's degree. When I get more time I intend to start a project, or redo one that I have already done in python.