0xcacti 🐸
0xcacti 🐸

@0xcacti

13 Tweets 11 reads Jan 23, 2022
I have seen a lot of threads about how to learn solidity for total beginners, but I want to write a thread on how to learn solidity for people with a non-trivial amount of programming experience.
This was certainly my journey. I took a few programming classes in school, so I learned on the standard trajectory these days. You know the deal, java, data structures, algos, computer systems architecture.
Then I went out into the world and started building some things. That said, I really didn't start getting good at programming until I got into MEV. I started by writing arb and liquidations bots is python, and then I re-wrote them in golang.
As I progressed, I started realizing how deep the world of solidity went. Up until this point, I had glanced at the docs, went through ethernauts, and thought I was a pro. Turns out that wasn't at all the case. At the moment, I am currently doing a deep dive into the language.
Here is how I would go about learning Solidity.
First, rush through crypto zombies. If you have programmed before this will be painfully boring, but it will familiarize you with the concept of contracts, gas, and the EVM.
Next, read through the docs thoroughly. Once again, nothing in the docs is very surprising. The parts that will trip you up are related to call, delegatecall, and staticcall. Still, nothing too challenging, but it is good to have a foundational understanding of the language.
Alright, you should be pretty familiar with syntax now. At this point, I recommend jumping into Ethernauts. This is a series of smart contract hacking challenges that will make you feel paranoid about every line of code you write. It will also teach you common bug patterns.
This is about where I stalled out in my learning journey. To keep going, I recommend diving into projects that you find interesting. I was fascinated by APWine, so I made a big effort to go through their code.
While you explore other people's code, when you have questions, try to figure out the answer by consulting the Ethereum Yellow Paper. This basically forces you to get a really good understanding of the EVM. Still, don't forget to use discord for questions, it's a life saver.
Finally, I recommend going out and building all the major styles of projects on testnet. Go launch an NFT project, create a DAO with a token, try to make a vault that runs a trading strategy. If you can do these things, I say you are ready to go work for a DAO.
This is another place where you could stall out on your learning. Go hand out in discord for projects that you like, and try to contribute to solving problems the community is facing. Maybe build one off projects for them. This is a good way to going on real solidity work.
Finally, start following expert solidity devs. I recommend .@transmissions11. Look at what he stars on github, or the gas optimizations he uses.
Ultimately, the best learning comes from building so if you are stuck anywhere in the learning process, go work on a small side project that you are interested in and don't give up when the going gets tough.

Loading suggestions...