A few weeks ago I got a Web3 project. I have 6 years of full-stack development, and I was a CTO for half a year.
However, I never had to deal with Blockchain or Web3 before
But, I like being challenged! And I know to learn stuff when I need it.
This is how I successfully learned Web3 from scratch, and I delivered that contract.
This is how you can also proceed and become a Web3 developer.
Day 1~2: Mass learning 📚 🔗
During the 2 first days, I learned in mass. That period had for purpose to understand the basics of Web3 and Blockchain.
First, I started to go on Youtube to watch videos about it.
When I don’t get a new word or a concept I write it in my list. Then I will try to find new videos or articles about these terminologies.
Example: Gas fee, Smart Contract, DAO, Dapp, DEX, ERC-20, non-fungible token, Gwei, ICO …
Each video gives me an average of 5–8 new terms.
Watching 5 videos will already give me a new list of 25 other concepts to understand later…
I made a notion page, where I wrote everything I understood. I will never reread these notes. I write for the sake of memorization.
My goal was simple: To submerge myself in this web3 world, to get lost.
I will most of the time not understand more than 60% of what I’m watching or reading. But that’s all fine at this point.
That knowledge will come back later on in some way…
After 2 days, I feel like I have reached a rabbit hole. I knew it would happen. Each concept brings a new concept. It’s endless…
However, I know that I need to pass to the next phase at this point. I need to put into practice the few things I understood.
Here is a list of the resources I used during that period:
📌 Whiteboard Crypto
📌 Eat the blocks
📌 Web3 Examples
Day 3: Define the Web3 project scope 🔗
I got a freelance project with some requirements: I checked the specs and tried to summarize them as much as I could with my current knowledge of Web3:
👉 We need to make our own token.
👉 When a user does something on the website (share an article, complete his profile), we send him our token.
👉 The user needs to be able to add his wallet to our website.
👉 We need to deploy that token on the Polygon Matic network.
👉 When sending a token to the user, we need to automatically pay the gas fee.
👉 For that, we need to allow our backend to pay that gas fee with our wallet.
Then for each of these items I tried to understand which library and logic I would have to implement.
I spent 4~5 hours searching on Google and writing pseudo-code.
Then I asked a senior blockchain DEV if my plan looked credible to him.
I also asked him some points I was confused about. For example, what would be the best way to automatically pay the gas fee.
That discussion was fruitful, but I knew I still had a lot to learn and understand!
Now I needed To see how other people are making Web3 app
Day 4~6: Get dirty with other Github repos 🔨 🔗
That’s when I started to look on GitHub for Web3 repositories having similar functionality to what I wanted to achieve.
When I find a repository, I look at the code. I analyze it and try to make it work.
I then take some piece of that code and try to make it work on a new project.
By doing that, I start to understand more clearly the thing I watched on YouTube or read on some blog.
This is when I have some moment of: “ Oh yeah, this is why…! “ 😀
Here is a list of the resources I used during that period:
📌 BuildSpace
📌 Moralis Web
📌 Nader Dabit
📌 CryptoDevHub
Day 7: Assemble the puzzle 🧩 & re-scope my project 🔗
Right, after 2 days of playing with repositories and making code snippets, I started to understand what needed to be done for my Web3 project.
I updated a little bit of my plan. And made it simpler and more secure than before.
Then again, I asked another blockchain DEV to check it out. “ Better! “
I’m ready to go and I will spend 2~3 weeks to finish that project.
What I learned so far during this week: 📕
- To set up smart contracts with Solidity and use Openzeppelin.
- To handle user’s wallet with Metamask API and Wallet connect.
- To set up a Testnet environment with HardhatJs.
- To interact with my smart contract and make transactions on the back-end using EtherJs
- To deploy smart contract into Polygon Matic.
- To make timelock smart contracts.
- A minimum of security when it comes to set-up blockchain’s features
- …