Roadmap to become a full stack blockchain developer.
Tags: web3, solidity, blockchain, ethereum
Published: 2023-06-06 09:38:29

## Table of Contents

- [Introduction](#introduction)
- [Step-0: Pre-requisites](#0)
- [Step-1: Basics of blockchain](#1)
- [Step-2: Solidity](#2)
  - [Step-2.1: Web3 frameworks](#21)
  - [Step-2.2: web3.js library](#22)
- [Step-3: Project](#3)
- [Step-4: Future work](#4)


<a id="introduction">
## Introduction
</a>

This article is to guide on how to become a full stack blockchain developer in 2023. 
There are two types of development roles in blockchain. 

1. First one is core blockchain developer. He is the one who is takes care of main blockchain network. 
2. Second one is blockchain app developer who will develop apps and deploy it in blockchain.

As an analogy if a developer wants to develop an ios app he will just write the code in swift but not develop entire app store. Development and maintenance of app store is taken care by the core team in apple. The same way development and maintenance of main blockchain network is taken care by core blockchain developer and development of blockchain apps is taken care by app developer. 
In this article I am going to discuss roadmap on how to become **full stack blockchain app developer**.

## Complete Web3 roadmap

<a id='0'>
**Step-0**
</a>

The main important thing before your first most step is you need to have certain skills from web2. 

1. Javascript
2. Typescript
3. ReactJs
4. Cryptography 
These are the fundamentals and pre-requisites to start journey as a full stack blockchain developer.

<u>**Tip**</u>:- Basics of each concept is enough. There is no need to master all the above concepts. For cryptography concentrate more on asymmetric key cryptography which is main part of blockchain.

<a id='1'>
**Step-1**
</a>

The main thing you need to do is you need to learn basics of blockchain. What is blockchain, why it is important, difference between web2 and web3, what is meaning of a transaction in blockchain. 
Best resource to learn about basics of blockchain is ethereum documentation
https://ethereum.org/en/developers/docs/

<u>**Tip**</u>:- Study all the topics under fundamental topics section in documentation to get the essence of blockchain. Also you can refer youtube videos for the topics which you didn't understand after reading the docs. 

<a id='2'>
**Step-2**
</a>

Second is to learn solidity programming language. 
Solidity is a programming language used to code smart contracts which are like backend of blockchain Dapp(Dapp is decentralized application). A smart contract is a computer program or a transaction protocol that is intended to automatically execute, control or document events and actions according to the terms of a contract or an agreement. These smart contracts are written in solidity.
**Sources to learn solidity programming language.**
https://youtube.com/playlist?list=PLO5VPQH6OWdVQwpQfw9rZ67O6Pjfo6q-p

Above playlist is a good source to learn basics of solidity.

<u>**Tip**</u>:- Don't just watch the videos and leave. Take down the notes and code along the videos. Watching videos alone will not help. You need to code while watching the videos. Pause the videos if you think the video is fast complete the code and continue watching rest of the video. 
After completion of videos it is important to learn even about truffle and ganache. 

<a id='21'>
Step-2.1
</a>

Learn about web3 frameworks truffle and ganache which is preferred for beginners.
truffle is a web3 framework used to deploy and test smart contracts where as ganache is a local blockchain which provides an environment to run local blockchain and also provides with test accounts and test ethers. 

<a id='22'>
Step-2.2
</a>

Web3 js is a javascript library which is used to interact with the smart contracts. 
Refer web3js documentation for more.
https://web3js.readthedocs.io/en/v1.10.0/
You can learn about react solidity integration using web3 from below playlist.
https://youtube.com/playlist?list=PLbbtODcOYIoFs0PDlTdxpEsZiyDR2q9aA

<a id='3'>
**Step-3**
</a>

**<u>Tip</u>**:- Complete all the above steps before starting step-3. This step is crucial to test your knowledge and web3 skills.

Now after you had learnt about blockchain, solidity, truffle, ganache and web3js it is time to do a project. Take any of the basic project such as crowdfunding(preferred), create a smart contract, deploy and test using truffle and run it on ganache. Create a frontend using react and integrate using web3.js. Completing this project requires some amount of time and energy. If you are stuck somewhere don't get demotivated as it is normal to get stuck. It is for the first time you are learning blockchain and no one is expecting to complete the project without any hustles. If you got stuck just google the error and take help from AI tools to get the job done.

**<u>Tip</u>**:- Don't overcomplicate your project by adding hundreds of features, just keep it simple and clean with just two or three features. 

1. Before you start coding think of features for your project and pen them down. 
For example take crowdfunding project. The main features are creating a campaign and other donors donating to that campaign. These are the two essential features I need to have for crowdfunding. 
2. Then think about the variables for your project. For crowdfunding project I need to have variables related to a campaign and so onn..

If you do a proper paper work then coding will be relatively easy and fast.

<a id='4'>
**Step-4**
</a>

Now you have done the project and know about fundamentals of blockchain and solidity. It's time to go more deeper. There many advanced technologies in blockchain such as NFT's, DeFi, DAO(Decentralized Autonomous Organizations). Now you are in a stage where you can understand about these technologies on your own. Understand about these technologies in brief but you need to go and work in only one of the above. 
If you take NFT's I recommend you to stick on NFT's and to work only on NFT's in more advanced. One can work either on NFT's or DeFi or DAO. DAO is something new and it is in early stages of development but has potential to change how organizations work. 
You need to choose the path of your choice and stick to that path, because what you do in NFT's is entirely different than what you do in DeFi and DAO's. Hence stick to one path and explore more on that path.

**Tip**:- After completion of step-3 I highly encourage to participate in hackathons, join blockchain communities in discord to share your knowledge.
Dev Post and EthGlobal are the platforms where you can apply for web3 hackathons.

Hope this roadmap helps you in your web3 journey.