To be frank, change is a continuous process which defines us as a species, in this context change is synonymous with progress towards the future. In its absence, there is stagnation, dullness, a state of unfulfillment that eventually leads to erosion. Similar to a warm summer breeze, change can happen at a slow, gradual pace, which gently pushes us forward. But, there are moments when it comes like a raging storm, which shakes the foundation of society, how we perceive the world and how we interact with each other. History has witnessed countless occasions when the ingenuity and resourcefulness of ‘chosen’ individuals managed to launch forward humankind, changing it forever. The invention of the Gutenberg press in the 1440’s, the development of the first transistor in 1947 by Bell Laboratories, and the internet rush which took place two decades ago, are moments that changed humanity forever, it’s almost impossible to comprehend life without these inventions. Now, a new storm is coming, we are on the verge of a global transformation, spearheaded by blockchain technology.
Developed in 2008 by the an individual or a group of individuals collectively known as Satoshi Nakamoto, blockchain technology has already been among us for a decade, it’s not that new. So why do people say that it will spark a wave of technological revolution now, ten years after its inception? Well, although blockchain has some years under its belt, its applicability in software products is new, people are just figuring out where and how it can be used. This increased interest in blockchain has a direct impact on the market. Currently, the market demand for blockchain developers far exceeds the offer, which makes blockchain proficient individuals a valuable asset to any company that wishes to embrace this technology. This also means that blockchain developers earn considerable wages compared to other domains. It’s safe to say that there is sufficient incentive for individuals to invest time and effort in order to understand and learn all the skills required to become a successful blockchain developer. The goal of this article is to underline what it takes to become a blockchain developer, to map out the journey an eager initiate must take in order to master this technology. Before delving into the matter at hand, I would like to add that, similar to any other skill, it’s a continuous process which needs to be polished during your whole career.
It’s important to state from the beginning, that this will be a difficult journey, there is no magic pill that transforms you into a blockchain developer overnight, dedication, and hard work are quintessential. Don’t be discouraged if things don’t go as smooth as you have imagined, and most importantly, don’t be afraid to invest in yourself! If you persevere, you will succeed and reap the benefits of all your hard work.
Firstly, like with any new skill, mastering the basics and understanding the core concepts and terminology is a crucial step towards reaching your goal. As a beginner, it’s recommended to start with small steps:
· What is a blockchain? A cryptographically secure and immutable chain of interconnected blocks, where each block contains valuable data, without any central supervision.
· What does decentralized mean? Blockchain is descentralized because it’s not supervised by a central authority
· Consensus mechanism? The process through which a decentralized network reaches a state of consensus concerning certain matters
· What is a miner? Users who make use of computational power to solve mathematical equations necessary for the creation of a new block.
· What is a Genesis Block? The genesis block is the first block in a blockchain. It’s an integral part of any blockchain network, every block points to the block previous to it, but the genesis block doesn’t point at anything. When a new chain is created, the genesis block is invoked immediately.
· What are smart contracts? A set of executable code that runs on top of the blockchain that facilitates, executes and enforces an agreement between untrusted parties, without the need of a trusted third party.
Blockchain is currently in the spotlight because it’s very flexible, it can be used across various domains and industries. As such when creating an application for a specific domain on top of a blockchain network, you are required to have at least a general understanding of the domain in question. For example if you want do develop an e-voting app, you must be aware of what a voting system entails, how it functions. The same goes for fintech apps. You are required to have some degree of familiarity with crypto economics. The latter is more widespread, because initially, blockchain acted as the backbone to Bitcoin, the first decentralized cryptocurrency. Also, crypto economics are directly linked with Initial Coin Offerings (ICO), a widespread practice, through which companies raise funds from contributors. Speaking of Bitcoin, it’s highly recommended that you read Satoshi Nakamoto’s whitepaper on Bitcoin, because, to be honest, that’s what triggered everything, the genesis of it all. For those who are not familiar with the concept of whitepaper, it’s a document that describes the theory behind a new piece of technology, it’s an in-depth report on a specific topic that presents a problem and provides a solution. Another interesting lecture that pops out in most discussions about how to become a blockchain developer is‘Mastering Bitcoin: Unlocking Digital Cryptocurrencies’ by Andreas M. Antonopoulos, a free ebook that is a great introduction to the technical side of things.
Secondly, it’s important to understand how the process works as a whole. Of course you can read about it in books, articles, forums, even video tutorials, but usually the most effective approach is to get your hands dirty and get real world, first-hand experience with cryptocurrency. Buy a couple of coins and see for yourself how the whole process works.This way you will learn how to manage cryptocurrency, how to detect patterns in the market, and how to use a cryptocurrency wallet. This will definitely come in handy if you later decide to create your own ICO.
Thirdly, you should always look to expand your toolset. Solidity is Ethereum’s special programming language for smart contracts, and Truffle is a popular Ethereum framework. It’s highly recommended to get familiarized with them, because they are the go to instruments when developing smart contracts. It’s not that difficult if you have some background in programming. Solidity is pretty easy to understand and is relatively similar to JavaScript. Cryptozombies is a great tutorial for beginners, with no prior knowledge of smart contracts to gain experience. It’s a game where you build an army of zombies and fight a war on the blockchain. All of this is done using Solidity, so by the end of the tutorial you will become pretty experienced in this language. This is a great way to learn about blockchain and smart contracts, because it makes you think outside the box, and it shows you that this technology is not restricted only to payments, you can also develop games with it and many other apps, you are limited only by your creativity and imagination.
If your goal is to develop decentralized apps (DApps), you are not required to focus too much on Solidity, other programming languages become the priority. Codebase can be written in any other language like Python, Java, C#, JavaScript or C++. In addition, you also need web development skills as a blockchain developer, so you need to be versatile in HTML, CSS, and NodeJS.
Fourthly, to become a successful blockchain developer, you need to be experienced with Ethereum, the most widely used platform for ICOs. Although it’s certainly the most popular platform at the moment, it’s highly recommended to familiarize yourself with other platforms such as Hyperledger or Multichain.
It’s not easy being a blockchain developer. When creating and maintaining a public blockchain you will be faced with numerous challenges ranging from:
· Security: the code is public, meaning that anyone can see it, anyone can check for bugs and vulnerabilities. If a vulnerability is detected, hackers can exploit it and compromise the whole system
· Resource management: you are required to constantly address the demands of the network, you must always be ready to deal with remote and local queries
· Performance: efficiency must be one of the top priorities. It’s recommended to use a versatile programming language that can handle both parallelizable tasks and the ones which can’t be done in parallel
In addition, you should reach out to the community and scout the internet for any new information about this domain. Connect with developer groups; join Reddit forums, Gitbub pages, and StackExchange. Subscribe to specialized publications like CoinDesk, The Fintech Times, Bitcoin Magazine.
Online tutorials can provide valuable insight into blockchain technology. Sites like Udemy, Coursera, Lynda, and edX contain an extensive library of courses about blockchain and smart contract development. Although most of the available courses are paid, a beginner can benefit greatly from the knowledge of an experience tutor, don’t be afraid to invest in yourself. An alternative to quickly get started with blockchain technology is to sign up with one of the blockchain cloud providers like IBM Blockchain and Microsoft Azure Blockchain. The advantages of these platforms are that they abstract away the complexities of implementation. In short you are able to master the technology without the need to acquire sophisticated skills.
Universities also acknowledge the potential of this technology and try to formalize education on cryptocurrency and blockchain technology. The Cypriot University of Nicosia offers a Master of Science degree in digital currency, taught by Bitcoin evangelist, Andreas Antonopoulos. The Blockchain Center in Chicago aims to encourage the development and collaboration between startups and to recruit and train graduates from computer science universities.Silicon Valley blockchain startups spearheaded by Koinify and SkuChain have united together to create Blockchain University, a platform for education and talent development. They offer public and private training programs, hackathons and demo events, in order to enable startups and corporations to initiate powerful blockchain innovations across industry sectors.
It’s safe to state that we are slowly entering a new era dominated by blockchain technology. Change is upon us. This is the ideal moment to embark on your own personal journey to become a blockchain developer.