The Roadmap: Breaking into Web 3.0
Tags: web3, webdev, beginners, blockchain
Published: 2022-05-23 13:47:52

Well, if you are reading this, you must have heard of Web 3.0, or most likely you are learning or working as a web 3.0 developer, or you are simply a curious reader, so I would love to start off in a basic way so that even for a first timer or beginner, the concept of Web 3.0 would be much clearer.

**What is Web3.0 ( The Basic Idea)?**

Basically, Web 3.0 is the next big deal for everyone because it has the potential to change the world. If you are just starting out or planning to learn Web 3.0, you are still part of the early birds since it is a recent trend. You can start out with building your own blockchain projects, honing your skills as you go and eventually land yourself a high-paying job in the web 3.0 space, or in some cases have your own web 3.0 startup or a go-big blockchain application that will land you six-figures.

In the web 2.0 space, all data is centralized and controlled by big tech companies that offer services in exchange for personal data. In the decentralized web, no single person, organization or company can privatize the data or information about anyone or anything, and everything is visible to the public. Web 3.0, also referred to as the decentralized web, is the third phase of the internet, and is built on a peer-to-peer network of computers that communicate with each other without an intermediary.

## What are the requirements for becoming a web 3.0 developer?

The requirements are explained in a step-by-step manner, so if you are just starting out or planning to start as a web 3.0 developer, simply follow ‘THE ROADMAP’.

### 1. WEB 2.0 SKILLS

Don’t join that bad trend of starting out as a web 3.0 developer when you are still a half-baked web 2.0 developer. Funny right - I think not. Why I tell you this is because many developers make the mistake of jumping straight to writing smart contracts and trying to build on the blockchain without having a sound knowledge of development in the web 2.0 space. 

Basically, you cannot master Web 3.0 if you don’t have a strong background in Web 2.0. So before diving into the vast space of web 3.0, it is important to understand the fundamentals of web development as a whole.

Your web 2.0 coding skills, like React.js, Vue.js and the likes will be helpful while trying to transition to becoming a web 3.0 developer because decentralized applications have a standard Vanilla Javascript or Javascript Frameworks Front-end.

### 2. BLOCKCHAIN FUNDAMENTALS

As a developer transitioning to Web 3.0, you need to understand what the blockchain is, how it works, and why it is being used. You need to know the type of technology you are trying to work on.

### What is  blockchain?

A blockchain is a network of computers sharing information and is connected in a way whereby it is difficult or impossible to change, hack, or cheat the system. **It** is decentralized, distributed, and a digital ledger consisting of records called blocks that are used to record transactions across a network of computers.

Reading this, i believe you now understand that the blockchain technology is beyond just cryptocurrencies. It has so many uses, like decentralized finance (De-Fi), NFTs, Gaming, Metaverse, supply chain tracking and so much more. Do your research on what the blockchain is, how it works, how to interact with the blockchain and how web applications are integrated with the blockchain technology.

I personally recommend that you start with the Ethereum blockchain as it is very popular, and mostly because there is a lot of technical support from its developer team and a robust developer community as well. So mostly, if you are facing issues while learning or working, there are a lot of developers to reach out to.

### 3. SMART CONTRACTS

A smart contract is a software that is stored on a blockchain-based platform which is intended to automatically execute, control or document legally relevant events and actions according to the terms of a contract or an agreement. With the smart contract, you can give the blockchain specific sets of instructions to perform.

Like every other thing on the blockchain, a smart contract code cannot be modified or altered in any way. In technical terms, it is known as immutability. Smart contracts can be used for anything, from creating a Cryptocurrency to minting an NFT, to handling the backend of a decentralized application. You can research about the basics of a smart contract, how it works and what is required in building it.

