The Skills You Need to Be a Blockchain Developer
Photo by John Schnobrich on Unsplash

The Skills You Need to Be a Blockchain Developer

By alexroan | Blockchain Developer | 23 Apr 2020


 

The skills you need to work on to become 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.

Command Line

“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.

Javascript

“JavaScript is a scripting or programming language that allows you to implement complex features on web pages — every time a web page does more than just sit there and display static information for you to look at — displaying timely content updates, interactive maps, animated 2D/3D graphics, scrolling video jukeboxes, etc. — you can bet that JavaScript is probably involved.” — Mozilla

Javascript is primarily an internet language. It’s supported by every web browser available and most web pages have at least some javascript running on them. It’s a client-side scripting language so the code is sent to the client (web browser) which performs the computation. This is in contrast to PHP, for example, where the computation is done on the server. The resulting markup is sent to the client.

W3Schools provide some awesome tutorials for beginners, intermediates and advanced users.

NodeJS

“Node.js is an open-source, cross-platform, JavaScript runtime environment that executes JavaScript code outside of a web browser.” — Wikipedia

NodeJS enables developers to write server-side applications with Javascript. The breadth of frameworks which run on NodeJS allows any form of application to be created and deployed on top of Node. Many Blockchain frameworks are built on top of NodeJS.

Blockchain Basics

“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

“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

If you have experience with Javascript, C++ or other modern object-oriented languages, the syntax of Solidity will be easy to pick up as it’s heavily influenced by these languages.

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

“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.

The web3.js library is easily installed into any javascript project and allows your DApp to send and retrieve information to and from a Blockchain defined by the user. Local, Testnet and the Ethereum Mainnet can all be connected through Metamask and web3.js.

Here are some of the most commonly used and useful functions that web3.js provides.

Web3 is also implemented in Python.

Truffle Suite

“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 first is the framework itself. It provides a great development environment where you can write and deploy Smart Contracts within minutes, its testing framework is easy to use with a choice of both Solidity and Javascript to test your Smart Contracts with, and deployment to any test network or the main network from the command line is super easy.

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.

Read the documentation to understand how to tweak the configuration to suit your environment, and follow tutorials to developtest and deploy Blockchain solutions yourself.


Learn More

If you’re interested in Blockchain Development, I write tutorials, walkthroughs, hints, and tips on how to get started and build a portfolio. Check out this evolving list of Blockchain Development Resources.

If you enjoyed this post and want to learn more about Smart Contract Security, Blockchain Development or the Blockchain Space in general, I highly recommend signing up to the Blockgeeks platform. They have courses on a wide range of topics in the industry, from Coding to Marketing to Trading. It has proven to be an invaluable tool for my development in the Blockchain space.

How do you rate this article?


27

0

alexroan
alexroan

Blockchain Developer


Blockchain Developer
Blockchain Developer

Tutorials, walkthrough, hints and tips on Blockchain Development for all levels of expertise.

Send a $0.01 microtip in crypto to the author, and earn yourself as you read!

20% to author / 80% to me.
We pay the tips from our rewards pool.