How I became a Web3 dev in just 7 days and got my first 8000$ Web3 contract
Tags: web3, blockchain, ethereum, polygon
Published: 2022-02-04 08:32:54

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 learnt Web3 from scratch, and I delivered that contract.

*This is how you can also proceed and become a Web3 developer.*


&nbsp;

### Day 1-2 - Mass learning 📚

During the 2 first days, I learnt `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 ...

> I write new concepts in my list and I will  check them later
> 

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.

> I spent around 7 hours by day for 2 days to do just that. In the subway, office, or when walking (podcast).
> 

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...

> The goal 🎯: to submerge myself into web3.
> 

**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.

> 🔨 The next step: to **put in practice** all that knowledge  
> 

Here is a list of the resources I used during that period:

- 📌 [Whiteboard Crypto](https://www.youtube.com/c/WhiteboardCrypto)
- 📌 [Eat the blocks](https://www.youtube.com/channel/UCZM8XQjNOyG2ElPpEUtNasA)
- 📌 [Web3 Examples](https://www.youtube.com/channel/UCQ7fLN3LWrePtqGLibU7KCA)

&nbsp;
### Day 3 - To define the scope of the Web3 project I will work on

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.

> **Scoping** the project allowed me to think more clearly about the next steps.
> 

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

> Next, let’s get my hand dirty, let’s practice and understand things by doing.
> 


&nbsp;
### Day 4-5-6: Make my hand dirty with other Github repositories. 🔨

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…! » 😀

> By playing with Web3 repo, the ***theory starts to make sense***.
> 

Here is a list of the resources I used during that period:

- 📌 [BuildSpace](https://buildspace.so/)
- 📌 [Moralis Web](https://www.youtube.com/channel/UCgWS9Q3P5AxCWyQLT2kQhBw)
- 📌 [Nader Dabit](https://www.youtube.com/channel/UC7mca3O0DmdSG2Cr80sOD7g)
- 📌 [CryptoDevHub](https://cryptodevhub.io/wiki/ethereum-virtual-machine-tutorials)

&nbsp;

### Day 7: To assemble the puzzle 🧩 and to 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 learnt 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
- ...

&nbsp;

I made a [PDF](https://mailchi.mp/171cd94f6acb/3udm90jz7h) with all the resources I have been using in my web3 journey: [check it out here](https://mailchi.mp/171cd94f6acb/3udm90jz7h)

### What’s Next?

I’m planning in the future, to release Saas App using Web3 and also to accept more freelance contracts using that technology.

👉 You can **[follow me there](https://twitter.com/devvnomad)** on Twitter, as I continue to document my journey.