Thoughts By Ray
Semi-frequent posts from a semi-frequent thinker
My first week as a web3 developer
Published Date: 2022 April 11th
☕6 min reading time
Context
So the backstory is that I recently switched jobs for the first time in my (full-time) career! I went from a publicly traded company to a ~20 people startup. The new company I'm working at is a software consulting company, really cool people and most of them are fellow UWaterloo grads like me. I can go on about the pros & cons of a big company vs a startup... but we're not here for that ;)
My previous experiences has been mainly traditional web development using python, golang, react etc..., however most of our current contracts are heavily related to Web3/blockchain development due to high demand in the industry.
Coming from a more tradtional web dev background, I thought it would be interesting to provide some thoughts and impressions I had transitioning from web 2 to web 3 development.
Terminology learning curve
Even though I wouldn't consider myself a really experienced software engineer, I'd still say I'm confident in picking up most tech-stacks / projects in the web development space. Even if I don't know immediately how I would solve a specific problem, years of experience has taught me which general direction to search for the answer. I also would know if something is doable and how much effort is required.
However with Web3 development, there's a huge learning gap for me. The vast majority of the terminoligy / acronyms found online and in tutorials are completely new to me: smart contracts, layer 1, layer 2, uniswap, DeFi, DOA etc...
I had no idea what most of these meant, learning what different terminoligy means and what they represent was a pretty big learning curve. But after a few days it started to make a little bit more sense to me, similar to when I first started learning pr ogramming, the pieces of the puzzle are like dominos, it just takes a bit of time to get the knowledge snowball to get rolling.
So... the blockchain is the backend?
The biggest difference between traditional web dev and web3 dev is the addition of 'smart contracts'. To my understanding, these are the backbones of web3 technology, developers utilize smart contracts to store data on the blockchain, make transactions on the block chain, create various tokens on the block chain, etc etc... And all the front-end really needs is the address for this contract to interact with said contract. The functionality of this sounds kinda like the a backend to me, store data, make transactions, create items... I find it interesting to see the parallels between two vastly different concepts.
So... I don't need to worry about infrastructure?
I always thought that web3 infrastructure would probably be a huge headache, I'm not extremely well-versed in the SRE side of things on traditional web dev, though I do know thinking about scalability, managing instances, deploying instances, different pipelines etc can pile up to a decent amount of work just to deploy a service. It comes to my suprise that actually deploying a smart contract is extremely easy, you can do it on online IDEs (Remix is a really good one), or you can do it in the terminal using really useful libraries (hardhat is an example) with a single click or a few lines of code.
1// Deploying a SmartContract2 const SmartContract = await ethers.getContractFactory(3 "SmartContractName"4 );5 const smartContract = await SmartContract.deploy();6 await smartContract.deployed();78 console.log("SmartContract deployed to: ", smartContract.address);
Anyways...
Yea that's all for now, just wanted to share some immdeidate thoughts of transtioning into web3 development. Overall I gotta say, there's a lot of really really powerful libraries out there that powers web3 development, I strongly encourage you to look into learnweb3.io if you're interested. Really really useful course and practicle projects. At least I can say I know how to make an NFT now...
Maybe I'll make a part II walk through of how to make your own crypto currency ;) stay tuned :)