If you follow cryptocurrency news every day there is something new in the blockchain development market for developers.
Would you like to understand every blockchain? there is a smart way of learning blockchain development that does not require you to know everything.
You don’t even need to have a technical background. I’m going to give you a complete step-by-step learning plan for blockchain.
it will take you a couple of months and in the end, you will be a blockchain developer.
Two kinds of Blockchain Developer
- Blockchain core development
- Blockchain app development
To make it clear in terms of vocabulary, developers who build blockchain clients do blockchain core development and developers who build apps on top of blockchain do blockchain app development.
Blockchain networks are networks of computers that run blockchain clients, each blockchain has its own blockchain client there is one for Ethereum and one for bitcoin, etc.
Blockchain clients are written using low-level programming languages like C, C++, Golang, Rust, etc.
To build a blockchain client you need to know one or several low-level programming languages and you need to know the operating system networking file system etc.
This is not for the faint of heart, it doesn’t mean you can’t do it but this is not exactly what I would call beginner-friendly.
However, there is something very very important to understand building blockchain client is not what most blockchain developers do nope most blockchain developers build applications on top of blockchain networks.
We have the same distinction on the web most web developers build a web app on top of web browsers but they don’t build web browsers.
In most cases in job offers and in most conversations when people just say blockchain development they mean blockchain app development and this is what I’m gonna focus on.
Blockchain Development to Learn
This is the coin market cap, there are more than 10,000 cryptocurrencies listed on Coinmarketcap
First of all, understand that most people care about the price of crypto but there isn’t always a correlation between the market cap of the cryptocurrency and the underlying technology.
There are a lot of projects with a really high market cap that isn’t really important, second thing to understand is that a lot of blockchain projects do not have their own blockchain most projects are built inside a blockchain.
You can check on DappRadar to have an idea of the popularity of different blockchains.
Ethereum used to be the top blockchain even though it starts to be challenged by other blockchains like Binance smart chain which are more scalable and have lower transaction fees.
You need to realize a couple of things, Ethereum will have its own scaling solution in the near future with L2 chains like Polygon and later we’ll have a more robust solution with Ethereum 2.0.
A lot of other blockchains like Binance smart chain or Tron are based on the technology of Ethereum.
Every time there is a blockchain that uses the EVM (Ethereum Virtual Machine) it means it’s based on Ethereum.
For all of these forms of Ethereum, the tech stack is exactly the same as for Ethereum which means if you learn Ethereum you can also develop on all of these other blockchains.
Network effects are the dominant factor in blockchain adoption after a blockchain reaches a certain size it becomes almost impossible to challenge it.
Network effect works at different levels number of developers, users, and investors, and for all of these metrics, Ethereum has reached a critical size.
So I recommend focusing first on learning Ethereum. You will need to understand a couple of things like:
- The proof-of-work algorithm (POW)
- What is the data structure of the Ethereum blockchain
- Public and private keys
- How addresses are generated
- How a wallet works
- What is the transaction
- The two types of accounts on Ethereum
- What is a smart contract
Web Development
The big mistake of many blockchain newbies is to go straight to smart contract programming even though they don’t have any prior technical background knowledge.
Blockchain technology is built on top of web technologies before you can start to go more into more technical stuff you need to have this fundamental knowledge.
Web development is huge you have many languages, frameworks, etc. you don’t need to know all of them in web development.
There are two parts front-end and back-end for blockchain. For the front-end, you need to learn four things:
- HTML which is the structure of web pages
- CSS for styling
- JavaScript that’s what allows you to interact with the blockchain, connect to the wallet, and display data to the user.
You will also need to learn a front-end framework to easily build a dynamic UI.
There are a lot of frameworks and all of them are great but we need to be efficient that’s why I recommend focusing on React which is pretty much the standard in the industry.
What I mentioned so far is considered front-end web development however, we also need to learn some stuff for back-end web development.
For the back-end you need to learn NodeJS, it is javascript but server-side.
What interests us most is NPM, the package manager of NodeJS. NPM is used to install dependencies and tools for blockchain development.
Smart Contracts Development
When you build the blockchain app, the most important part is the smart contract.
Smart contracts are small programs that live in the blockchain usually they are quite small a few hundred lines of code to a few thousand rarely more.
These programs are very different from normal programs once they are deployed you cannot change their code we say that their code is immutable.
However, the data is not immutable you can change it. Contrary to a normal program it costs money to change the data of a smart contract and the more complex our code the more money it costs.
So we try to simplify our code in order to lower execution costs that are called Gas optimization with a smart contract you can move money natively this is why smart contracts are so powerful.
With a normal program you will have to integrate with the payment service like PayPal stripe but you need to have permission to do this and you are constrained by the API.
Using a smart contract you can write any logic you want for moving the money around you do what you want.
In terms of security, it’s almost impossible to hack the core blockchain protocol which means if a transaction is sent to move money from one address to another one it’s impossible to hack and change the recipient address.
However, it is possible to introduce a bug in the code of a smart contract and have hackers take advantage of this.
Programming language for smart contract
There are a couple of programming languages for smart contracts but the most popular one is called Solidity.
The syntax of solidity looks like javascript but it’s very misleading because the way it works is very different it’s also much more limited compared to javascript so we avoid doing things that are too complicated.
A great way to experiment with solidity is to use Remix and online IDE for solidity.
With remix, you have nothing to install you just load the website and you can start writing 30 codes and running your smart contract right away.
The remix is good to get started but in the real-life project, we usually use something a bit more robust like Truffle.
Truffle is one of the most popular frameworks for solidity smart contracts. It’s a command-line tool written in NodeJS and you can install it very easily with NPM on Windows, Mac, and Linux.
It comes with a local Ethereum network for development called Ganache.
With ganache, you can deploy your smart contract on a network completely separated from the real network of Ethereum that we call Mainnet.
On ganache, you can have infinite fake ether which means you can send as many transactions as you won’t lose all the money it doesn’t matter at all.
There are also so-called Public Testnets of Ethereum that you can use to deploy your smart contract they’re a little bit more realistic compared to ganache but they are also a bit more difficult to use because you don’t control the network yourself.
It’s a public network run by other computers and if you want to have some fake ether for your transaction you cannot generate it yourself but you need to use tools called Faucet and sometimes these faucets don’t work.
When you start to use public testnets you will probably need to use etherscan which is a blockchain expert.
With etherscan you can verify that a transaction was mined on the blockchain.
Another service you would probably use is Infura. It is an API that runs ethereum clients for you. It’s not easy to run an Ethereum client so infura is very useful when you want to use a public testnet or mainnet.
The way you send transactions to a public testnet or mainnet is a bit different compared to when you just use ganache locally. There is a bit of a learning curve the first time you do it.
Testing
The last thing I haven’t mentioned is testing, after you deploy a smart contract you cannot modify its code so it’s very important that you test your smart contract before deployment, and with the top of the framework you can test your smart contracts very easily
So as you can see for a blockchain developer learning smart contract development is really a big part but it’s not everything.
Frontend Development
If you just have a smart contract on the blockchain the only way to interact with it is with the command line. That’s why we also need to build a front-end to let our users interact with our smart contract.
The smart contract plus the front-end is what we call a Dapp (Decentralize Application).
The front-end can be a mobile app or a web app but in most cases, this is a web app. The web app of a Dapp is 90% like your standard web application with HTML, CSS, Javascript and optionally a front-end framework like react.
I told you before that you have to know the basics of web development before diving into blockchain development. Well, now you start to understand why.
In your front end there will be two challenges specific to the blockchain:
The integration with the blockchain; for that we will use a javascript library called Web3 and.
The integration with the wallet; In Dapp the user management is decentralized and users store their password themselves.
We actually don’t use passwords in Dapp but the closest equivalent would be private keys.
With private keys, the user can sign a transaction which is a data package that describes an action that a user wants to do with a verifiable signature that proved the user really wanted to do this action.
There are many wallets available for Ethereum but most people use a Metamask.
So in your learning path, you start to learn how to integrate metamask, and later you can learn how to integrate other wallets.
Two best ways to specialize in Blockchain
Once you know how to write a full decentralized application including smart contract and frontend you can optionally decide to specialize even more.
There are many ways you can specialize in blockchain but I would recommend two ways:
Smart Contract Specialist
First, you can become a smart contract specialist, that’s a great positioning because smart contract code is very critical and there is a shortage of spot contract experts.
If you are really good at solidity you can earn up to 250k USD / year. To be really good at solidity you will need to know in detail:
- The Ethereum virtual machine also called EVM
- Gas optimization and, and
- Security
DeFi Specialist
The other way you can specialize is in DeFi (decentralized finance) is the main use case for blockchain.
The main kind of projects in DeFi are:
- Decentralized Exchanges (Uniswap)
- landing protocols (Compound), and
- Automated robot advisors also called yield aggregators (Yearn finance)
To learn DeFi there are three steps:
1. To understand the fundamental concepts in DeFi; like the different types of tokens, liquidity pools, stacking, liquidation, flash loans.
2. Learn the API of a few DeFiprojects; there really a tons of new projects every week but most of them are just copy paste of other projects.
So it’s better to just know a few projects really well instead of many projects but very superficially, that’s why I recommend just focusing on Uniswap and compound to get started.
Build your own Defi Projects
You can build your own DeFi project by playing the money lego game and combining different building blocks like liquidity pool, staking, and also building on top of other DeFi projects this is permissionless you can use any smart contract you want without asking for permission.
Conclusion
So now you have a full roadmap to becoming a blockchain developer in 2022 the next step is to act on this plan and for this, you can start by learning how blockchain works.