building the infrastructure for web3
Web3 is a vision for the internet where users have more choice, control, and ownership.
It’s a new techno-social paradigm where data can be registered on blockchains, tokenized, or managed and accessed on decentralized, open-source, peer-to-peer networks.
The crypto movement is drawing in many developers, and it’s easy to understand why. Web3 developer salaries are attractive, and the opportunity to make an impact is unparalleled. Interested in joining?
We’ve curated the best resources into a simple, unbiased starter guide. Let’s dive in!
You can take different paths to become a web3 developer and, therefore, no exact sequence of steps to follow.
There’s also a lot of information to digest, so to avoid getting overwhelmed, it’s best to take things incrementally. Here’s what the basic menu looks like.
Web3 is permissionless–there’s no barrier to entry. Any motivated person can learn to code.
It should, however, be noted that mathematical aptitude, analytical skills, and the ability to solve problems creatively can give you an advantage.
To work in the space, you’ll need to know about data structures and algorithms. You should know the basics of programming and blockchain technology.
If you’re an absolute beginner, we recommend starting with this Introduction to Computer Science.
The term “blockchain” encompasses a wide range of related innovations that affect many different aspects of society. But in short, a blockchain is a decentralized database governed by its users.
If you’re a newcomer, here’s a great Intro to Blockchain and a glossary for understanding the terminology. Bitcoin is the first and most famous blockchain, so reading the Bitcoin whitepaper is step one.
There are also good explainers that make the Bitcoin whitepaper more accessible for beginners.
Following that, you’ll need to get an overview of Ethereum, the programmable blockchain. For general context, other good places to start are YouTube channels like or .
For more depth: take this free 8-module course by Patrick McCorry, the UK’s first Ph.D. graduate in cryptocurrency.
Since blockchains operate with a decentralized, peer-to-peer network model, there’s no single server or node. In this context, a node is a piece of software on a computer linked to a network that serves a copy of the present and historical changes to a distributed ledger.
While blockchain nodes don’t necessarily need to trust one another, the system must safeguard transaction information. Enter cryptography — an essential ingredient to protect transaction information and ensure data consistency.
Blockchains rely on cryptography, so it’s worth familiarizing yourself with some fundamental concepts.
This means knowing the basics of asymmetric cryptography and its applications, including signing algorithms, public-private keypair generation, etc. Start with this overview or sites like The Joy of Cryptography.
Tokenomics is another important aspect to understand as a lot of applications in web3 are powered by tokens. And to understand tokenomics, you first have to understand money. The fastest way to do this is to read A Brief History of Money.
Now, we can get to where the value and technology intersect — an Introduction to the Internet of Value. For further context, check out Tokenomics 101, a Beginner’s Guide to decentralized finance (DeFi), and tie it together with Why Web3 Matters.
While these resources are intended to help, independent thinking is critical. Don’t rely solely on secondary sources.
There’s no one-size-fits-all approach to becoming a blockchain developer. You can become a back-end dev, front-end dev, or both. You can also work at the protocol layer or focus solely on smart contracts.
Of course, within each category, there’s a lot of variation. You can work on blockchain research, developing specifications, algorithms, tokenomics design, or tooling.
You could focus on integrated development environments, frameworks, libraries, and middleware, or spend your time at the application layer, working on smart contracts, UX/UI development, design, etc.
For most, building an application will be the path of least resistance. You could also decide to focus exclusively on writing smart contracts and skip all of the learning required to be a full-stack web developer.
Working on the protocol layer involves understanding the specs of a given blockchain and contributing to an implementation.
Infrastructure is a critical piece of any decentralized network. Indeed, Without protocol (core) devs, there is no blockchain.
Beyond that, decide if you want to focus on the front or back end. If you specialize in front-end development, you’ll want to learn frameworks like React, Vue, Angular, or Sauron.
These are the fundamentals required to build the front end of a decentralized application (dApp). DApps are applications built on a blockchain with a standard front end and a back end on the blockchain.
If you want to focus on the back end, you’ll want to learn Rust, Go, or Solidity. Here are a handful of tutorials to get you going:
The front end of a dApp is built with some of the frameworks mentioned above. Popular dApps include things like Uniswap, Aave, Augar, Foundation, Wormhole, etc.
The key thing to know about dApps is that they are (in theory) outside the purview of a single authority or entity because they run on the blockchain.
To understand how the front and back end of a dApp interact, you need to understand front-end development and the basic principles of standard back-end development.
Check out: The Complete Front-end development Roadmap.
With the basics down, you’ll have to decide which ecosystem you want to focus on. Every ecosystem has unique characteristics and different tradeoffs. Ethereum has the most activity, developer mindshare, and existing production dApps.
To start with Ethereum, you’ll likely want to use Truffle, a popular development framework. This will simplify the process and help you avoid common mistakes while building your own projects. Here’s a for that.
The back end of a dApp is not the same as a “standard” back end.
The first difference is that with a dApp, the blockchain is the main source of stored data state vs. the databases or object storage that standard backends typically use.
While the technical objectives are similar, it’s generally not recommended to dive into the back end without having a firm orientation in traditional web development.
However, if you want to push ahead, learning backend development will mean connecting DBs, creating your own REST APIs, building the business logic that will power your tools, etc.
Smart contracts are programmable scripts deployed on a blockchain to execute logical operations trustlessly on a virtual machine.
Written in Solidity, Vyper, DAML, or another language, smart contracts enable decentralized applications to leverage a blockchain’s cryptoeconomic security, the integrity of historical data, and the reliability of non-permissioned usage while being openly accessible to anyone for data verification and analysis.
To learn Solidity, here’s another . And remember, you’ll have no idea what you’re doing, and that’s okay because no one does at the start.
Before writing any code, you will have to set your development environment. This means Remix IDE, a popular tool for writing, compiling, and deploying contracts, or tools like Hardhat and Brownie can also be handy when a local development environment is needed.
And no intro to web3 development would be complete without Speed run Ethereum, which is a great place to start putting some of the pieces together.
To learn more about the process from beginning to end, including how to use the frameworks mentioned above, .
It’s also worth mentioning that it isn’t necessary to code from scratch at the beginning. You’ll want to learn how to cover specific needs and implement proper automated rules with time.
But there are plenty of smart contract templates that beginners can use. OpenZeppelin is one place to find battle-tested libraries of smart contracts. There are many others.
Protocol development involves encoding in software systems the rules that govern how a particular blockchain should behave.
Protocols are usually organized in layers, for example, the OSI layers for networking. This allows for easy coupling and the ability to develop the layers concurrently.
This layered approach has also been adopted in many popular blockchain systems. This includes layer one (L1) blockchains, the base networks for the most essential component of a blockchain: consensus, which serves as the base network for the system and provides things like security guarantees.
And layer twos (L2) — secondary protocols built on an L1 that help with things like scaling, fees, and transaction speeds. L2s are built on top of an L1 network to inherit the base layer security guarantees while moving the heavy computation to another chain.
Some blockchains also have the concept of layer 0, for example, Polkadot. In other cases, layer zero can also refer to social consensus.
To start as a protocol developer, you need to identify which ecosystem you want to contribute to and which layer. A good first step is to look at upcoming spec proposals of your chosen blockchain to understand where development is going.
Given that most popular blockchains are open source, it’s also possible to look at the code to get an idea of how the protocol is implemented. Take some time to poke around and check the issues opened and closed against the protocol implementations.
Note that protocol development also includes the infrastructure built around the different layers, for example, bridges (like ChainBridge ) or block explorers like the Beacon chain explorer. This is another protocol-level development path you can follow.
The pace of crypto makes it impossible for anyone to stay up to date on their own.
That’s why community matters. Aspiring web3 devs need to find spaces to learn and help others learn. A few things you can do:
It’s also important to get your hands dirty. Diving into Devpost is one way to start.
Another way is to build a whitelist dApp from the LearnWeb3 DAO sophomore track, create your first NFT marketplace, application, or a blockchain-based game with BuildSpace, or find inspiration in some of the resources below.
If there’s one takeaway from all this, it’s that action is the most important thing. For all the theories, there’s no better way to learn than by doing. Learning to code is not difficult.
It’s the application of knowledge that’s a challenge. And the real education starts when you build your first project.