Guide to Full Stack Solidity Developer - Part 1
Next: Guide to Full Stack Solidity Developer — Part 2
Below are the skills that you should have to become a Full Stack Solidity Developer. This means you should be good in web development (React, Typescript) + Blockchain Development (Solidity). The goal of this article is not to keep a repository of all resources, but just a path and few references that you should know. I would recommend to find more and better resources.
I generally write Dapps (distributed blockchain applications) using Solidity, React.JS, Typescript. So this article will be more focused on these technologies, but you can still use the approach and find a similar counterpart for your specific technology.
I have given sample references, you can search for better github projects. You can always search for additional resources from youtube and github apart from what is given in these notes.
While practicing, reading, analyzing the below smart contract will will know more about crypto ecosystem and how solidity is used to build real wold applications.
1. Solidity
Ref: https://www.reddit.com/r/solidity/comments/s6259q/what_are_some_good_beginner_projects/
You should do all Solidity Basic (start with this), then Solidity Intermediate Projects (then this), then finally Solidity Advance Projects. Generally you will work on Advance Projects.
1.1 Solidity Basic Coding
In this you should be able to write simple solidity projects (no need to create a frontend at this point) and run them either in local blockchain environment or live ethereum testnets.
You should know:
- Overview of working of blockchain.
- What are smart contracts. Why they are needed.
- Smart Contract development setup for building smart contracts. I use VSCode + Hardhat (Solidity development framework) + Ethers.js + Chai + Waffle + Typescript. You can refer this repository to see the starter code.
- Knowledge of Ethereum Blockchain (read whitepaper), Ethereum mainnet, Ethereum testnet
1.2 Classification of Smart Contracts
1.3 Solidity Basic Projects
- https://github.com/Aniket-Engg/solidity-school
- Some form of gambling game. Doing this will help you learn about algorithms for randomness in Ethereum
- Simple bank (customers, withdrawals, deposits)
- Wallet contract (multisignature)
- Escrow contract
- Contract where someone arbitrates for a dispute
Refer to part 2 of this guide to learn react typescript web development.
1.4 Solidity Intermediate Projects
- Most Popular Track (Ethereum)
- Jobs for Ethereum Developers
- buildspace
- Discover Ethereum & Solidity
- Solidity Tutorial — CryptoDevHub
1.5 Solidity Advance Projects
- Some form of game like Cryptokitties.
- A game where players can fight in turn-based strategy battles
- A clone of Steemit
- A decentralized exchange
- Pet Shop
1.6 Smarts Contracts You should have deep understanding of:
Resources: https://bytescout.com/blog/top-5-smart-contracts.html
You dont have to memorize of code them, these are just few important smart contracts that you should analyze and understand properly.
- ERC20 Tokens (For coins and tokens)
- ERC721 Tokens (For NFT)
- UniswapV2Pair.sol (Important Contracts)
- GovernerAlpha.sol (Important Contracts)
- MasterChef.sol (Important Contracts)
- For Additional Contracts refer: top 5 smart contracts
Solidity Resources
Solidity Contract Collection
- Solidity by Example
- GitHub — raineorshine/solidity-by-example: A collection of short yet fully-functional contracts that demonstrate Solidity language features.
Tutorials
- #1 Solidity Tutorial & Ethereum Blockchain Programming Course | CryptoZombies
- Solidity
- Ethereum Adventure
- GitHub — crytic/not-so-smart-contracts: Examples of Solidity security issues
Practice and CTFs
- https://github.com/Aniket-Engg/solidity-school
- Capture the Ether
- For a complete list of CTFs, Challenges and Writeups Refer: https://github.com/blockthreat/blocksec-ctfs
Important Resources
- Security Considerations — Solidity 0.8.10 documentation
- GitHub — miguelmota/solidity-idiosyncrasies: Solidity gotchas, pitfalls, limitations, and idiosyncrasies.
- GitHub — fravoll/solidity-patterns: A compilation of patterns and best practices for the smart contract programming language Solidity
Join Coinmonks Telegram group and learn about crypto trading and investing