The Skills You Need to Be a Blockchain Developer
Whether you’ve never coded before, or have multiple years of experience developing software, becoming a Blockchain developer requires a new set of skills. Identifying which skills you need can be difficult if the industry is new to you.
Whichever camp you find yourself in, this article describes the skills you need to make a start developing in the Blockchain industry.
Starting From Scratch
For those with little or no coding experience, start by learning these skills before moving on to the more advanced stuff. Skip this section if you already have coding experience.
“A command-line interface processes commands to a computer program in the form of lines of text.” — Wikipedia
Getting used to the command line is essential for any budding software developer. At first, it can seem like gobbledygook, but once you get used to it you won’t ever work without it.
The best place to start is by learning on a Unix or Linux command-line interface. Most development activities are performed on Unix backed systems. If you have a Mac, the CLI is Unix based, so the built-in terminal is great. If you only have a Windows machine, try Cygwin Linux emulator.
The main point here is to learn how to interact with your computer using commands rather than a point-and-click interface.
W3Schools provide some awesome tutorials for beginners, intermediates and advanced users.
“A blockchain is, in the simplest of terms, a time-stamped series of immutable records of data that is managed by a cluster of computers not owned by any single entity. Each of these blocks of data (i.e. block) is secured and bound to each other using cryptographic principles (i.e. chain).” — Blockgeeks.com
What is Blockchain? How does it work? What are the consensus mechanisms? What is a node? What is a Smart Contract?
Understanding the basic answers to these questions is vital to creating useful Blockchain applications. Blockgeeks.com is a fantastic platform for learning at any level in your personal development, I highly recommend signing up.
Blockchain Specific Skills
So you’ve got some coding experience but don’t know where to start? These are the skills needed to start developing solutions on the Blockchain, and more specifically the Ethereum ecosystem.
“Solidity is an object-oriented programming language for writing smart contracts. It is used for implementing smart contracts on various blockchain platforms, most notably, Ethereum.” — Wikipedia
Smart Contracts are immutable. An immutable object is an object whose state cannot be modified after it is created. Instead of incrementally improving your Smart Contract with new releases, once a Smart Contract is deployed it cannot be changed. Think of a Smart Contract as a monument designed to stand the test of time.
Smart Contracts hold Ether just as any other address (wallet) does. It can send and receive Ether value to and from other addresses also. By creating a Smart Contract you are deploying a set of rules to the network by which anyone who chooses to use it is willing to abide by. This is powerful since if any bugs are deployed unnoticed, the contract can be hacked. The word “hacked” might not be the correct word however since everyone who participated in the Smart Contract agreed to the terms (AKA the code) and accepted it. So successfully hacking it technically means that the rules were still followed, they were just bad rules.
The documentation provided by the Ethereum Foundation is a thorough explanation of how to write Smart Contracts using the Solidity language.
“web3.js is a collection of libraries which allow you to interact with a local or remote ethereum node, using a HTTP or IPC connection.” — Web3.js Documentation
Web3 bridges the gap between the traditional internal and the decentralised world. It’s used to connect an Ethereum blockchain to a client browser usually through a browser extension like Metamask. Unfortunately, the most common web browsers don’t support Web3 out of the box, which is the reason for having to use Metamask.
Here are some of the most commonly used and useful functions that web3.js provides.
Web3 is also implemented in Python.
“The Truffle Suite gets developers from idea to dapp as comfortably as possible.” — Truffle Suite
Truffle is a framework which facilitates the development, testing and deployment of full-stack decentralised applications. Truffle comes with a few amazing parts to it.
The next is the local RPC Blockchain called Ganache. Ganache allows you to start a local blockchain in your development environment with two clicks and makes developing DApps on your machine extremely easy.