If you’re just getting started with blockchain and web3 and looking to get your hands dirty by writing some code, you might be overwhelmed by the plethora of freely accessible resources around Ethereum, Solidity and blockchain in general.
Having worked in the blockchain space for 5+ years now and for two startups writing Solidity smart contracts, I’ve been asked many times about how does one get started with learning solidity and even more so writing production quality smart contracts with no major vulnerabilities.
I attempt to share here a curated list of resources that’ll not overwhelm you but gently guide to dipping your toes in the web3 waters.
Before getting started with learning solidity and diving head first into coding, it’ll be much more easier for you to learn, think and debug your code when you have a deeper understanding of the inner workings of a blockchain and what happens when you deploy a smart contract.
Lots of initial questions and queries around, “What is a web3 wallet?”, “Why do you sign messages?”, “What are addresses?”, “Where does the code live?”, etc get answered when you know what makes blockchain/Web3 different from Web2.
The best way to get a better understanding of the architecture of blockchains in general is to read the OG Bitcoin whitepaper.
Bitcoin is what started the blockchain revolution and all the new blockchains are heavy inspired by it and still use a lot of the same components and concepts.
Ethereum takes it a step further by extending the concepts of Bitcoin to a finite Turing machine, letting you program any application in the context and execution environment of a blockchain.
Learn more about Ethereum here.
Once you have a nice overview of the inner workings of a blockchain we can now proceed to learning solidity.
There’s of course the official Solidity Lang documentation and API reference, however the solidity ReadTheDocs page isn’t a great place to start with, it’s nice to always have that handy for references and as a source of truth but I wouldn’t start with just going through the whole documentation in one go.
There’re beautiful gamified learning courses that the community has created over the years and one of my favourites is cryptozombies. It’s created as a hands-on approach of starting with small modules as projects and builds up to a complete game all the while introducing you to all the different concepts and standards of Solidity and Ethereum.
There’s a few other tools and courses in the same vein that you’ll find listed here by Ethereum Foundation.
🔗 Mastering Solidity
You should now have a solid base and understanding of solidity. But getting started is the easy part, mastering solidity and avoiding the common pitfalls and bugs that can lead to multi-million dollar hacks is the tough part.
Staying up to date with the latest developments and changes in the ecosystem is the best way to be aware of new kinds of vulnerabilities and security best practises.
However you can quickly catch up to the current state of the art via Consensys Smart contract Best Practises and Consensys Diligence Research. As well as case studies of past DeFi hacks curated by Origin Protocol.
That’s it, if you’ve gone through all the resources here, you’re a long way ahead. Of course the learning doesn’t stop here, there’s always new protocols and applications being built on Ethereum and they can come with their own set of domain expertise and pre-requisite knowledge.
You should now have the tools and resources to tackle those projects or even go build your own!