...More Than Just Solidity

Table of contents

No heading

No headings in the article.

Reminiscing through the past, I’ve dug into a well of thoughts concerning this road; this road to becoming a smart contract developer. One moment I want to beat myself slightly on the chest, label myself a blockchain developer, and claim it anywhere. Another moment I remember how much of unread resources I have; the wide pore of knowledge I’ve unfilled. In this article, I will share why the pursuit, whether as a smart contract developer or a core blockchain developer, you must have an engagement way beyond Solidity.

Being a relatively new ecosystem, ushering big changes to every aspect of human lives, blockchain technology over the past few months has been dubbed one of the highest paying programming job. This, on a higher scale, isn’t untrue. It’s a field that involves money it self. If you must engage with a decentralized applications built on a blockchain network, you are required to pay for transactions. Simply put, all engagements are transactions. For this reason, there are way too much technicalities into the system and the everyday growth in making this technology widely acceptable, is on a press; fast growing and accommodating field.

While this is not only being accepted among users, blockchain development is the learn-in-five-hours-to-make-300k-dollars-a-year. Developers are hopping on understanding Solidity, know the basics and build smart contracts that hoards money for people. What else does smart contract properly written in the Solidity, Vyper, Serpent language do rather than save funds after all?

As wrong as this might seem, the rate of hacks of smart contracts is on the rise. This, for anyone who follows the crypto twitter space, will agree on how disheartening it is to loss money to a blackhat or to lock funds due to poor or unnoticeable algorithms lapses. This is why the emphasis is on good understanding of data structure and algorithms.

While my engagement with blockchain as a developer isn’t exhaustive enough to warrant this content, the little leap I’ve had from my four month knowledge infusion in Web3bridge bootcamp has exposed me, especially taking lessons from a tutor who is vast in the technology. The tutor, unfortunately, won’t agree to being the best of smart contract developers because his own pursuit of knowledge, not just in aspect of blockchain, isn’t ending anytime soon. The pursuit is a cycling into the dark forest.

While Ethereum didn’t initiate the ground for blockchain technology, a whole lot of arguments goes into how it differs from Bitcoin. It doesn’t cross your mind right. I will give you a few different; Ethereum supports for smart contract, Bitcoin doesn’t. The underlying native currency differs. Bitcoin to BTC as Ethereum to Ethers. While Ethereum uses accounts for transactions, Bitcoin uses UTXO (Unspent Transactions Output). How much of these differences do you know apart from Solidity? This isn’t just it.

The Ethereum Virtual Machine, EVM, being a turing complete stack-based machine, it’s bounded by gas usage for transactions. Don’t mind the fluff but how much do you know about how the EVM works. How are transactions added to a block and how do these blocks get propagated across nodes? What’s the effectiveness of gas to the EVM? Who are miners and how much influence do they have in the validation of transactions? What consensus mechanism does Ethereum use? What are EIPs (Ethereum Improvements Proposals) and how does it differ from Ethereum Request for Comments(ERCs)? How are these salience to Ethereum ecosystem? This again, aside being a whole log of jargon, is relevance if you must use solidity to build contracts on the EVM and compatible networks.

EVM opcodes? You, provably, have seen them somewhere or will certainly see them as you ride on as a solidity developer but do you care to check how your high level language are compiled into opcodes which the EVM understands. You sure can speak on gas optimization, storage layout, proxy pattern, and more. A whole lot already, right?

Need I add that these are truly overwhelming. And for this, it is the primary reason you must not end up as a basic solidity developer. A minute knowledge of how this system works will only yield “costly-trodden” application that your users can’t use; less-performant dapps.

Take another glance, just one glance into blockchain and you will see how that glance seems unable to disconnect. Then, as unexpected, if you’re filled with zeal to the brim, you become immerse, not as the originator, but as one filled with utmost curiosity; wondering how the blockchain foundation was laid like the plentitude of people riding to a phase where answers are given to their many questions.