Every day more and more people are transiting to Web3. The demand for developers is increasing as Crypto use grows at an exponential rate. Skills in blockchain development are among the most in-demand in the tech industry. It's difficult to find a proper/clean roadmap and resource to get started with Web3 because it's so new.
In this article, I'm going to give you a roadmap and some of the best resources on the internet that will definitely help you get your first job in Web3.
Basics of computer science
Before getting into Web3 and Blockchain development, It is better to have good knowledge about the basics and fundamentals of computer science. I highly recommend the CS50 course by Harvard University.
It is completely free, and after completing this course you will have a broad and robust understanding of computer science and programming.
Basics of Blockchain
Now it is time to learn the basics of Blockchain. Jumping directly to Web3 without knowing the basics of blockchains is possible but it could be difficult, therefore I recommend understanding the basics of blockchains and how they work this way you can understand web3 without difficulty. Here is a video from the Coding Tech YouTube channel that explains the blockchains technology in 2 hours.
The basics of blockchains include topics such as "How a blockchain works", "What is DeFi and how it works", "What is the Decentralized web", "What are Token economies" etc. The above video covers all of them
Web3 and Blockchain Terms
The blockchain ecosystem is very vast and has a lot of confusing words and terms. To make your learning path straight, I recommend understanding the most important of them cause you will 100% need them in the future. I have made a list of 30 terms and I hope you find it useful.
You don't need to memorize all the 30 terms, you just need to have an idea and understand them.
Programming language
When it comes to building decentralized applications, Solidity and Rust are quite popular programming languages. You can choose any of them and build your application using that language.
Solidity
Solidity is an object-oriented, high-level programming language for creating smart contracts on the blockchain that automate transactions. The language was created by participants of the Ethereum project when it was proposed in 2014. This language is mostly used to make smart contracts on the Ethereum blockchain.
I have chosen Solidity and currently building most of my Web3 projects on top of it. If you want to learn to write dApps on top of the Ethereum blockchain. Solidity is a pretty good choice.
Resources
Here are the 3 best resources that can help you learn Solidity.
This is the place to go if you're a developer who's interested in crypto but doesn't know where to begin. Buildspace is a great place to start learning and creating some cool projects.
CryptoZombies is an interactive school that teaches you all things technical about blockchains. It teaches you about Solidity and Ethereum blockchain.
It is a great collection of more practical examples, incl. source code and supporting videos.
Rust
Rust is an ideal smart contract language: It is type-safe, memory safe, and free of undefined behaviors. If you want to build an application on the Solana blockchain, Rust is a very good choice.
This language itself has many features that make writing Rust code both more ergonomic and easier.
Interacting with blockchain
Once you understood how to write smart contracts, it is time to connect them with the front end of your application. There are many libraries that does that but the most popular are Ethers.js, Web3.js, and Web3.py. All of these libraries aim to be a complete and compact library for interacting with the Blockchain.
Web3.js
The Web3.js library is the primary JavaScript library you'll use while creating Web3 applications. web3.js is a set of libraries that let you use an HTTP or IPC connection to communicate with a local or distant Ethereum node.
Ethers.js
Similar to Web3.js, Ether.js is a JavaScript library allowing developers to easily interact with the Ethereum blockchain and its ecosystem. According to their docs, It was originally designed for use with ethers.io and has since expanded into a more general-purpose library.
If you are looking to learn Ether.js, Dapp University has recently made a great tutorial about it.
Web3. py
If you are a python, this library might come in handy for you. Web3.py is a Python library for interacting with Ethereum. It helps you help with sending transactions, interacting with smart contracts, reading block data, and a variety of other use cases
Dapp University has also made a great tutorial on building blockchain applications using Web3. py
Development environment
When it comes to writing smart contracts, you can either use Remix IDE or your own local development environment.
Remix IDE
If you are new and want to learn, Remix is a great choice. It allows you to develop and deploy smart contracts just from your computer browser. You don't need to install or set up any other software. It also has dark mode 😎 and a rich set of plugins with intuitive GUIs.
Local Development environment
However sometimes when you are building a complex project, Remix wouldn't be enough and you might need a local development environment. There are many tools that can help you with this but some of the popular tools are Hardhat, Truffle, Brownie, and Foundry.
Hardhat
The most popular choice for many developers including me is Hardhat. Hardhat is a development environment to compile, deploy, test, and debug your Ethereum software.
It has its own local blockchain and it is quite easy to set up.
Truffle
Another popular choice is Truffle. According to their docs, it is a world-class development environment, testing framework, and asset pipeline for blockchains using the Ethereum Virtual Machine (EVM), aiming to make life as a developer easier.
Truffle is mostly a GUI tool that makes managing your project much easier and it is maintained by the team at Consensys, a popular blockchain software technology with headquarters in Brooklyn, New York.
Brownie
If you are a python developer, then this tool is for you. Brownie is a Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine. It is a very robust and easy-to-use framework for developing Ethereum smart contracts.
Foundry
Last but not least, we have foundry. Foundry is a blazing fast, portable and modular toolkit for Ethereum application development. It is written in Rust. It has many features including a fFast compilation pipeline, fast remote RPC, flexible debug logging, and it is portable.
SDKs
Building functionalities from scratch can be a little time-consuming, therefore we can use Web3 SDKs to make the development process much faster. Some of the popular SDKs are Moralis and thirdweb.
thirdweb
thirdweb lets you build web3 apps easily. It supports many blockchains such as Ethereum, Polygon, and Avalanche.
With thirdweb you can build NFT projects, marketplaces, tokens, NFT drops, and much more.
Moralis
Moralis' SDK provides the most comprehensive, easy-to-use Web3 SDK. Think of it as Firebase on Web2, it offers everything that the user needs to create, host, and grow great dApps in one place.
Testing
Testing plays a vital role in the blockchain. Since smart contracts are non-editable, you have to test your code before deploying. Among all, I recommend learning Chai.
Chai is a BDD / TDD assertion library that can be paired with any javascript testing framework. It is often used along with Mocha. Chai provides clean syntax that almost reads like English
Build Projects
Now it is time to build projects. Start from a basic project such as creating our own token and then continue to build larger and larger projects. The Web3 ecosystem is quite big, you can either build an NFT collection, build a DeFi, or you can clone an existing Web2 application and build a Web3 version of it
Apply for a job
Once you build your projects, make them live and push your code to GitHub (if possible), and then start working on your CV and cover letter. Yes, you can :)
If you feel that you are ready for the job, you can apply for a blockchain/Web3 developer. In case you aren't sure where to apply for. Here is a list of sites where you can find Web3 jobs.
Web3 development is a vast ecosystem. As a beginner who wants to get into web3 development, it could be a little hard to focus and learn in a proper way. If you are a self-thought developer, it's your responsibility to find a standard structure to follow. It is better to stick to a set of guidelines.
Alchemy University
Alchemy University is the ultimate ecosystem for learning how to build and interact with web3. Alchemy University is completely free and one of the best resources that can help you get started with Web3 development.
Extra Resources
This developer reference explains the fundamental concepts for creating Solana apps.
It offers a free program that will turn you into web3 developers. From the basics to advance concepts, they cover everything. They also have an active community on discord.
This is among the best YouTube channels that teach you about Web3 & Blockchain and building cool Web3 projects.
useWeb3 is a learning platform for developers to explore and learn about Web3.
It has a lot of the latest resources, tutorials, challenges, tools, courses, and boilerplates that can help you in your Web3 journey.
Smart contracts are complex and have the authority to allocate high-value resources between complex systems with huge financial loss at risk. This document provides a baseline knowledge of security considerations.
It is a great collection of more practical examples, incl. source code and supporting videos.
Conclusion
That is it for this article. I hope you found this article useful, if you need any help please let me know in the comment section.
Let's connect on Twitter and LinkedIn.
👋 Thanks for reading, See you next time