Career
January 11, 2023

How to become a web3 developer in 2023

A step-by-step guide for becoming a Web3 developer in 2023

Introduction

Whether you are a seasoned web2 developer looking to switch to web3, or someone who’s new to development and looking to start in web3, this is a simple guide that will show the path for learning.

In this guide, we will focus mainly on the Ethereum blockchain but the principles and path remain the same for all other blockchains (Ex: Solana, Cardano,…).

Prerequisites

If you are a complete beginner with no previous experience in software development you will struggle to learn web3 as it's built on web technology. Hence why you’ll need to learn web development before you start your blockchain development journey.

At the very minimum you should be familiar with:

  • HTML/CSS
  • Javascript/Node.js
  • REST APIs and the client-server model
  • Working with the CLI
  • A front-end framework (I recommend Vue.js as your first front-end framework )

So give yourself a few months to learn the basics of web development and once you are skilled enough you can move on to learn web3.

Steps

1. Learn what the blockchain actually is

Understanding the underlying mechanics of the blockchain, and the history and ideas behind the creation of such technology are crucial to getting into the space. I recommend first understanding what Cryptography is and how it applies to blockchain.

2. Picking a blockchain platform

There are many competing smart contract blockchains to choose from, but to this day Ethereum remains the platform number 1 for smart contracts. Most job posts and projects out there for Web3 Dapp development are for Ethereum.

This means you initially need to learn just Ethereum. As a result, you’ll have access to a lot of online content, a lot of examples and projects to play with, plus a huge community.

Once you are comfortable with Ethereum, learning other blockchains will be easier.

3. Learning Ethereum

Once you feel comfortable with the theory and have a decent enough understanding of the space, you should go to learn what smart contracts are and why they were created in the first place. In short, they are programs that live on the blockchain and are quite different from normal programs:

  • Once they are deployed you cannot change them, they are immutable.
  • The data that lives on these smart contracts can be changed
  • It costs money to change the data, the more complex and time it takes to execute the code, the more expensive it is.
  • It takes time to change the data on the smart contract when you submit a transaction because you have to wait for the data to be mined, which takes about 15s on Ethereum.

Another related concept is the EVM, which stands for “Ethereum virtual machine” and it's the part of Ethereum that runs the smart contracts. You will need to understand how Ethereum executes smart contracts and the API of Ethereum. The latter is how we can actually interact with the Ethereum blockchain and be able to read and change the data on it.

Next, you’ll need to understand what a transaction is, which is a signed data package to modify the state of the Ethereum blockchain. It’s used to execute smart contracts and also transfer ether between addresses.

To interact with Ethereum you’ll need a node, but running your own node is complex and requires having a powerful machine. So what you can do instead is use a node as a service, like Infura.io or Alchemy.

4. Learning Solidity

Solidity is the most popular Smart Contract language for the EVM. Solidity is a statically typed language, meaning variable types are defined at compile time. It’s also a much more limiting language compared to some other popular languages for the Web like Javascript. That’s why we avoid doing complex things on Solidity.

The best way to experiment and learn Solidity is by using Remix which is an online IDE for Solidity. By using it you have nothing to install or configure, you just visit the website, write some code, compile it then deploy it.

5. Learning a Smart Contract Framework

After getting comfortable with Remix you should learn a Smart Contract Framework. That’s because Remix is not suited for complex Dapps.

Currently, there are two popular choices: Truffle and Hardhat. I personally prefer Hardhat, both of them are great and offer nearly identical experiences, but Hardhat can feel a bit more complex. Both of them come with a suite of tools to test, deploy and run a Smart Contract against a local blockchain.

So what I suggest is to try them both and get a feel for the tool, and then pick the one you feel most comfortable with.

6. Understanding the security aspect of Ethereum

By default, it’s nearly impossible to hack the core Blockchain protocol. That means if a transaction is set to move the money from one transaction to another one, it’s impossible to hack this and change the recipient address.

However, it’s possible to introduce bugs in the Smart Contract logic itself. Going through Solidity Best Practices is a must if you are going to create production-grade Dapps.

Keep in mind that security is extremely important for Dapps since once you deploy the smart contract you cannot change it. However, there are few attempts to write upgradable smart contracts, but even in that case, each deployment should have no bugs since they can be catastrophic and result in millions of dollars being stolen. Rekt.news is a website that keeps track of the major hacks that happen in the blockchain space.

7. Learning Token Standards

The most common one today is Ethereum Request for Comment or ERC for short. Some of the popular ones include:

  • ERC-20: defines the standard for fungible tokens.
  • ERC-721: defines the standard for non-fungible tokens (NFTs).

You can, obviously, implement any of these standards from scratch by following the ERC. But that’s error-prone and will take a lot of time. So instead you can use OpenZeppelin which is a battle-tested implementation of the most popular token standards.

8. Learning about public Testnets

In blockchain technology, a Testnet is an instance of the blockchain that runs the same underlying software as the Mainnet. It’s used for testing and making sure everything works as it should before deploying to production (Mainnet).

The most popular Testnet at the moment is Goerli. To deploy on it you will need some Goerli Eth, which you can get by using a Goerli faucet.

9. Learning Etherscan

Etherscan is a Blockchain explorer, meaning it's a visual interface that lets you see stats about Ethereum like transaction data, blocks, and network metrics.

It can be used for both Mainnet and public Testnets.

10. Building Full-stack Dapps

Once you have some smart contracts deployed to the blockchain, the only way to interact with it is by using the CLI. This is obviously not ideal, that’s why you’ll need to create a front end for your smart contracts.

In most cases, this will be very similar to most web apps, with the addition of integrating with the blockchain and Wallet.

For integrating with the blockchain there are mainly two libraries to choose from Ethers.js and Web3.js. I personally prefer Ethers.js but as usual, try them both and pick the one you are most comfortable with.

As for the Wallet, it's totally up to you which Wallet you want to support. There are packages that help you integrate with multiple wallets by using the same code as WalletConnect.

Congratulations

If you have gone through all of the above you should have a clear idea about how to become a Web3 developer in 2023. If you have any questions make sure to leave them in the comments below and I’ll make sure to respond.

I hope you find this article useful