Everyone is talking about web3, and there’s crazy money flowing into this space. An average blockchain developer makes $140k/year. Getting into this industry is the best thing you can do as a developer!
Since the web3 industry is relatively new, there are not a lot of resources, and a lot of them are not updated. I’ve compiled a list of the best resources and guides to create the ultimate roadmap to learn web3 and Solidity.
1. Blockchain Fundamentals
The first you need to understand to become a web3 developer is the blockchain. This will help you easily architect and optimise smart contracts(we’ll talk about this more later). Let’s take a look at what the blockchain is, and how it works.
A blockchain is an immutable, public and decentralised database that is owned by the users. The data is stored in the form of blocks, hence the name “Blockchain”. To link the blocks together, each block contains its data, its hash, and the hash of the previous block.
The hash is a unique string that is calculated from the data. The hash changes based on the information. You may have come across this when implementing JWT tokens in NodeJS.
If someone tampers with one of the blocks, the hash changes and the next blocks become invalid since the chain is broken. The person would then have to recalculate all the blocks in the chain, which will take a very long time(10 minutes/block).
Copies of the blockchains are stored on computers all over the world, called nodes. So you’ll also need access to the majority of computers, and repeat this process. It’s pretty much impossible for a computer to do all this fast enough so the network doesn’t notice and doesn’t try to kick the fraudster off the blockchain.
Here’s a short Udemy course that delves deeper into the fundamentals of the blockchain:
https://www.udemy.com/course/blockchain-and-bitcoin-fundamentals/
2. Decentralised Applications
DApps or Decentralised Applications are apps built on top of the blockchain. The main technologies used in DApps are:
- Frontend: JavaScript frameworks like React, Vue, Angular
- Backend: Rust and Solana or Solidity and Ethereum
Now, you might be thinking, what are examples where DApps are used? Here are a few industries DApps can revolutionize:
- Escrow — Whenever you buy/sell a house, You need to trust the buyer to pay up on time, or keep the money with a third-party company. What if the buyer doesn’t pay, or the third party runs away with the money? DApps can ensure the transfer of money securely
- Records — Once something is added to the blockchain, it cannot be edited or removed. This is very handy when maintaining house records, medical records etc.
- Payments — Cryptocurrencies can be used for easy and secure payments to transfer value. Although gas fees are pretty high right now, I’m sure they’ll decrease in the future.
3. Frontend Web Development Basics
As I mentioned previously, DApps may have blockchain technology powering the backend, but the frontend is JavaScript. Here’s what you need to learn:
- HTML — Common HTML tags
- CSS — Basic Properties, Flex, Grid
- CSS Frameworks[Optional] — Bootstrap, Semantic UI, Tailwind etc
- JavaScript — Variables, Functions, Classes, ES6 etc.
- JavaScript Frameworks[Recommended] — React/Vue/Angular
I also recommend learning web2 backend, as a fallback in case web3 doesn’t work out. Here’s what you should learn for the backend:
- NodeJS Fundamentals — Event loop, I/O
- API Framework — Express
- Databases — MongoDB, SQL, PostgreSQL
Here’s an amazing course on web development by Colt Steele:
https://www.udemy.com/course/the-web-developer-bootcamp/
4. Ethereum Fundamentals
Ethereum is a blockchain that processes smart contracts. Ethereum is by far the most popular blockchain for creating smart contracts in 2022. Solidity is the language used to develop smart contracts with it. The official documentation is a great place to start learning more about Ethereum:
https://ethereum.org/en/developers/docs/
5. Smart Contracts
Smart contracts are immutable code on the blockchain that executes a contract. Smart contracts are similar to classes in JavaScript. These are used to power DApps.
Just understanding the concept of smart contracts isn’t enough, you should also be able to develop them. Here’s where Solidity comes in. Solidity is a high level, object(ish) oriented programming language which is made specifically to build smart contracts easily.
However, since Solidity is very new, there are very few resources to learn it. The best way to learn is by building projects and solving the problems you face by referring the documentation. Let’s look at some resources that follow a similar pattern.
1. Buildspace
Buildspace is a cohort-based learning platform, and it’s one of the best resources to learn Web3. You can build DApps, NFT collections, NFT browser games, DAOs and much much more with Solana, Polygon and Ethereum.
You also get a free NFT on completion of a project, which is super cool! You get access to their exclusive job boards where the biggest Web3 companies hire from.
2. LearnWeb3DAO
Learn Web3 DAO is another amazing resource to Web3. It has 4 different tracks — Freshman, Sophomore, Junior, Senior for developers with various skill levels. You learn to build DApps, NFT collections, ICO tokens, DAOs, DeFi protocols and much more.
Oh, and did I mention this is for the high cost of $0 / month? And that’s not it, you build projects along with 1000’s of other developers, participate in hackathons and make lifelong friends!
3. CryptoZombies
Do you like Games? You’re going to love this. CrytoZombies is a gamified programming course where you build a zombie factory using smart contracts. You should learn from one of the other resources, and practice your skills using CrytoZombies.
4. Nader Dabit
Nader Dabit talks about:
- React
- Web3
- Serverless
- Blockchain
- DeFi
You should subscribe to his youtube channel if you’re interested in web development or web3:
https://www.youtube.com/c/naderdabit/featured
5. FreeCodeCamp
FreeCodeCamp released a FREE 16-hour course on Solidity. You’ll learn all about Solidity, the blockchain and smart contracts.
This course will give you a full introduction to all of the core concepts in blockchain, smart contracts, solidity, NFTs/ERC721s, ERC20s, Coding Decentralized Finance (DeFi), python and solidity, Chainlink, Ethereum, upgradable smart contracts, and full stack blockchain development.
6. Connect Your Smart Contract With Your Frontend
Now that you know how to develop smart contracts, you need to actually use them. There are two main libraries to do this — web3.js or ethers.js. Let’s see why ethers.js is better than web3:
- Much smaller size
- Less buggy
- Better documentation
- More popular
- Easier for begginers
- Extra Features
7. Alchemy
Alchemy is a suite of developer tools to prototype, debug and ship products faster. Alchemy supports various chains like — Ethereum, Polygon, Starknet, Flow and more. It has an awesome NFT API that allows you to get your NFT collection up and running with ease. It also supports web3.0 push notifications, and it has a supercharged blockchain api too!
8. Remix
Remix is a browser IDE specifically made to build Ethereum smart contracts using Solidity. There’s no setup needed, you can immediately start writing your code.
It compiles your code for you, and it helps you easily test it. Not only that, you can easily deploy your smart contract too.
9. Hardhat
Although Remix is awesome, sometimes it isn’t enough and I miss my VS Code setup with all my 42 extensions. You’ll need a local Ethereum environment if you’re using VS Code. Here’s where HardHat comes into play.
Hardhat helps you easily deploy your contracts, run tests and debug Solidity code. You can deploy your contract on various networks like Ropsten, Rinkeby, Mainnet etc. Oh, and it also supports TypeScript 🤩
I like to build and test the functionality of my smart contracts on Remix, and then move it to VS Code when done.
10. Truffle
Truffle is my go-to development tool for smart contracts. It helps you easily compile your smart contracts and use it in your frontend code. Ganache also comes with Truffle, which simulates a blockchain, adds test accounts etc. It’s really helpful to avoid boilerplate.
From:https://blog.devgenius.io/how-to-become-a-web3-developer-e1e76a23dcc7