Web 3 RoadMap with Resources to learn
Tags: web3, webdev, beginners, javascript
Published: 2022-02-24 08:12:42

# Introduction

The hot time to learn and ace in Web 3.0 is now. The community is still developing. There are sufficient resources and help in the community to start learning the web3.

Developers who are unsure about the future of web3. I strongly believe in web3 due to the following reasons:
- Community is building in recent times for learning and developing
- There are startup ideas revolving around web3
- This is the next big thing in web dev
- Companies are building tools that help the development process
- There are [grants](https://twitter.com/VittoStack/status/1491007572769488901) available for web3 projects
  
I do believe in Web3. So remove any doubts from your mind regarding web3 and let's get started.

  
# Prerequisite

Before stepping into web3, you need to know the basics of web development. You should know the followings:
- Frontend(HTML, CSS, JAVASCRIPT)
- Basic Javascript Framework like React, Vuejs, etc. One is enough.
- Little of Backend(If you don't know, you can learn in the web3 journey)

![Web Development](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1p6rx3j0289921qpvg9v.png)
 

I things, that this will set you to start learning web 3.

---

# Blockchain

Blockchain technology forms the base for the web3 application. You need to understand its concept, implementation, and working to start your web3 journey.


![Resources to learn - Blockchain](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oe50iigvy9knwqbsdnnw.jpg)
 

## Resources to learn

- 📄[What is blockchain technology?](https://www.ibm.com/in-en/topics/what-is-blockchain)
- ▶️[Blockchain Theory 101](https://www.udemy.com/course/blockchain-theory-101/)
- ▶️[Blockchain Full Course - 4 Hours | Blockchain Tutorial | Blockchain Technology Explained | Edureka](https://www.youtube.com/watch?v=QCvL-DWcojc&t=7471s)

---

# Ethereum Network

Bitcoin is used for currency while the Ethereum network can deal with much variety of transactions. Learn a little bit about Ethereum technology.

![Resources to learn - Ethereum](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1u2igad9ub7u9fw2h2jn.jpg)
 

## Resources to learn
- 📄[Official Website](https://ethereum.org/en/)
- ▶️[What Is Ethereum And How Does It Work?](https://www.forbes.com/advisor/investing/what-is-ethereum-ether/)
- ▶️[Ethereum Tutorial For Beginners | What Is Ethereum? | Ethereum 2020 Explained | Simplilearn](https://www.youtube.com/watch?v=uneCaqD6Etk)

---

# dApp (Decentalized Application)

Decentralized applications are those applications that run on a peer-to-peer(P2P) blockchain network. These are the web3 application that we build using different stacks.

![Resources to learn - dApp](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2oy3mt3jonlauojc3wfx.jpg)

## Resources to learn
- 📄[What is a Dapp? A Guide to Ethereum Dapps](https://freecodecamp.org/news/what-is-a-dapp-a-guide-to-ethereum-dapps/)
- ▶️[What is a dApp? Decentralized Application on the Blockchain](https://www.youtube.com/watch?v=F50OrwV6Uk8)

---

# Smart Contracts

Smart contracts are computer programs that are non-modifiable once deployed, automatically executed when the criteria defined in it meet. 

![Resources to learn - Smart Contracts](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/binq2gwhd0oyb50uzb70.jpg)
 

## Resources to learn
 
- 📄[What is a smart contract and how does it work?](https://searchcompliance.techtarget.com/definition/smart-contract)
- 📄[Blockchain 2.0 – Explaining Smart Contracts And Its Types](https://ostechnix.com/blockchain-2-0-explaining-smart-contracts-and-its-types/)

---

# Solidity

You can write smart contracts in different programming languages such as solidity, rust, yul, and others. Solidity is the most popular and efficient when comes to smart contracts.

![Resources to learn - Solidity](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1kqvxmv0wr0ytbz0q3qa.png)
 

## Resources to learn 
- 📄[Official Documentaiton](https://docs.soliditylang.org/en/v0.8.11/)
- 📄[What Is Solidity and How Is It Used to Develop Smart Contracts?](https://www.makeuseof.com/what-is-solidity/)
- ▶️[Solidity Tutorial - A Full Course on Ethereum, Blockchain Development, Smart Contracts, and the EVM](https://www.youtube.com/watch?v=ipwxYa-F1uY)
- 📄[Cypto Zombie](https://cryptozombies.io/)

---

# Interaction between frontend and blockchain

Frontend and blockchain need to interact with each other for the exchange of information. Here comes libraries that will help in the interaction between them.

![Resources to learn - Web3 & ether.js](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3mwop1zfre1q87x45c74.jpg)

There are two major libraies:

- Ether.js
    - 📄[Official Documentation](https://docs.ethers.io/v5/)
    - ▶️[Introduction to Ethers.js (Alternative to Web3)](https://www.youtube.com/watch?v=cqdAQK7WOlE)

- Web3.js
    - 📄[Official Documentation](https://web3js.readthedocs.io/en/v1.7.0/)
    - 📄[Intro to Web3.js · Ethereum Blockchain Developer Crash Course](https://www.dappuniversity.com/articles/web3-js-intro)

---

# Local blockchain development environment

It is not ideal to deploy smart contracts directly to the main network. Also, the test network is not fast enough. For development purposes, a local blockchain environment is useful to test Ethereum based contracts. 


There are tools to create a local Ethereum based blockchain network. Few are as follows:

## Ganache 
It has a UI-based and also terminal-based local blockchain network. It comes under a truffle suite.

![Resources to learn -  Ganache](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9p5l264bb1s1jei035wn.png)
 

## Resources to learn ganache

- 📄[Official Documentation](https://trufflesuite.com/docs/ganache/)
- ▶️[Deploy Solidity Smart Contracts with Ganache Personal Blockchain](https://www.youtube.com/watch?v=UnNPv6zEbwc)

---

# Remix IDE for Smart Contract deployment

Remix IDE helps you to write solidity-based smart contracts. It helps to deploy smart contracts in the local environment as well as test networks.

![Resources to learn - Remix IDE](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wvp0fuh8wxc03y1yvifa.jpg)

## Resources to learn

- 📄[Official Documentation](https://remix-ide.readthedocs.io/en/latest/)
- ▶️[Deploy your first Solidity smart contract with Remix IDE](https://www.youtube.com/watch?v=bZKVfXmzRDw)

---

# Framework for dApp development

## [thirdweb](https://thirdweb.com/)

Thirdweb makes you develop NFT, NFT marketplace, coin, decentralized voting system, etc without writing a single line of code for smart contracts. There are modules that you can use in your web3 project.

![Resources to learn - ](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eypsefsumpi51kqgg0jh.jpg)

## Resource to learn

- 📄[Official Documentation](https://portal.thirdweb.com/learn)
- ▶️[🔴 Build Modern Cryptopunk Clone with React.js & Web 3.0](https://www.youtube.com/watch?v=hhZtiytNaBQ&t=6622s)
*You learn about thirdweb in the beginning. Rest of the tutorial is for web development*

## [Hardhat](https://hardhat.org/)

> Ethereum development environment for professionals.

![Resources to learn - Hardhat](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4vzqcf7pi7pkxqxuvlba.jpg)

## Resource to learn

- 📄[Official Documentation](https://hardhat.org/getting-started/)
- ▶️[Hardhat Tutorial | Smart contract framework](https://www.youtube.com/watch?v=9Qpi80dQsGU)

## [Truffle](https://trufflesuite.com/)

> The Truffle Suite gets developers from idea to dapp as comfortably as possible.

![Resource to learn - Truffle](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k56ficzsmjrp8s5e5nlu.jpg)
 

## Resource to learn

- 📄[Official Documentation](https://trufflesuite.com/docs/index.html)
- ▶️[Truffle Tutorial for Beginners | Compile, Test & Deploy Smart contracts to any EVM Blockchain
](https://www.youtube.com/watch?v=62f757RVEvU)

---

# GitHub Repository

I have created a GitHub repository containing all the resources mentioned above. 

{% github https://github.com/surajondev/awesome-web3.0 %}

I need help from you to improve the repository. In detail, I need your help in the following sections:
- Adding more resources
- Adding more topics related to web3
- Suggestions to improve the repo

I hope you will help me to improve the repository.

# Conclusion

*I hope, this article has helped you in finding a path to learn the web3 technologies.*

*Thanks for reading the blog post.*