How to get started in Blockchain?
A short guide on how to prepare yourself for a career in blockchain
This article is inspired by a recent webinar I conducted on Career Paths in Blockchain. I was pleasantly surprised to receive many queries after the webinar, and this is my attempt to answer most of them from a beginner’s perspective.
This is not meant to be an exhaustive list/method, just my observations, and experience from the past few years in this space. The software industry in general values skills more than credentials and as such, there is very less gatekeeping, if you are talented, nothing can stop you.
Blockchain is one of the most in-demand skills right now , but if you are looking to get started in Blockchain only because of this — don’t. The most valued job will change every few years, making a career choice on this metric alone is not a wise decision.
What is this Blockchain?
I’m guessing if you have reached this far, you know what a blockchain is and its basic fundamentals. To put it simply, blockchain is actually a subset of a database that has a few additional properties. Now these few properties are that the data is unique (consistent), it cannot be altered (immutable), it does not have a single point of storage or failure (decentralised) and that everyone agrees on the state of the database at any given point of time(canonical).
Evolution of Blockchain
Blockchain has come a long way (11 years at the time of writing this article) since Satoshi Nakamoto published his paper casting it into the limelight. Initially starting out as an immutable data storage system, it is now used for a variety of applications, not always with great results though.
The first real evolution happened in 2012 when Ethereum was launched, this was quite a major rethink about the concept of blockchain, Ethereum envisioned a world computer. Rather than just store data on blockchain, you could now execute code on the network, this code is referred to as smart contracts. Tron, EOS, Cardano are some other networks that provide smart contract execution capabilities.
Another major development that happened in this field was the creation of DLTs. DLT stands for Distributed Ledger Technology, to put it simply, DLT is blockchain minus the decentralisation and openness. Why are DLTs needed, you ask? Well, large corporations (mostly big banks) and even governments wanted to exploit the benefits of blockchain data storage, but for obvious reasons cannot expose all their data to the public, hence DLT was created. Now there is a lot of debate if DLT is technically a blockchain, but let’s leave that aside for now. Hyperledger Fabric and Corda are some examples of DLT.
So how to get started?
The concepts and programming languages you need to grasp largely depend on the type of role you are looking for. But a safe bet is to learn Golang or NodeJS, these two are popular languages you cannot go wrong with.
Regardless of the role, my advice would be to learn the basis of these three concepts, networking, cryptography and distributed systems.
Let’s look at some roles generally seen across blockchain companies, keep in mind that the same role might have completely different functions at different firms, so this is just a rough guide on what you can expect.
In this role, you are generally working towards developing a new blockchain network or setting up customised DLT as per customer requirements.
Let’s take the first case, if you are working in a company that is creating a new blockchain network, you would work with protocols, consensus, and network development. Some examples of such companies are Tezos and Cosmos. Matic Network is a promising startup from India in this space. There is no easy answer to what language will help you here, a company can choose a language it best sees fit for the platform. But from my experience, a large majority of the networks tend to prefer Golang, so that would be my recommendation.
The second case is where you would be working for a large enterprise setting up a private blockchain network (DLT) for their use. This would be the case at large service companies like Infosys and Cognizant. Here the answer depends on the platform of your choice, the two most popular options are Hyperledger Fabric and Corda. Hyperledger Fabric natively supports Golang and NodeJS. Corda natively supports Java and Kotlin.
Smart Contract Developer
This role is much less ambiguous than Blockchain developer. Here you are required to write smart contract code, the best bet here is to learn Ethereum’s Solidity Language. Although there are many platforms that provide smart contract functionality, at the time of writing this article, Ethereum is the leader by a huge margin.
DApp stands for Decentralized Applications, when you build an application where you are interfacing with smart contracts for backend, it is considered a DApp. In this role, your work will be focused on developing applications that connect with the smart contract and perform tasks. The language recommendation also depends on the platform, but any flavour of JS (ReactJS) is a safe bet.
This role is an extension to the Blockchain developer. As you can guess from the title, this is a senior role where the job is to design a blockchain network as per a customer's requirement and lead a team of blockchain developers in its development. This role is mostly seen in companies using DLTs.
Contribute to open source projects!
Keeping with the ethos of blockchain itself, most of blockchain projects are open source. This is a great learning opportunity, you can look at the code of almost any network that is in function today, you can’t say that about any other field. In fact, many companies interview for their developer positions by asking you to contribute to their open-source projects.
Once you have a good grasp of the concepts, I highly recommend you to start reading and contributing to any project of your choosing. Some blockchain companies, in fact, only interview developers who have previously contributed to their open source repos. So while learning, you might also catch the recruiter’s attention!
This article should help you get a brief idea of the blockchain industry. Blockchain is a rapidly developing field, and these roles and technologies are continuously evolving. The only constant in tech changes!
Stanly is a Blockchain Engineer and researcher. You can follow him here.