How to transition toward blockchain development
As a new and complex technology, blockchain can be quite intimidating to the uninitiated. Even software developers experienced in more traditional programming disciplines can often struggle to make the transition to blockchain without proper guidance. However, with the right approach and a positive attitude that transition is certainly possible.
In this article you will find useful tips that will help you on your blockchain journey. You’ll learn what your first steps should be and how to continue once you’ve built a solid understanding of the technology.
Fundamentals
So where to start? Well, as you’ll see below, we believe in the “learning by doing’ approach. However, going theoretical at the beginning really pays off in the long run, when it comes to blockchain. So rather than jumping straight on to writing smart contracts, it’s better to get familiar with what blockchain technology is, how it functions and what it aims to achieve. This will help you build good habits and make sense of some common practices in blockchain development like prioritizing gas efficiency over speed when writing smart contracts.
Writing your first smart contract
Once you have a good grasp of how the technology works, it’s time to write your first smart contract in Solidity – Ethereum’s programming language (note – while Solidity is Ethereum’s native language, there are a number of other languages that can be used for writing smart contracts). To do so you could look at examples and tutorials on the Web and this is certainly a valid approach, as there are plenty of great educational resources out there. Ethereum.org, in particular, is a great resource that not only covers the subject (and everything Ethereum, really) extensively, but also has plenty of code examples.
But writing smart contracts is not easy, especially in the beginning, so wouldn’t it be better to make the learning process fun and interactive? Well, that is certainly a subject to personal preference, but if you’re anything like us you probably choose fun and interactivity every time! In that case, you can check out the Cryptozombies website where you can learn to write smart contracts by making simple collectible games. The free course covers beginner and intermediate level, touches upon advanced concepts such as testing smart contracts with Truffle and building an Oracle and even explores blockchain beyond Ethereum.
Also worth checking out is the EtherScripter tool, which presents another interactive way for making simple smart contracts. Thanks to the simple drag and drop interface, writing a smart contract in EtherScripter resembles solving a jigsaw puzzle. However, bear in mind that EtherScripter is currently only compatible with the Serpent programming language.
Expanding your skills
Now that you’ve learned to write simple smart contracts, it’s time to take your skills to the next level by making the most of the tooling you have at your disposal.
As the leading platform for dApp (decentralized application) development, Ethereum has garnered a large and very active dev community that’s building not only innovative applications, but also powerful dev tools. So if you’re looking to write more robust and complex smart contracts, there’s no shortage of tools that can help you with that.
One such tool is Hardhat, a library and an Ethereum development environment that allows for performing frequent tasks such as testing, compiling, deployment and debugging of smart contracts. It comes with a local Ethereum network node designed to support the aforementioned operations. Hardhat also supports other popular Ethereum dev tools such as Ganache and Ethers.js (see below).
Ganache is similar to the Hardhat Network and is also among the most widely used tools for Ethereum development. Ganache allows you to create your own personal blockchain that runs on a local device and can be used to develop, test and deploy smart contracts in a safe environment.
Ganache goes hand in hand with Truffle, a powerful and versatile development framework that allows you to code, compile, migrate and interact with smart contracts. It can also run automated tests in both Solidity and JavaScript.
If you’re planning on writing smart contracts, you’ll also need to familiarize yourself with the OpenZeppelin library. OpenZeppelin is considered the gold standard for developing secure smart contracts and contains a number useful features, including a method for creating upgradable smart contracts.
From backend to frontend
While smart contract development is an essential skill for blockchain developers, a true dApp requires the backend logic to connect with a clear and functional frontend interface. Here, you have some great options that can help you achieve that.
First, we have Ethers.js, which was initially built specifically for the Ethers.io wallet, but has since grown to become one of the best general-purpose libraries for Ethereum. The library aims to provide the means to interact with the Ethereum blockchain and ecosystem in a compact, but complete package. Ethers.js’ most notable features include: securely stores private keys on the client side; imports and exports JSON wallets – Geth, Parity and crowdsale; imports and exports BIP 39 mnemonic phrases and HD wallets; and meta classes that can create JavaScript objects from any contract ABI (application binary interface).
Ether.js main competitor is Web3.js, which was the most popular tool of its kind prior to Ethers.js’ rise. A great collection of libraries in its own right, Web3.js has everything you need to interact with the Ethereum block chain and Ethereum smart contracts.
Beyond Ethereum
So far we’ve only been talking about blockchain development in the context of Ethereum and there is a good reason for that. Ethereum is the dominant platform for dApps and because of this much of the development activity in the blockchain space happens there. Even if you ultimately end up developing on another platform, many of the skills that you’ve developed while working on Ethereum will naturally translate to other DLT protocols. For example, even some of Ethereum’s biggest competitors maintain compatibility with the Ethereum Virtual Machine so that they can support Ethereum-based smart contracts and dApps.
That said, once you’ve gained enough proficiency in Ethereum, you should consider broadening your horizons and learning more about other prominent DLT protocols like Polkadot, EOS and Hedera Hashgraph, to name a few. When it comes to blockchain development, we firmly believe in the agnostic approach, meaning that the choice of a technology depends on what will best serve the needs of the current project. In that sense, having experience with multiple DLT platforms will make you a better, more flexible and versatile developer.
Keep learning
So you’ve successfully gone through all the stages discussed above and you’ve turned yourself into an awesome blockchain developer. Congratulations, your transition to blockchain development is now complete! However, your blockchain journey is far from over! If you have a background in traditional programming, you already know how important it is to keep up with the latest technologies and trends in your field. Well, this is even more true for blockchain, which is one of the most rapidly evolving technologies today. So, keep learning, stay on top of your game and you’ll have a bright future as a professional in one of the fastest growing technology sectors today.
Do you want to learn more about blockchain? The application window for the next LimeAcademy training season is now open. Learn more here.