Beginners guide to blockchain engineering
A guide to how to become a blockchain engineer
Table of Contents for Beginners guide to blockchain engineering
Most articles on this site are aimed at those who understand basic programming concepts. But this article is aimed at those who have no programming knowledge and also those who program professionally but want to move into web3 / blockchain engineering. I’m going to assume you understand the basic terms like blockchain, smart contracts etc.
I’ll probably make some assumptions, and I can almost guarantee you can find cases to contradict every section in this article. It is meant to be a general intro, and to steer you in the right direction for self study to learn how to become a blockchain engineer.
What is blockchain engineering (or web3 engineering)
Blockchain engineering typically means programming smart contracts or interacting with transactions ‘on-chain’.
There is also another side of blockchain engineering, which is focused on building the blockchain infrastructure.
I would say most blockchain engineers are in the first camp - for example writing smart contracts, deploying them, and interacting with them. This includes DeFi programmers.
But of course there are also many blockchain/web3 companies that are launching their own blockchains. If you are a new programmer there is almost no point in trying to start off with this. Start with the basics, understand how smart contracts work.
What you need to know/do before starting to become a blockchain engineer
If you want to go down this route, you have a good head start if you really understand the blockchain ecosystem.
There are a couple blockchains that are really important to know:
- Bitcoin. There are no smart contracts, but bitcoin is the original and isn’t going anywhere. Good to know about things like the lightning network too
- Ethereum. There are many popular blockchains that also use the same underlying system (same types of smart contracts) which is known as the Ethereum Virtual Machine (EVM).
Note: Most of this article is going to talk about smart contracts, and i’ll probably just assume we’re all talking about smart contracts on Ethereum, as they are the most popular. There are many different types of smart contracts, which have completely different concepts (Solana ones are really interesting), but I don’t want to make this article longer than it needs to be just to cover every option…
You should also have experience of interacting with smart contracts.
And be prepared for your smart contract code to be public, and scrutinised online. It is very easy to add security issues in smart contracts, or write your smart contracts in a way that uses more gas than a more optimized way would.
They often say smart contracts are the ultimate bug bounty. If someone finds a vulnerability they can potentially exploit it and drain balances…
Programming languages for blockchain engineers
The main traditional languages used by blockchain engineers are:
javascript
/typescript
. I’d say its worth learning for any developer as JS / TS are here to stay.go
orrust
are quite common backend languages in blockchain software (I think most of the main ethereum client software is ingo
).- Other common languages used by web3 companies tend to be
python
, maybe somejava
.
But when it comes to the actual smart contracts then the most common is solidity
(used in EVM). Its quite a simple language to get the basics of.
Decide you want to do anything on the frontend
There is the on-chain work - writing smart contracts, interacting with them.
Then traditional backend related work - such as creating transactions on the blockchain.
And frontend blockchain engineering - which often means writing React apps that use libraries such as ethers.js
to let your users interact with them.
Small startups tend to want people leaning more towards full stack (backend & frontend, or in web3 this can mean backend, onchain, and frontend). But some do specalize in just one aspect of blockchain engineering.
If you want to do anything relating to the frontend, I’d recommend you know React really well. Build a few test applications (non blockchain related). There are tons of tutorials for this. Then start to introduce things such as signing transactions with metamask in your app.
Knowledge of cryptography
You can’t work with blockchains without understanding the basics of cryptography. It is how the network works and how it is secured.
You will probably need at least a basic understanding of how they work.
Although to be honest if you’re mostly writing Solidity code, its unlikely you’ll need to know this area in too much depth.
In the next few years zero knowledge proofs are going to become even more popular, so having a deep and firm understanding of them would be beneficial.
Where to start learning to be a blockchain engineer
- I’d start with Solidity as the developer experience is pretty good and there are so many resources.
- https://cryptozombies.io/ is a fantastic introduction
- https://ethernaut.openzeppelin.com/
This post is incomplete and a work-in-progress
I'll update it soon and flesh it out with
more
info!
Spotted a typo or have a suggestion to make this crypto dev article better? Please let me know!
Next post
Previous post
📙 Solidity Auditing online quiz
Learn how to audit smart contracts by looking at some example code and trying to find the bugs
⛽ Solidity Gas Optimizations Guide
How to optimize and reduce gas usage in your smart contracts in Solidity
🧪 Guide to testing with Foundry
Guide to adding testing for your Solidity contracts, using the Foundry and Forge tools
📌 Guide to UTXO
UTXO and the UTXO set (used by blockchains such as Bitcoin) explained
📐 Solidity Assembly Guide
Introduction guide to using assembly in your Solidity smart contracts
📦 Ethereum EOF format explained
Information explaining what the upcoming Ethereum EOF format is all about