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 recognise 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
2. You must be flexible rather than married to a single programming language
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 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 potential 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. 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 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:
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 recognising 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.