Blockchain developer — but first, what is blockchain?

Written by Irfan Nukanović (irfan), Project Manager at ABC SOFTWARE DEVELOPMENT


The cryptocurrency frenzy has settled down significantly as we approach the end of 2018 and many might take a look at “this time last year” with sighs and memories. But all is not lost. As discussed in the earlier post about blockchain in fintech even though cryptocurrencies have lost a bit of hype, blockchain remains as the buzzword of 2018. With so many businesses revolving around it (or hoping to revolve) nowadays, it also comes as no surprise that the search for blockchain developers exploded as well. Over the past three quarters, its urge on Upwork.com has exceeded 2,000 percent; during the first three months of 2018, it experienced more than 6,000 percent growth over the same period last year (Q1 2017).

In fact, blockchain is the fastest-growing skill out of more than 5,000 skills on Upwork, according to the latest Skills Index, a quarterly report that ranks the 20 fastest-growing skills to help shed light on new and emerging skills as an indication of hot freelance job market trends.

So, would you like to become a blockchain developer? How do you even start?

Original cartoon: http://dilbert.com/strip/1995-11-17

Well, let’s start first with what blockchain is. The simplest definition is that blockchain is a decentralized database, or also often called a ledger. The next thing that is regularly brought up is that it’s append-only, meaning new data/blocks/transactions can be added, but previously entered ones cannot be altered. This makes blockchain perfect for managing records, recording transactions, events, tracing etc.
So, with the words database and ledger floating around for a long time now and being fairly familiar, let’s skip to the “decentralized” part. In short, Blockchains are politically decentralized (no one controls them) and architecturally decentralized (no infrastructural central point of failure) but they are logically centralized (there is one commonly agreed state and the system behave like a single computer). For a more in-depth analysis of what centralized, decentralized and distributed actually means, please take a look at The Meaning of Decentralization by Vitalik Buterin.

And what else is interesting about blockchain besides that it stores transactions? Smart contracts!

© LuckyStep48 | istockphoto.com

Smart contracts as a term were initially coined by Nick Szabo, a computer scientist, scholar and cryptographer (there is an interesting podcast of Nick Szabo and Tim Ferris discussing Bitcoin, Ethereum, smart contracts, and other related topics). A smart contract is a computer protocol intended to digitally facilitate, verify, or enforce the negotiation or performance of a contract. Smart contracts allow the performance of credible transactions without third parties. These transactions are trackable and irreversible. The reason why smart contracts are so trendy is that smart contracts combined with Ethereum and blockchain technology eliminate the need for intermediaries and escrow services.

Now with blockchain and its properties, the power of smart contracts and the fact we are talking about the decentralized system and its benefits, there is a solid foundation to build decentralized apps or dApps. Decentralized applications are applications that run on a P2P network of computers rather than a single computer. dApps have existed since the advent of P2P networks and are a type of software program designed to exist on the Internet in a way that is not controlled by any single entity. Decentralized applications don’t necessarily need to run on top of a blockchain network (BitTorrent, Popcorn Time, Tor, are all traditional dApps that run on a P2P network). dApps in blockchain world are ‘blockchain enabled’ websites, where the Smart Contract is what allows them to connect to the blockchain. The easiest way to understand this is to understand how traditional websites operate. dApps are similar to a conventional web application as the front end uses the exact same technology to render the page. The one critical difference is that instead of an API connecting to a Database, there is a Smart Contract connecting to a blockchain. dApp enabled website: Front End → Smart Contract → Blockchain (source https://blockchainhub.net).

All things combined, what makes a blockchain developer?

Photo: iStockphoto

One thing can be claimed, and that is blockchain developer needs to feel comfortable at learning new things, acquiring new skills and exploring new technologies. Any prior experience in development is useful but to some extent. There are of course languages and tools that are blockchain specific, which can be acquired, but among the most important tools in blockchain developer’s toolbox must be a very solid understanding of concepts behind the blockchain. Once the understanding of blockchain is grasped, learning new skills on top of it comes much easier. A good starting point for anyone with a basic knowledge in Javascript is Ethereum and Solidity: The Complete Developer’s Guide on Udemy, which covers Ethereum, the blockchain, transactions, smart contracts, covers Solidity as the programming language of choice for writing smart contracts, and many other topics.

So, understanding what blockchains, smart contracts, and dApps are is a good first step. Now it’s time to dig deep into these concepts and start working on widening the practical knowledge in blockchain development.