How I stopped worrying and started coding in Rust 🦀️
Tags: rust, beginners, productivity
Published: 2020-09-18 13:13:03

# Finding Rust
![Gesturing Ferris, unofficial mascot of Rust](https://dev-to-uploads.s3.amazonaws.com/i/1ifsflldkc3gcvxzt68v.png)
Rust is an awesome language, and one of the few that I was excited to learn when I first heard about it.
It has many amazing features, such as tagged Enums, thread support baked in language, ownership system, to name a few. This is what made it so exiting to learn and so hard to get started in the language for me.
After hearing about the Rust for first time, I went to the [official language page](https://www.rust-lang.org/) and saw their top three core-values of the language :
* Performance
* Reliability
* Productivity

(Also, it is one of the most beautiful websites I have come across 😃️)
These got me hooked in Rust. From there I went to their _learn_ section and started reading ['The Book'](https://doc.rust-lang.org/book/).

# Being Excited About Rust
'The Book' is one of the best resources for starting to learn Rust.
It contains excellent introductions about the features and using the language. (If you are more of a hands-on learner, try [Hands-on Rust course](https://doc.rust-lang.org/stable/rust-by-example/) or [Rustlings course](https://github.com/rust-lang/rustlings/)). I spent almost two - three months reading the concepts that were in Rust. Some of them were in other languages, like structures, functions and closures, and others were completely new for me, such as ownership system, traits, macros, and so on.

# Being excited for a long time
The new features that were new in the language were so intriguing, that I kept searching and learning about them, without actually starting to code. I noticed this, when I completed the book _Programming Rust_ without actually coding anything !
After realizing this, I started to look for some 'good' project topics that I can do (As that's how I usually try out the things I learn). A topic, which can take advantage of such amazing features given by the language, which can show off the strengths and unique points. And after searching for some time, I could not come up with any idea that I thought would be good to implement is this _amazing_ language. Then I realized that, sure, Rust has many great features, but for learning purpose, only thing required was that **I use Rust**.

# Doing my first Rust project
After that, I decided to do a simple project, [local password manager](https://github.com/YJDoc2/Rust-Password-Manager) , and started that. I used some crates from [crates.io](https://crates.io/) for encrypting the passwords, saving them in form of json, and rating their strength. Looking back at it now, only thing that I have done in it, is to take input from user, and use appropriate functions from crates. Even then, this was a very important step, as this helped me to move from my fascination of Rust, to actually using Rust.

After that project, I have done Two projects in Rust (with friends) : 
1. Implementing a Neural Network from scratch 
2. Compiling that to web assembly and using a simple front-end to detect the drawn digits.

They were fun, and I learnt a lot about Rust by doing them.

So if you are in position of being excited, amazed by Rust ,  **_just start_**. Even if it is a simple program, taking input and showing output, it is a great program to start with. It may not take advantage of all the cool features given by Rust, but it might be the first step of your Rust journey.


NOTE :
* Ferris The Crab images are from [rustacean.net](https://rustacean.net/)