My Journey with Rust & Substrate
Tags: rust, substrate, learning, resources
Published: 2021-01-18 02:16:14

A few months ago, I decided to learn  [Rust](https://www.rust-lang.org/) , mainly because I’m very interested in  [Substrate](https://substrate.dev/)  (a Blockchain framework). At first, I thought it would be an easy task, and that it will take just a few days and I should be up and running. Well, that wasn’t the case, I really struggled with this language, it reminded me of my University days, studying C++, I felt like I don’t know what I’m doing, which is probably very true. 

So, I decided to take a step back and have another take on this process, approach it a bit differently and in a more systematic way. On my first try, I simply went to the docs read everything, and tried some code. That didn’t really help much, it only made me more confused and less motivated.
The second time around, I decided to follow a “consistent motivation” approach - something that I came up with while writing this post. 

Basically, whenever I feel lost and unmotivated, I’ll go watch some YouTube videos that would excite me. 
Here are some of my favorite: 
*  [rhymu8354](https://www.youtube.com/channel/UC4ZfpU7QX3iSatYB2GDum5Q) 
*  [Jon Gjengset](https://www.youtube.com/channel/UC_iD0xppBwwsrM9DegC5cQQ) 
*  [David Pedersen](https://www.youtube.com/channel/UCDmSWx6SK0zCU2NqPJ0VmDQ) 

# My Process
* Read the Rust docs, all of it, without trying any of their coding examples, I just wanted to get a feel of what’s going on in this language - the story behind it. That helped my intuition for whenever I read Rust code. 
* Watched a TON of YouTube videos. I found a bunch of great channels of devs streaming themselves learning and coding Rust. That was inspiring and gave me the desire and motivation to actually try to code things myself.
* Followed the top Rust accounts on Twitter. The goal was to keep myself up to date with all things Rust. They also share great resources and blog posts.
* Re-read the Rust docs again, this time I tried all the code they provided, and I spent a lot of time familiarising myself with its syntax.
* Read as many blog posts as I can find.
* Read all of Substrate  [codebase](https://github.com/paritytech/substrate)  on Github.
* Build something with Substrate. 

# Lesson Learned
* Don’t give up quickly.
* Realize that learning takes time.
* You’re not the only person struggling with learning new things.
* Read other people’s code (!important).
* READ THE DOCS.
* CODE CODE CODE.

# Rust Resources
* Great Udemy Course https://www.udemy.com/course/rust-lang/ 
* Official Rust docs https://doc.rust-lang.org/book
* Rust by example https://doc.rust-lang.org/stable/rust-by-example

# Substrate Resources
* Substrate Crowdcasts https://www.crowdcast.io/e/substrate-seminar
* Substrates Tutorials, Knowledge base, and Recipes https://substrate.dev/en/
* Substrate Developer Hub https://github.com/substrate-developer-hub
* Polkadot docs https://wiki.polkadot.network/en

This is my first blog post ever, I hope it helps someone with their coding journey. Oh, and I’m definitely open to any feedback that could help me improve the quality of what I’m sharing on this blog. 

Follow my posts on: [Adib Hanna](https://blog.adibhanna.com/)

Cheers!