avatarAlex Roan

Summary

The article outlines the essential skills required to become a blockchain developer, ranging from foundational coding abilities to blockchain-specific technologies such as Solidity and the Truffle Suite.

Abstract

For individuals aspiring to enter the blockchain development field, the article provides a roadmap of necessary skills. It begins by addressing the need for basic coding knowledge, including command-line usage, JavaScript, and NodeJS, and then delves into blockchain fundamentals. For those with coding experience, the focus shifts to blockchain-specific skills such as Solidity for writing smart contracts, Web3.js for interacting with the Ethereum blockchain, and the Truffle Suite for developing, testing, and deploying decentralized applications (DApps). The article emphasizes the importance of understanding blockchain concepts and the immutable nature of smart contracts, while also recommending resources and tools to facilitate learning and development in this emerging field.

Opinions

  • The article suggests that learning Unix or Linux command-line interfaces is crucial for software development, considering that most development activities are performed on Unix-backed systems.
  • JavaScript is highlighted as a fundamental language for web development, supported by all web browsers and integral to client-side scripting.
  • NodeJS is recommended for server-side application development with JavaScript, which is a prerequisite for many blockchain frameworks.
  • Understanding blockchain basics is considered vital, with Blockgeeks.com mentioned as a valuable learning platform for acquiring this knowledge.
  • Proficiency in Solidity, the programming language for writing Ethereum smart contracts, is deemed essential, with its syntax being accessible to those familiar with JavaScript or C++.
  • The importance of Web3.js is underscored for connecting Ethereum blockchains to client browsers, facilitating the creation of DApps.
  • The Truffle Suite is praised for its comprehensive tools that simplify the development, testing, and deployment process for DApps.
  • The article conveys a positive opinion about the potential of blockchain technology and encourages developers to engage with the provided resources for continued learning and growth in the blockchain space.

The Skills You Need to Be a Blockchain Developer

The skills you need to work on to become a blockchain developer.

Photo by John Schnobrich on Unsplash

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 develop, test and deploy Blockchain solutions yourself.

Further Reading

Blockchain
Programming
Cryptocurrency
Self Improvement
Software Engineering
Recommended from ReadMedium