How to Become a Blockchain Developer

How to Become a Blockchain Developer

The Blockchain sector has experienced dramatic growth over the past year. Meanwhile, the demand for programmers to work on distributed ledgers has quickly outpaced their supply. Freelance platforms such as Upwork and Toptal have experienced exponential growth in blockchain related hirings. Experienced developers are commanding sky-high salaries, and many of us are wondering how to get involved. If you’re looking to become a blockchain developer, the resources in this guide will give you a head-start.

What is Blockchain?

Blockchain is a cryptographic method for creating a ‘permanent’ record on a distributed database. Unlike traditional databases, its records are not governed or kept by a central authority. Each transaction is stored in a block that is linked chronologically with all of the other blocks on the chain, all the way back to the very first. Once a transaction is validated and recorded on the ledger, altering it becomes computationally improbable.

Bitcoin has proven the use of blockchain for creating a peer-to-peer digital payment system. It’s composed of a decentralized network of miners using cryptographic methods to validate transactions and safeguard their records. Each new block that a miner produces comes with a reward of new tokens to provide an incentive for maintaining the system.

Even if you aren’t interested in cryptographic currency, blockchain can be useful for a variety of other purposes. Businesses and governments around the world are presently undertaking research, tests, and demonstrations to determine their best use of blockchain. There are currently applications being developed in nearly every industry, including supply chain management, accounting, identity management, and provably rare digital assets such as art, software, and video game items.

Getting Started

If you’re excited about working with this breakthrough technology, you’ll want to have a solid understanding of how blockchain works. The Bitcoin whitepaper is where it all began. It’s only 8 pages long, and well worth the read. Reading at least the first few chapters of Andreas Antonopoulos’ “Mastering Bitcoin” is also recommended, along with Introduction to Distributed Ledger from IBM.

Before detailing more specific resources, it will help to differentiate the main areas where developers get involved. At the heart of blockchain are the protocols governing the network, and the ledger it maintains. Next, are the back-end applications running on top of the blockchain, commonly known as smart contracts. Finally, there are the developers building apps that interact with the blockchain but don’t require specialized blockchain expertise. The last group typically works with popular web developing languages, and interact with the blockchain through APIs.

Core Developers

If you’re interested in working on blockchains themselves, you’ll need to know the fundamentals of cryptography and distributed systems. An awareness of tools such as Docker containers and microservice architecture is also useful. C++ and Java are the most popular languages for developing in blockchain, supplemented by JavaScript. Many job listings also look for experience with Python, Golang, and Ruby. If you are already familiar with these languages, the best thing you can do is get involved with some open sourced projects on Github. Anyone hiring blockchain talent will be looking for evidence that you are fit for the task.

If you really want to master blockchain fundamentals, you’ll need to start with Bitcoin. I’ll mention Andreas Antonopoulos’ “Mastering Bitcoin” again. It was written for developers in 2014, and is considered to be the best technical explanation available in print. Then of course, there is Bitcoin.org’s Developer Guide.

A Gentle Introduction to Bitcoin Core Development is a great resource for learning best practices for becoming part of the Bitcoin community on Github. Its advice may also prove useful for becoming part of any blockchain community on Github.

For an extensive set of blockchain developing resources, see:

Smart Contracts

While exploring blockchain fundamentals, the simplest entry point is to build applications on an already established blockchain. An important feature of blockchain is the smart contract that eliminates the need for trusted agents to govern any programmatically verifiable condition.

Ethereum was the first to deploy scripting capabilities in its protocol. Its tokens are programmable, and their code is run simultaneously by every node in the network. These smart contracts are self-executing, and the instructions contained within them are deployed under pre-determined specifications. Developers of these smart contracts are in great demand.

In the most basic example, a smart contract may verify conditions under which its token(s) are transferred to another user, or refunded to the issuer. A smart contract enables automatic execution of any programmatically verifiable contractual agreement. A platform with the capacity to perform smart contracts allows developers to harness the capabilities of blockchain, without having to build and maintain their own.

