Best resources to learn Solidity and smart contract development
A list of resources that I used to learn Solidity and smart contract development
Documentation/in depth resources
- Ethereum whitepaper/yellowpaper are a must read if you want to get into smart contract development on the EVM. The white paper is a very easy read, the yellow paper is much more technical. I’d recommend skimming through the yellow paper, to have an idea of what is in it, and then refer to it as you get more comfortable with Solidity/EVM. Once you start needing to know the specifics of EVM opcodes or gas usage for different calls you will probably check out the yellow paper quite often.
- Ethereum developer documentation
- Solidity docs
- Ethers.js docs it is very likely you will need to interact with your smart contracts with JS, and ethers.js is a good library (and very popular) to do so. web3.js is another alternative.
- Open Zeppelin’s “Learn” is full of resources from OpenZeppelin
- Ethereum Smart Contract Security Best Practices
- Hands-On Smart Contract Development with Solidity and Ethereum (O’Reiley) - this is a good introduction. If you find you learn better from books than online resources this is a good start
I haven’t bought any Solidity courses, so cannot comment on the best ones.
I’m not really sure what to call these, but there are some sites that set out programming challenges and to progress through the ‘levels’ you have to complete the challenges.
- CryptoZombies probably the best beginner/intro to Solidity. If you have not written Solidity before, check this out.
- Open Zeppelin’s Ethernaut teaches you important solidity security best practices via a range of security challenges
- For more see my page on EVM and Solidity games/challenges/puzzles
I find most youtube content about smart contract development to be quite low quality or a bit too outdated, but here are a few channels that I find quite useful.
See the list of best Youtube Channels to learn smart contract development here.
Podcasts are not really great for learning programming topics in my opinion, as its often quite hard to imagine what is being discussed as code. However I found the blockchain industry moves very fast and it helps a lot to keep up to date with some of the technical news and updates
- Solidity visual auditor
- Mythril by ConsenSys - security analysis tool for EVM bytecode
Other cool links to help with learning Solidity
- Smart contract wizard
- Zeppelin Guides
- Solidity docs
- Vyper docs)
- Best Solidity links
Spotted a typo or have a suggestion to make this crypto dev article better? Please let me know!
📙 Solidity Auditing online quiz
Learn how to audit smart contracts by looking at some example code and trying to find the bugs
⛽ Solidity Gas Optimizations Guide
How to optimize and reduce gas usage in your smart contracts in Solidity
🧪 Guide to testing with Foundry
Guide to adding testing for your Solidity contracts, using the Foundry and Forge tools
📌 Guide to UTXO
UTXO and the UTXO set (used by blockchains such as Bitcoin) explained
📐 Solidity Assembly Guide
Introduction guide to using assembly in your Solidity smart contracts
📦 Ethereum EOF format explained
Information explaining what the upcoming Ethereum EOF format is all about