My roadmap in web 3
Tags: webdev, web3, blockchain
Published: 2021-12-23 04:30:45

I decided to investigate and learn about blockchain, crypto, smart contracts and decentralized apps (dapps) A.K.A Web 3.0 from september 24, of 2021. I got curious about the term from the hype on twitter but it was more hype than truly helpful information with some valuable exceptions.

I am kind of documenting the journey and sharing my learning process hoping that can be useful for someone else but also expressing my own opinions.

> The following lists express the order of my learning process but I didn't have to finish one to start the other. for example I was learning concepts yet, and doing the cryptozombies course.

## 1 - Learn the concepts.
It is kind of hard to assimilate and embrace an idea that challenge the status quo in so many ways. We tend to be cautious, skeptic and critic about it, specially when we heard just good things and anything negative.

By reading about the idea, the goals, the key concepts, how it works and the things web3 need to improve to materialize its final goal; we emphasize more with it.

These are a good places to start:

- [Ethereum Docs](https://ethereum.org/en/developers/docs/) 

- [Web2 vs Web3](https://ethereum.org/en/developers/docs/web2-vs-web3/)

- I wrote about this in my article [an honest look at web3](https://dev.to/jesusantguerrero/web-3-0-for-mortals-3h04)

- [Web3, Blockchain, cryptocurrency: a threat or an opportunity? by Shermin Voshmgir](https://www.youtube.com/watch?v=JPGNvKy6DTA)

## 2 - Consume
By looking for and using some implementations of web3 applications OR Descentralized Apps(Dapps), we can understand what kind of applications we can build, the use cases and real world examples.

In my particular case I downloaded Brave browser as the implemented a nice use case to gain tokens for view to the adds, installed my metamask wallet, and started to follow people on twitter that provide useful content and resources.

- [dabit3](https://twitter.com/dabit3)
- [Oliver](https://twitter.com/oliverjumpertz/status/1396394220299169793)
- [vitto](https://twitter.com/VittoStack)

## 3 - Get your hands dirty.
The primary blockchain to build smart-contracts and dapps is Ethereum in addition its platform Ethereum Virtual Machine (EVM) is compatible with other platforms like Polygon(Matic) for example, so by learning solidity, one of the language of EVM you can make smart-contracts for multiple blockchains.

[cryptozombies](https://cryptozombies.io/) is an excelent resource that cover all the things you need to know to build your first contracts and dapps. since the basics of the language, libraries, ERC721 how to use other contracts with yours, how to handle security, how to connect with oracles to how to connect your frontend with a smart contract. All this in an interactive gamified tutorial.

## 4 - Build, build and build.

After the cryptozombies course, I thought the right direction was to get my local environment to build my repos and code my contracts with the learnings of the course.

After some research My stack was like this:

- [Hardhat](https://hardhat.org/) - Flexible, extensible and fast Ethereum development environment for professionals.

- [Vue 3](https://v3.vuejs.org/) - The Progressive JavaScript Framework

- [ethers.js](https://docs.ethers.io/v5/) - JS library for interacting with the Ethereum Blockchain and its ecosystem

- Brave Browser/Google Chrome with [metamask](https://metamask.io/) extension


> I choose to use Vue because I feel comfortable with it and it is my favorite framework but you can use whatever framework you like react, svelte, etc.

## 5 - Deploying to the world.
The next step after creating a smart contract and having a working frontend that interact with the smart contract, is deploying to let other use it and why not show case the working example in your portfolio.

[This tutorial by Nader Dabit](https://www.youtube.com/watch?v=GKJBEEXUha0&t=342s) helped me with this and in addition, learned how to build a marketplace and about [Polygon](https://docs.polygon.technology/docs/develop/network-details/network/) and [Infura](https://infura.io/).

## 6 - Learning about cryptocurrencies
Cryptocurrencies are the fuel of Web3 they move the economy, they move the smart contracts and transactions that happens in the platforms. if you take a look at them you will see that most of these tokens have a platform behind Ether has Ethereum ecosystem, Links has Chainlink which is a set of oracles that you can use in your dapps, Solana is also an ecosystem that have its own a blockchain that allows you to build smart-contracts and so on.

- [Binance](https://binance.com/) - App to buy/sell crypto
- [CoinMarketCap](https://coinmarketcap.com/currencies) - App to keep track of your portfolio and market prices.
- [Whiteboard Crypto](https://www.youtube.com/channel/UCsYYksPHiGqXHPoHI-fm5sg) channel that explain different platforms, tokens and concepts of web3

> In this step watch out with the scammers, don't take anything as financial advice and do your research before invest in a token. 

## 7 - Iterate and get stronger.

With every step you get better and better in the next iteration you can build a more robust environment setup with an advanced hardhat setup I am planning to share the setup I did [here](https://github.com/jesusantguerrero/chainlink-hackathon). this will be another article

Complement your dapps with services like [moralis](https://moralis.io/), [pinata](https://www.pinata.cloud/) for IPFS storage, etc.

In my case at this point I learned how to generate assets for my NFT's with [hashlips](https://www.youtube.com/watch?v=vFY_E3IP6OU)

## 8 - Going out of the comfort zone. 

Participating in hackathons at least once in life is a good way to inspire you and put you in the zone. In this state you can apply all the things you are learning, brainstorm ideas, see a lot of use cases for new technologies, interact with other developers and find communities with the same interest as you.

I participated in the chainlink hackathon I don't know if I am going to win anything yet, but the things I learned and applied are very valuable.

- [Patrick Collins](https://www.youtube.com/watch?v=p36tXHX1JD8&t=4424s): Aside from beginner make advanced topics well explained.

- [Chainlink oracles](https://chain.link/): Allow communicate smart contracts with off-chain data.

## Conclusion.
After going through this steps and resources I gained some knowledge and built kind of fun things I hope this post help you to start building some smart contracts and have fun learning something new.

The post is unfinished because I will be adding more things as I go farther.

Thanks for reading. If you have any questions the comments are open, or if you like [Twitter](https://twitter.com/JesusntGuerrero) as well as my [Github](https://github.com/jesusantguerrero) where I do some experiments and projects.