According to the research of Gartner company, blockchain technology will almost certainly affect the business of most IT giants in the next 5 years. And according to the calculations of the famous consulting company Grand View Research, based in Silicon Valley, by 2028, the global blockchain technology market will reach 394.60 billion US dollars. It’s worth taking a look at what skills are required to jump into this world as a developer. As Neti team below we are sharing our experience and thoughts in this area.
In what areas are blockchain developers most in demand?
Blockchain technology - especially DeFi - is strongly associated with the financial industry. But in fact, it can be used in any industry e.g. retail and logistics, leasing, internet of things, real estate, insurance and this are not a complete list of areas in which chains of block transactions will solve many problems. There is also an example of the American state of Utah, which tried blockchain in organizing its municipal elections, which means this technology can contribute to changes in the practice of election campaigns. In all those areas there is a huge shortage of skilled and experienced developers, who can not only write program code, but most of all propose solutions for solving programs and take responsibility for the work and take responsibility for them.
***If you have a project from DeFi space and looking for IT partner who will take care of technical part of your project do not hesitate to contact Neti.***
Where to learn blockchain programming?
- You can start in a very joyful way — just play the CryptoZombies game. It’s an interactive school that teaches you all things technical about blockchains. By playing you will not only spend your time in an interesting and engaging way, but you will also jump into the topics crucial for any blockchain developer.
- We encourage you to visit sites like: Udemy, Pluralsight, Coursera, and 101 Blockchains, one of the specialized blockchain learning platforms.
- Check out the articles on medium.com. There are lots of articles describing language, patterns, antipatterns, traps, and smart solutions for particular problems. There are also very valuable articles describing the problems you want to solve. By using knowledge already available through reading articles you will save hundreds of hours of your time and will have a chance to avoid mistakes that someone else has already made.
- Read/review the “smart contracts” code available on GitHub. It is a really useful guide with good practices to learn. There are tons of programs written in Solidity running in production in the blockchain. Most of them are open sources to ensure transparency and visibility of the system. There is no better way to understand what to do and what to do not do than looking in verified checked by thousands of developers code.
What do you already need to have to become a blockchain developer?
- A crypto wallet (for instance from MetaMask). How to do this? You will find a good manual here or here.
- The analytical mindset. You will need to be able to predict most of the consequences of your work and solve complex problems.
- You will need to know in “which chain” you want to develop (depending on this you may need to learn a different language, for example, Ethereum is written in Solidity).
- The understanding of smart contract platforms and how is the best to apply them. The developer should understand the types of smart contracts and how to develop them. Our experience shows that it’s easiest to start with some Ethereum side chain (like Avalanche or Celo), where transaction costs are little, and the Solidity language is in usage.
- At a later stage, knowledge in the field of cryptography will also become valuable, which will allow you to better understand how it is all working underneath. Good knowledge about data structures and cryptography like hash functions e.g. SHA256 and KECCAK256 are used in blockchain aside from asynchronous cryptography for generating digital signatures. It is impossible to become a blockchain developer without understanding how these work. Please notice that knowledge in cryptography will also become valuable but on the advanced stage of learning. It will allow you to understand better how it all flows underneath.
- The basics of both front-end and back-end development include things like creating interactive graphical user interfaces for Dapps, API handling, request handling, etc.
What are some of the hardest challenges?
- You will need to understand the concept of tokenomics (how the solution you build will work and whose problem it will solve and how?).
- The mistakes and errors may cost you a lot (remember to spend more time on analytics to avoid the high costs of the exploitation mistakes).
- Start loving TDD (test-driven development).
- Understand different token’s specifications and their use cases (ERC-20, ERC-721, ERC-1155, etc.). Please notice that ERC-20 is the simplest one.
What tools do you need to be familiar with?
✅ Hardhat — is a development environment used by most solidity developers in the world. It’s used for smart contracts compiling, testing and deployments. Its unique functionality is built in the development server which allows you to run the tests out of the box without spending time on configuring external dependencies.
✅ Truffle is another development environment used for testing, deployments, and task automation. In contrast to Hardhat it requires a local blockchain (for instance Ganache) for local testing. Because of this, our developers say it’s less flexible than Hardhat and also not so commonly used.
✅ Remix (online development environment); you can not only code contracts in it but also compile and simply run/execute them. Best for prototyping, quick testing, firing functions on not verified contracts which we have the code for, no setup needed.
✅ Vscode — most popular IDE for software development with Solidity plugin (works with hardhat as remix alternative).
✅ Ethers — library for interacting with blockchain from the Web application level. It ensures the ability to connect through various providers, call read/write functions, handle wallets, events subscriptions. Moreover, it provides a lot of EVM built-in constants. It’s small ( just 377 KB), also tree-shakeable, so we can just get the functions we need for our build, instead of the whole package (unlike web3), very well TypeScript compatible.
✅ Web3 as an ethers alternative. Practically 100% of our dev team prefer to use ethers, but if you would like to give a try to another library for communication with blockchain from the web application — Web3 is probably the one you are looking for.
✅ Ganache — the application that runs our own blockchain locally for fun/tests.
The blockchain industry needs developers. If you want to work in a new field, start learning and be patient and visit Neti website.
The technology is still considered new but there is enough information and courses on the web to educate. For useful data, you should find the developer community (eg. Discord, Telegram, or usually you can find it on the website of a specific “chain” — they have links to their community).
We keep our fingers crossed and wish You a piece of good luck in Your blockchain technology learning trip.
Could you share with us how you get knowledge about blockchain programming/technology?
If you would like to know more, do not hesitate to contact Neti.