Jeffrey Scholz
Three reasons learning web3 programming will make you a better web2 developer
Updated: Feb 7
1. Gas Optimization is a transferable skill
At first it may seem funny to invest so much energy into saving 256 bits in storage space. This is 2022, storage is supposed to be cheap.
Yes, this is true. But storage and bandwidth are not cheap at scale.
When I consult for startups, many of them are surprised by their bandwidth costs in the cloud. When probed, it’s clear that cutting down on size of the data is usually an afterthought.
Now of course, obsessing over saving bytes is not necessarily a good use of time in a traditional cloud application. However, the training one gets in saving space in a blockchain application makes space saving in a traditional web2 application mentally automatic.
Gas optimization forces you to be obsessed with the details. Representing your data compactly becomes second nature after some practice.
Saving 1kb of data might not seem like much, but saving 10% of egress will be a noticeable cost saving.
2. Thinking like an attacker
Security is almost an afterthought when it comes to training web2 developers. Hackers feel invisible to the point of being non-existent.
However, web3 hacking is always visible due to the nature of the blockchain, and the fact that we get regular publications about it. (rekt.news/ is a great resource). This means the average web3 developer has the hacker more on his or her mind when they are developing applications. Having a healthy amount of paranoia while programming makes us program safer.
Our RareSkills curriculum dedicates an entire month to hacking contracts, but the mindset can help you outside of blockchain development.
Programming smart contracts forces us to think things like “shouldn’t this be access protected?” or “What if the data we get back is flawed or tampered with?”
Again, the intent is not to slow down development by worrying about security. It’s to program our brains to notice security flaws automatically.
3. Grappling with the fundamentals again
Being forced to solve the same problem in a new way expands our thinking.
Many people experience this when using functional programming for the first time. Although functional programming and imperative programming ultimately accomplish the same thing, being forced to model our problem in an entirely new way enables us to look at the problem from a wider perspective. Even though many don't fully adopt functional programming completely, it's hard to not use map and filter after you learn about them.
We take for granted that function execution is not atomic, data can be hidden, and that data doesn’t last forever by default. These assumptions are taken for granted in web2, but not web3.
But what if the fundamentals are changed?
Being forced to use an alternative set of first principles helps us understand our unexplored assumptions about how to model computation and thus understand them better.
If this interests you, apply to our bootcamp! Even if you don’t plan on fully switching to blockchain development, your general programming skills will be enhanced.