you want to get started in Ethereum? I get several requests for info and resources and roadmaps every week so I decided to make this collection. I hope this helps and provides some more direction and is less overwhelming than other giant lists.
There are many different ways to learn and become a dev, this is just one that I recommend.
To build a full Ethereum app from scratch you will need understanding of 3 things:
- Writing smart contracts for Ethereum in Solidity
- Reading and writing to contracts from the web using Ethers.js or Web3.js (there are other libraries but these are recommended)
- Creating a front-end that people can use to interact
Last updated: September 28, 2022
Contact @cupOJoseph to add something
0 -> 1 : Where to start
- Ask for help. So far so good!
- Spend 1 hour doing my most basic Solidity workshop, creating a simple token from scratch video.
- Complete the first 6 CryptoZombies tutorials which gets you through basic syntax for solidity: https://cryptozombies.io/. The rest of the tutorials there are exellent, but they also suggest learning the dev framework called Truffle, where I prefer to use the Hardhat framework instead.
- Do the free solidity course on Chainshot which will cement your understanding of smart contracts. You dont need to join their bootcamp to access it. https://www.chainshot.com/courses
- Start writing your own simple contracts on http://remix.ethereum.org/, a simple interface. Use https://oneclickdapp.com/ to make calls and share a link to a simple front end for experiments. Deploy them on a test network like Rinkeby where the coins are fake so there are no real transaction fees for experimenting
- To make your own front ends connected to your smart contract you may want to learn more javascript libraries like Redwood, although there are many others and if you are already a react dev you should just stick with what you already know. Here's a tutorial for that from my friend Patrick. If you have no javascript experience, go back to Chainshot or CodeAcademy.
- Use my site https://ethhole.com/learning for a list of helpful resources.
- Come up with something you want to make to build a little portfolio, if you need inspiration check out practice projects at https://ethhole.com/challenge
- Figure out what knowledge you are missing to reach your goal and ask for help on http://reddit.com/r/ethdev
1 -> 100 : Where to go deeper
Okay, you've made some simple dapps and you understand the stack of building apps on Ethereum. Nice! Now its time to get a little deeper if you want to get a serious dev job
- Launch an ERC20 token using Open Zeppelin (OZ), it doesnt have to do anything, but you need to understand using OZ and token standards. Here's a 60 second tutorial I made. Experiment with some other standards, like ERC721, and 1155
- To create any significant dapp other people need an API to index transactions happening and track stuff. Use theGraph to create a subgraph for your token
- Join a hackathon on Gitcoin, or do a bounty there to add more serious projects to your portfolio and get more practice.
- Start building some integrations using SDKs from the most popular dapps. You need to understand liquidity pools which is the basis of DeFi, so do an experiment with Uniswap SDK.
- Use Hardhat to create tests, add print statements to your smart contracts, create a more streamlined developer experience and workflow.
You did it!
Okay now you are a full Ethereum dev because you:
- Have mutliple complete dapps in your portfolio, even if they are simple
- Know how to write a smart contract that does just about anything, and deploy it.
- Know how to create an API and a nice front end that can read and write to your dapp
Practice project ideas:
Voting Dapp
Create a dapp for voting where all of the votes and candidate registration happens on chain. Allow anyone to start an election with a registration period, voting period, and ending time. Allow anyone to sign up as a candidate during the registration period, and allow anyone to vote once during the voting period. Create a front end where voters can see the results and know how long is left in the election.
Make a zillow like front end for exploring metaverse properties between several NFT and game-fi apps. Suggested tech: OpenSea API, Infura, Redwoodjs, Seaport protocol.
Integrate 2 of your favorite DeFi protocols
Understanding integrations and how smart contracts can talk to each other is essential. You could build a sushiswap style yield farm for Sudoswap. Or fork of DAI that uses LP tokens for collateral.
Santa's List
Create a user tracking dapp. Build a system for tracking who is on their nice list and who is on their naughty list. Allow for people to pay a fee to get themselves off of the naughty list. Let users on the nice list earn a portion of the fees based on how many other people are on the nice list.
ETH Tree visualization
Take in an ethereum address and build a tree of all other addresses that have ever interacted with it, and the ones that have interacted with those after the original, up to 100 branches etc.. Suggested technologies: Ethers.js or Web3.js, Nodejs, Infura.
Event staking
Write a program that lets people pay a small amount, RSVP for an event, and if they don’t show up then everyone who did shares in the reward. A person can create and event, and check people in. If someone RSVPs but doesn't get checked in they lose their staked ETH.