Starting Rust By Example
Tags: rust, codenewbie, tutorial, motivation
Published: 2021-02-25 18:22:03

When I first started to learn how to code I remember being astounded by what I was able to do. Each new concept building on top of the previous, ultimately leading to the ability to build websites and web apps. I picked up Ruby, then Javascript, and while I became more infatuated with Javascript, in the back of my mind I knew I wanted to learn a more low-level language. I had been hearing about Rust for a bit, but wasn't sure. I thought I should probably try to learn Java, C, or C++. There were a couple of reasons that swayed me against this, and here I am making another attempt at learning Rust.

What were these reasons? 

- [The Rust Community](https://www.rust-lang.org/community):<br />
    The Rust community has always felt welcoming and open. I don't feel the same negativity that can pervade communities around other languages.
<br />

- Tooling Around Rust: <br />
    Rust is easy to install, provides useful built-in standardized utilities like testing and crate documentation and setting up Rust on my computer was simple.
<br />

- Safety And Convenience Of Modern Programming Languages, With The Efficiency And Low Level Control That C and C++ Offer:<br />
    Rust has it's own set of programming paradigms that help ensure issues like managing memory are made easier to manage
<br />

- [WebAssembly](https://webassembly.org/) - The Future of the Web:<br />
    WebAssembly looks to be the future of the web, looking to provide us with the ability to use any language to run code in the browser. Rust has already been involved, with tooling being defined for the spec.
<br />

- Interoperability Among Types of Programming, specifically:
    - Backend Engineering
    - Frontend Engineering
    - Systems Engineering


It really feels like Rust covers almost any area of programming I am or may become interested in!<br />

## How We'll Learn

The Rust website has a few recommended ways to start with Rust. 

### [The Rust Book](https://doc.rust-lang.org/stable/book/ch00-00-introduction.html)

An awesome resource that gives an overview of the language. I tried learning from the book first, but ultimately the ratio of reading to coding made it hard for me to stay engaged. We'll keep this in mind, and reference the book when necessary!

### [The Rustlings Course](https://github.com/rust-lang/rustlings#getting-started)

Great for doing Rust based exercises on your machine, but it's less hands on. I found I was either applying or researching knowledge I found in the Rust Book to solve each problem and became stuck regularly. You are thrown into the deep end, and to some degree, must figure out how to solve each problem.

### [Rust By Example](https://doc.rust-lang.org/rust-by-example/index.html)

We are going to use Rust By Example. It combines elements of the Rust Book while incorporating coding exercises. You can do exercises in the browser using the [Rust Playground](https://play.rust-lang.org/), but I suggest you [install Rust](https://www.rust-lang.org/tools/install) on your local machine. You can even find editor support [here](https://www.rust-lang.org/tools)

Rust has awesome built-in tooling and we can reference the Rust Book when working through problems.

We're going to cover each chapter in order, including the linked resources at the bottom in depth. 

Here's to joining me on this journey to learn Rust!