Since we now know how important a smart contract is in a blockchain, we want to know how to develop it, right? Good. To build a smart contract on the blockchain you need a programming language called ‘[SOLIDITY](https://docs.soliditylang.org/en/v0.8.14/)’. Of course there are others, but because of popularity and demand, understanding solidity is crucial, so that’s what we are going with.

Solidity is an object-oriented programming language for writing smart contracts, as we already know. It is used for implementing smart contracts on various blockchain platforms. Also, it is a relatively new programming language used for the Ethereum blockchain, and it's a combination of a few programming languages. The creators of Solidity were inspired by JavaScript, Java, C++,
Rust, & many other languages, therefore making Solidity versatile & intuitive.

Once you start writing Solidity, you may notice its similarities with other programming languages, and the best part is the understandability, as it is almost written in pure English. Below is a snippet of a solidity programming language code.

```solidity
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.3;

import "hardhat/console.sol";

contract MyFirstCode {
    constructor() {
        console.log("This is my first solidity code, Yay!!");
    }
		function get() public view returns (string memory) {
				return 'I love solidity';
		}
}
```

Another reason to learn solidity is the tech market. Many companies are willing to hire professional solidity developers to build smart contracts for their blockchain projects.

**[Learn to build simple smart contracts using Remix IDE here](https://www.youtube.com/watch?v=eEQ41gD0iC4)**

Since we now know that once deployed to the blockchain, a smart contract cannot be modified, there is the need for testing before deployment.

Work with Solidity Frameworks like **[Hardhat](https://hardhat.org/)** or **[Truffle](https://trufflesuite.com/).**

For testing, you should check out **[Mocha](https://mochajs.org/)**, **[Chai](https://www.chaijs.com/)** or **[Ganache](https://trufflesuite.com/ganache/).**

For deployment, you should check out **[Infura](https://infura.io/) or [Alchemy](https://www.alchemy.com/).**

Remember I mentioned Remix IDE above, right? Well, Remix IDE is a web application used for  developing, deploying and administering smart contracts for Ethereum like blockchains. You can check it out [here](https://remix.ethereum.org/).

### 4. DECENTRALIZED APPLICATIONS (dApps)

After building and deploying your smart contract, you will need to create a user-friendly interface so that people can use it, and that’s where your web 2.0 skills are put to test. You will be building a dApp with these skills. Now, you should know that building a dApp interface is like build**ing a web application or a** mobile application with two major exceptions; your application will need to interact with the blockchain and also be integrated with a wallet. To integrate the blockchain into your application you will need to use a Javascript library like [Web3.js](https://web3js.readthedocs.io/en/v1.7.3/), which is easy to use. There are other libraries that could be used as well, like [Ethers.js](https://docs.ethers.io/v5/), so you should check them up.

**What is a wallet?**

A blockchain wallet is used to interact with the blockchain, as you may have already guessed. It helps someone exchange funds quickly, and the transactions are secure as they are cryptographically signed. A wallet, which is accessible from both mobile and web devices, maintains the identity and privacy of its users and provides all the necessary features for a safe and secure exchange or transfer of funds between different parties. Similar to sending or receiving money through Paypal or CashApp, but cryptocurrency is used instead.

There are tons of wallets out there, so i would recommend learning to integrate your application with [MetaMask](https://metamask.io/) wallet first. Another recommendation would be [WalletConnect](https://walletconnect.com/), which can help you connect to almost any other wallet.

**Learn to use web3.js and ethers.js to connect to your dApp**
You must be thinking why i specifically mentioned these two JavaScript libraries, right? Well, they are the popular choices to integrate your application into the blockchain, and they implement the Ethereum API.

[Web3.js](https://web3js.readthedocs.io/en/v1.7.3/) is a collection of libraries that allow you to connect with a local or remote Ethereum node using HTTP, Websockets, & other communication protocols directly from your JavaScript Based
front-end.

[Ethers.js](https://docs.ethers.io/v5/) is a lightweight javascript library which can be used as an alternative to Web3.js to build your javascript frontend and interact with the Ethereum blockchain.

### 5. HONE YOUR SKILLS

Keep learning and keep practicing. That is my biggest advice to you right now. Learn almost every day and find time to practice what you have learnt. Over time, your skills as a web 3.0 developer will become much better and then you know you are ready for the next phase. What is the next phase? You decide on whether you want to build your own big project, which is highly recommended because it will develop your skills in ways that you cannot imagine. You might also want to start by fixing issues with open-source web 3.0 projects, which might eventually land you a big job. Essentially, the major thing is that you must have garnered more than enough knowledge and skills about development in the web 3.0 space. 

Also, don’t forget to build your own portfolio where you can showcase your major projects. Do this only when you feel comfortable working with blockchains/dApps. A portfolio website shows evidence of expertise in your field and can also help build trust with your clients because they can verify that you are good at what you do. Also, a portfolio is important when you are trying to get jobs or internships, because potential clients/employers will sense confidence in you since you are able to showcase the quality of your work.

With that stated, i guess the article will take a halt here. This might be beneficial to you in some ways and might also not be as useful as you hoped, but i want to believe that it has added to your knowledge of what Web 3.0 development is all about and that is the most important thing here. You should also know that these are not all you are going to need to learn to be a professional, but these are the main building blocks you should get your hands dirty with, so put a smile on my face by learning to become a web 3.0 developer today. 

**Learning Resources Just For You**

- Blockchain Technology Explained

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pta07k42r4uyguemfbqh.png)
[Blockchain Technology Explained (2 Hour Course)](https://www.youtube.com/watch?v=qOVAbKKSH10)

- Web3 University

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1jfefby0dhyn4plgub1v.png)
[Web3 University - Your Guide to Blockchain Development](https://www.web3.university/)

- IBM Blog

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yd2nyk4c171ca3k5tfwb.png)
[Blockchain development | IBM Supply Chain and Blockchain Blog](https://www.ibm.com/blogs/blockchain/category/blockchain-development/)

- Alchemy Blog

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x0xrsyzc06k762pg9ex3.png)
[Alchemy Blockchain Platform](https://www.alchemy.com/blog)

- Enterprise Blockchains Fundamentals

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c8w9xotfao16qjkxt91h.png)
[Enterprise Blockchains Fundamentals - Free Blockchain Course](https://academy.101blockchains.com/courses/enterprise-blockchains-fundamentals)

- Cryptozombies

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bpbc9bz5vkkzfkndy1c5.png)
[#1 Solidity Tutorial & Ethereum Blockchain Programming Course | CryptoZombies](https://cryptozombies.io/)

- Chainshot Courses

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mrd2f0o522888bfsfoh9.png)
[ChainShot](https://www.chainshot.com/courses)

- useWeb3.xyz

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dzuka5ec8jkzn72geoxn.png)
[useWeb3.xyz · Learn Web3 development](https://www.useweb3.xyz/)

- EatTheBlocks

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9frqjrz282tg99vuhgam.png)
[EatTheBlocks](https://www.youtube.com/c/EatTheBlocks/videos)

- Buildspace

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0459s2bs00r2zoklwcej.png)
[buildspace](https://buildspace.so/)

- LearnWeb3 dAO

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jrd0k38j6r0moikrznga.png)[LearnWeb3 DAO](https://www.learnweb3.io/)

Don’t forget to share this article, you never know who might be interested in becoming a web 3.0 developer.

Follow me on [Twitter](https://twitter.com/abubakardev), [Instagram](https://www.instagram.com/abubakardev/) or [LinkedIn](https://www.linkedin.com/in/imam-abubakar-3b246a217/) to reach out. Have a lovely time. Thanks for Reading.

You can also subscribe to my YouTube channel [here](https://www.youtube.com/@abubakardev)