A frequent use of these contracts is in the creation of new digital currencies. This capability has led to an explosion of Initial Coin Offerings (ICOs), each of these proposing their own use of blockchain. In 2017, startups raised 5.6 billion with ICOs. That, along with the lack of strict regulation, has resulted in more and more of them sprouting up every day. Most will probably fail (or already have), the same as any new business. Regardless, they are driving demand for smart contract developers.

Ethereum smart contracts are written in Solidity, which is similar to JavaScript, and also in use on other blockchains. If you’re ready to dip your toes into Solidity you can check out:

It won’t necessarily take a long time to learn how to create a smart contract, but becoming a good smart contract developer requires diligence. Making a mistake when coding them can become quite costly, so it’s important to learn well, and submit your code for formal verification. Once deployed, an Ethereum smart contract is unalterable, making any bugs in the code permanent!

Creating your first Ethereum dApp

Dapp, pronounced Dee-app, is shorthand for Decentralized Application. Add a front end to your smart contract, and you’ve got a dApp. Rather than running on a server like a traditional web app, the backend of a dApp runs on the distributed blockchain network. There are also other, off-chain, distributed networks such as IPFS that you can use to host your front end if you want your app to be truly decentralized. Many of them have already been created. Some examples of dApps already in existence are a decentralized news network, leaderless identity management, games, currency exchanges, and more.

If you’re already familiar with web design, then you’re in luck. Building on Ethereum was explicitly made to be accessible to web developers. dappsforbeginners.wordpress.com is an excellent resource for learning how to create your first dApp. It contains all kinds of information about setting up your developing environment, contracts, API, and more.

Blockchain for Enterprise

There are many different blockchains, cryptocurrencies, and feature-rich platforms currently being developed. However most of them create public ledgers that anyone may access, and all of their transactions are broadcast to the entire network. While those features work well for decentralized systems, they don’t quite fit the needs of many enterprise applications.

The Hyperledger Project

Hyperledger is a cross-industry open source collaborative hosted by the Linux Foundation, co-founded with IBM. Their aim is to improve the performance and reliability of blockchain technology so that it can be suitable for global enterprise. Among the projects released by this collaborative is Hyperledger Fabric. 

Hyperledger Fabric is a modular, permissioned blockchain, that is entirely customizable to suit the needs of its implementation. Its smart contracts are referred to as “chaincode” and can be written in Go, Javascript, and Java.

There are a couple of free introductory training courses available via hyperledger.org, as well as paid certification and other training. There are also some educational resources produced by IBM. If you’re ready to get started, check out the Hyperledger Fabric Documentation.

There’s a lot more to Hyperledger than just Fabric, so be sure to check out their site to see what all it has to offer. I’ll likely come back and update this section later, but Hyperledger probably deserves a post of its own.

Corda

Introduced by R3, Corda is an enterprise blockchain platform designed specifically for financial services. It is gaining traction in the market, and Github. There are good chances of Corda becoming a preferred enterprise solution over the coming years.

Introducing R3 Corda™: A Distributed Ledger Designed for Financial Services is a good place to start learning the basics.

There are also a lot of helpful resources in this guide: New to Corda? Start here!

docs.corda.net should have everything you need to get started actually developing.

Conclusion

The blockchain sector is rife with possibilities, especially for developers. The world is just beginning to become aware of the potential of blockchain, and there is still plenty of time to learn the trade. There is a lot to learn in this sector, and it can be hard to keep up with all of the new projects. Becoming broadly educated about the various platforms and the technologies they employ can open a lot of opportunities. cryptojobslist.com is one of the more popular job boards that deals explicitly with cryptocurrency related jobs. There are a lot of people chasing money in this market, except developers. Instead, the money chases them.

Resources

Hayden P.

A blockchain and cryptocurrency enthusiast

You may also like...