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 and saw their top three core-values of the language :
(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'.
'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 or Rustlings course). 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.
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.
After that, I decided to do a simple project, local password manager , and started that. I used some crates from 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) :
- Implementing a Neural Network from scratch
- 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.
- Ferris The Crab images are from rustacean.net