Solana Development Personal Roadmap
Tags: solana, web3, rust, anchor
Published: 2022-03-23 15:37:43


## Introduction

Initially, I wanted to continue working on deploying an NFT project on an Ethereum Virtual Machine, but I was just informed that I would need to focus on building out smart contracts for the Solana Network for work. It's a given that I won't be able to provide a production-ready smart contract by next week or by this month, but I need to be able to be comfortable in that environment.

One of the most daunting parts about learning Rust for Solana or any other Alternative Layer-1's is the lack of resources. The team at Solana has done a great job developing their environments, but it's not too welcoming just yet. I'm sure we're not far from having more resources, but the information is relatively scarce.

## Challenges

There are a few challenges that a newbie like myself faces when trying to develop on Solana.

1. From a **JavaScript** background - learning TypeScript was the best preparation I did before learning Solidity, and it's looking like it'll pay dividends for Rust as well, but as a backstory, I never learned a language like C/C++, Go, Ruby, etc. I felt like learning Solidity wasn't too difficult since the language is relatively young, but learning Rust might be a different experience since it's not a language developed solely for Blockchain development.
2. **Packages** - This goes back to the lack of resources, but with developing on Ethereum, you have packages like Truffle and Hardhat that make the development experience enjoyable. With Anchor CLI being so young, the onboarding experience has been difficult to grasp. This isn't meant to shade the team at Anchor whatsoever, this goes back to understanding how Solana programs operate in comparison to Ethereum Smart Contracts.
3. **Leaders** - When picking up Solidity and Ethereum, there were clear influencers in the space that you could always look up if you wanted to learn something. With Solana being relatively young, it's not exactly easy finding information when you hit a roadblock.
4. **Educational Materials** - A large contribution to my understanding of Solidity was crafted behind resources like [CryptoZombies](https://cryptozombies.io/), [Ethernaut](https://ethernaut.openzeppelin.com/), and [Scaffold-Eth](https://github.com/scaffold-eth/scaffold-eth), etc. I've yet to find anything anywhere near those for Solana development.

## The next step(s)?

So now that I've laid out all the challenges that I face, we can build out the steps to take to overcome them.

- Learn Rust
  - Rust has some great resources to learn the languages, which is what I need to approach first. I plan on learning through [The Rust Programming Language Book](https://doc.rust-lang.org/book/).
- Learn Solana
  - Coming from an EVM background, I need to understand how Solana works under the hood and the core differences between them and Ethereum.
  - I plan on looking through their official docs and playing with their RPC API's.
- Learn Anchor
  - Being a major tool in Solana app development, I need to understand how to use Anchor and start developing small programs and deploying them to the devnet.

That's it for now! I'll keep you updated during this journey!