With blockchain business cases springing up like mushrooms and the general boom of the open-source community, more and more people are getting interested in this innovative tech. A fair part of that crowd consists of developers that consider adding blockchain technologies to their portfolio. However, many more software people are rather cautious about that and consider committing their precious time to blockchain to be a risky move. This article is mostly addressed to all these timid devs out there. Is blockchain the right technology for me? If so, how to start since an entry barrier seems so daunting? If these questions keep you awake at night, fear no further — in this article I will give you an inside perspective of this topic.
Portrait of a blockchain dev
Everyone has heard of blockchain. If you haven’t spent your last few years under a rock, you had to hear at the very least about the first big implementation of that concept, Bitcoin. If you’re a developer, it is likely that your knowledge goes beyond this — potentially you recognize some non-cryptocurrency blockchain applications or got to know a bit about the technology on a conceptual level. However, I would imagine you’re not sure how exactly the development of blockchains looks like and how it differs from coding in more standard domains. That’s why I gathered a list of the most important features a potential blockchain expert should have:
1. You should have some development exposure
There is quite a bit to wrap your head around before you write your first smart contract. You will need to set up a node and connect it to a test network, know basic cryptography and learn how to use a library that allows the integration with a blockchain of your choice. While starting to develop in blockchain with no prior coding experience is possible, it might be a huge challenge. If you are a beginner, I’d suggest you to first learn the basics of Javascript (since most of blockchain frameworks are written in JS) or C++ (since writing Ethereum smart contracts follows a philosophy similar to writing C++ code)
2. You must be flexible rather than married to a single programming language
Working on any blockchain means working with not less than a few programming languages. In Ethereum, there is Solidity that you write smart contracts in and there is also Javascript which is a baseline for most Ethereum integration frameworks. Depending on the project and environment, there might be more of the same. For example in a project that I’m working on, Gardener, besides Solidity I am also using Typescript and C++. If you are the type of guy that has a favorite tech stack and rather than being versatile, prefers to become a master of that single stack, blockchain might not be an environment for you.
3. You need to be a quick learner, willing to explore some other areas besides coding
There’s much more to developing blockchain rather than just writing smart contracts. In order to design your solutions, you will need to learn cryptography as it’s the basis of securing blockchain transactions. You also need to know basic economy to understand the incentives of normal and malicious users alike. It is also necessary to adapt a security-focused mindset since all of the blockchain codes are executed on a machine that belongs to an anonymous miner. That miner is a potentially malicious user that sees your code and owns the machine it is executed on. Designing applications while having that in mind requires a whole new philosophy.
First steps on the block
Are you ticking all the boxes so far? Well, it’s time to learn some tech and dive deep into the world of Ethereum! Of course, there are many exciting alternatives, but I will focus on Ethereum since that’s my area of expertise as well as it’s currently the biggest and most vibrant platform.
1. Learn the basics
a) Blockchain & Ethereum essentials
If the title of this paragraph sounds like the name of the newest rap mixtape and Proof of Work makes you think of some boring tax form, it probably means you should get familiar with some basic blockchain knowledge. You’re in luck since there is a course on Bit9Lab designed exactly for that. The first part of the course is free but its continuation requires a quite expensive subscription. If you’re serious about your Ethereum career, you might want to invest in it, but even the free part offers a nice head start.
b) Solidity – the smart contract language
Solidity is a dedicated language that is used to write Ethereum smart contracts. As per usual, it is worthwhile to get familiar with its documentation, but if you’re looking for a practical quick-start guide, I recommend Space Doggos. As the name suggests, it’s a gamified, light-hearted course that takes you through very basic parts of Solidity and allows you to create your first Ethereum smart contract within minutes.
c) Ethereum toolset – Truffle, Metamask, web3.js
Currently, these are the most popular tools used to integrate with Ethereum, but please bear in mind that trends in that space change over time, so it might be worthwhile to take a minute to search for possible better alternatives on your own. If you found one, I recommend hitting the comments section below to share your findings.
Now, while writing this article, I recommend Truffle which automates otherwise tedious Ethereum deployment, Metamask – a browser extension that helps integrating web apps with blockchain and web3.js which allows flexible interaction with any Ethereum node and smart contracts that might be deployed there.
2. Contribute to open source
Since you learned the ropes and got familiar with the necessary toolset, it’s time to get your hands dirty! Most of the developers agree that rapid development of coding skills doesn’t come from spending months on online courses (though it’s certainly worthwhile to spend some time on them) but well… from coding! There is a ton of Ethereum projects and communities that can be found on GitHub but I would like to mention some of the most interesting options out there:
a) Gardener – a Blockchain Oracle implementation, you get additional brownie points for working with my humble self. More info here.
b) Geth, an Ethereum client written in Go
c) Parity, an Ethereum client written in Rust.
d) Any of Hyperledger projects – relatively new and innovative blockchain.
3. Go pro
After you’ve proven yourself in an open-source environment, it’s time to reap benefits! There was no better time to go pro with blockchain since more and more big players are recognizing its value and investing in it. Many companies are also willing to hire blockchain adepts and train them since experienced blockchain and Ethereum developers are basically unicorns – some claim that they exist but very few have actually seen them. We are one of these companies — so you are more than welcome to check out our job offer.
Obviously, there is much more blockchain offers out there – especially in the biggest financial cities. If you’re feeling adventurous and metropolitan lifestyle is your cup of tea, what’s stopping you from packing your bags and seeking fortune in foggy London or hot Dubai?
Not convinced yet? Check out more about blockchain.
Image source: https://www.ledgerinsights.com/blockchain-enterprise-ethereum-consensys-truffle-microsoft-azure/