Blockchain Developer Path from ground zero (from a real developer)
— Part 1
Let me start this document by clarifying the title on it. I will only write for other developers; every topic that you will find in the following list, has its order and its reason to be.
The main reason behind this document is I have met thousands of other non-blockchain developers (no matter the seniority) that have already started working with web3 technologies, and they always end with big lakes of knowledge on topics that then, in ongoing production solutions, they may end making huge mistakes.
So, without further introduction, I will start the path. More resources could be found in this GitHub repository: https://github.com/AlejoLovallo/BlockchainPath
Pre-basic level: The theoretical one
This level is non-mandatory but highly recommended if you are a complete newby or you want to start from ground zero. Without going too deep, you should know and understand the following questions and topics.
- When did everything start?
“It all started with Bitcoin in 2009, then in 2015 Ethereum was released”
- Why Ethereum?
“Because it has enabled through the EVM(Ethereum Virtual Machine) to run pieces of reusable logic in a blockchain called Smart Contracts (SC from now on)”
- Do I need to know how the EVM works in detail?
“Absolutely not, however, you will need to know just a few topics (but highly important) about it.”
- What is the language used for EVM blockchains?
“Solidity, but you could use Vyper too.”
- “Are there other Non-EVM blockchains?
“Yes, like Solana, Near, and so on.”
- “Do these other blockchains use Solidity for developing their SC?
“No. Solidity is only for EVM-compatible blockchains.”
List of Smart Contracts programming languages:
- Solidity (Ethereum and other EVM-compatible chains)
- Rust (Solana, NEAR, Cosmos)
- JavaScript (NodeJS) (Hyperledger Fabric, NEAR)
Now you will probably ask yourself if you should start your developer path with Solidity or not. Well, my advice is no matter what your seniority and what your current stack might be, please start with Solidity. There are mainly two reasons behind the advice:
- The number of EVM projects, communities, and resources.
- The other languages used for developing sc are quite new in the blockchain ecosystem and thus, the communities and the resources are scarce. Also, the infrastructure and developer toolkit that the EVM-compatible blockchains have already developed, is not present in many of the other non-EVM blockchains.
Basic Level: Acquire solid foundations
So, welcome to Solidity.
First, let me introduce you to Hardhat, the framework you will be using to help you with developing your smart contracts. The documentation is pretty clear and straight forward so I will save some virtual ink here and not add anything else about it.
As you might have noticed, hardhat is a Node Js library, thus, yes, the usual stack for a blockchain developer involves Node Js, Javascript, and Typescript.
To conclude with the framework setup, hardhat comes with several plugins to bootstrap your project. I will not go into any of them in particular, but I have to make a stop in the hardhat-deploy plugin. It is a community but strongly maintained plugin that allows you to improve the deployment of your sc. It is a must to know.
Why you should not say anything about Remix online IDE?
- Because as a blockchain developer, you will not use Remix on a daily basis. You might use it to test something in particular but if you are starting this journey it is better to begin with the whole and professional setup.
Which version of Solidity should I start with?
- Always the last stable one. By the time of writing this article, version 0.8.18 is the current solidity version you should use.
The best approach to start learning Solidity
First, you must know these things before you deep dive into coding Smart Contracts:
- Smart Contracts have a limited size of 24kb. Thus, a lot of code styles and techniques you will see are because storage is expensive and limited.
- For statements, you could say they are forbidden.
- Smart Contracts, once they have been deployed to a blockchain, they are immutable.
Start with Solidity by example and, for every topic you do not understand take a look at the official documentation.
Only in case you want to strengthen your knowledge, I would advise you to proceed with one of the famous courses like CryptoZombies or alike.
Finally, a list of resources in incremental difficulty and knowledge to complete your basic level:
The second part will cover the next level of the roadmap. I highly recommend the knowledge acquired through the list of resources and articles etched in your mind. It is absolutely important for the next topics to learn.
Goodbye, little Padawan!