My Journey from web2 to web3 in the Ethereum India Fellowship 2.0
Tags: blockchain, opensource, javascript, devjournal
Published: 2021-03-08 06:11:47

##TL;DR
Halfway into the Ethereum India Fellowship 2.0 . I started with zero knowledge of the web3 world. The organisers were kind enough to provide us with resources for each week which we had to complete by the end of the week. Major achievements in these 4 weeks are :-

1. Interacted with a node, synced the goerli geth network. Got introduced to web3js.

2. Learnt the essentials of Solidity, wrote a couple of smart contracts and respective tests for them.

3. Learnt Solidity in depth. Explored Balancer protocol in depth. Had a bunch of fun webinars.

4. Started working on a dApp which focuses on Arbitrage opportunities in decentralised exchanges.

#### That's it for the summary now let's dive in depth into my struggles for each week. I'll provide all the resources I found useful which you can use to begin your journey into the web3 world.


##Week1 (Introduction to web3)
So the first thing that we had to do was to sync the goerli geth node. Now it sounds easy and to be honest it is. It is literally 2-3 commands. But **it took 6-8 hours** to sync up the node and all the fellows were just left staring at their screens 😩. It got so boring that some pretty funny memes were born out of it. Here's one to give you the gist xD![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v78oyh5e4bgz65rmrpi4.png)

After this it was pretty straight forward. We had to do two things :-

1. Send a dummy transaction on the synced node 💰 (a transaction to ourselves). The whole point of this exercise was to get familiarised with web3js. The [docs](https://web3js.readthedocs.io/en/v1.2.8/index.html) are pretty helpful for the work required. If you are a python developer you can achieve the same with web3py.

2. The next was to scrape the blockchain data. We had to scrape the hashes of the first 128 blocks of a blockchain. This was super fun, felt like solving a DSA question. This might sound tricky but again it's just basic logic with web3js functions.

That's it for week1 the major resources for this week were StackOverflow threads, web3js docs and this one [video](https://www.youtube.com/watch?v=bBC-nXj3Ng4) by 3Blue1Brown
 

##Week2 (favourite week ❣️)
This week got our hands dirty! I don't know about you but I have a lot of fun exploring new tech 😁. So the whole week revolved around smart contracts 📝. Now two things are quite important for this Solidity (the programming language) and Remix (IDE). 

The week started with me learning the basics of Solidity *(great resource at the end of this week's paragraph)*. The second task of this week was to compile, test and deploy a smart contract. All of this involved heavy use of Solidity, web3js and the Remix IDE.

The next task was the most interesting one. We had to create our own ERC20 token. Which basically is my own crypto. After the hype of Doge coin and diving into the space, this was something that really intrigued me! Now I won't get into the technicalities of how I made the token (Maybe I can write a separate article for that, let me know in the comments.). So I made a token called **Open Source Bounty (OSB)**. The idea behind this token was to *put bounties on your issues in open source projects and let the person whose patch is merged get the bounty*. The token could then be traded for ETH in a Uniswap pool and which can then be traded to any other stable coin or crypto. I made a meme when I was flooded with questions like "How did you make a crypto?". Let me know how you like it xD![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cvwbt6vmrqhtt4ukn1gd.png)
 
The final task for this week was to create a smart contract which will transfer a person's crypto from their wallet to safe keeping wallet in case he/she does not call a function in N amount of time (acting as a Dead Man's switch). Like the first week this felt like a DSA problem involving the web3 architecture. It was quite fun, figuring this out!

Major resources for the week :-
1. [CryptoZombies](https://cryptozombies.io/) - To learn Solidity
2. [Remix IDE](http://remix.ethereum.org/#optimize=false&runs=200&evmVersion=null&version=soljson-v0.7.4+commit.3f05b770.js) It has a tutorial inbuilt, to make you familiarise with the new environment.
3. [Ethereum Docs](https://ethereum.org/en/developers/docs/) This is by far the best place you can go to learn the basics of web3 and familiarise yourself with the space. 
4. [What are Smart Contracts?](https://www.youtube.com/watch?v=ZE2HxTmxfrI)

##Week3 (Exploring Defi Protocols and building on Eth)
The week started with us exploring HardHat. Now what's HardHat? *Hardhat is a development environment to compile, deploy, test, and debug your Ethereum software. It helps developers manage and automate the recurring tasks that are inherent to the process of building smart contracts and dApps, as well as easily introducing more functionality around this workflow. This means compiling, running, and testing smart contracts at the very core.*

This was just a warmup task and took like an hour. The main aim of the week was to get us familiarised with Decentralised Finance (Defi) 📈. My goal was to learn about Decentralised Exchanges (DeX) particularly the Balancer protocol. Now obviously to learn that I needed to understand Defi first. So this week by far was the **most** research intensive week. A ton of articles and youtube videos at the end. 

The week ended with all of the fellows giving presentations on their protocols. It was one of the most interesting and insightful session! I'll ask all of the fellows to drop their presentations in the comments if anybody is interested in getting the gist of all the topics.

Major resources for the week :-
1) [Intro to Defi](https://www.youtube.com/watch?v=Sv0dte93lQQ)
2)[Intro to Defi (2)](https://www.youtube.com/watch?v=k9HYC0EJU6E)
3)[Liquidity Pools](https://www.youtube.com/watch?v=cizLhxSKrAc)
4)[What is Defi?](https://www.coindesk.com/what-is-defi)
5)[What is Balancer?] (https://medium.com/token-terminal/eli5-what-is-balancer-labs-16c8cfe092d9)
6)[Balancer Whitepaper](https://balancer.finance/whitepaper/)

##Week4 (Webinars and BUILDLing)
This week was all about us getting to learn about a bunch of tools and utilities which we could use to make our first decentralised application (dApp). We had a bunch of webinars from people who have been in the industry for a long time (which in this industry means 2+ years xD)
1. Biconomy  💯 
2. Oracles  💯 
3. Building on L2 (Matic)  💯 

And the rest of the time was all about us building our idea (Another article for it, maybe). 

##Wrapping Up
So this is my journey from web2 to web3. Has it been easy? Hell no! Do I find this space interesting? YES!! And one thing that I've learnt from my dev journey so far is that every new domain seems tough in the beginning. What's important is to have goals and award yourself even for the small achievements because the fun factor always overcomes the fear of failure, provided you stick with it long enough.

Also if you're someone from the web3 world. Drop in your thoughts or any resources you feel like I should have a look at. At the end a **huge shoutout to Devfolio** for having this fellowship. On a more personal note **shoutout to [Denver](https://twitter.com/denverjude)** my POC from Devfolio and **[Harsh](https://twitter.com/harshrajat) my mentor**.