This is a question that has repeatedly come up in the recent weeks. I’m not a developer, so, for some time, I didn’t have an answer up my sleeve. But I never really stopped thinking about it. And at some point I realized that I know a few people that I could ask – my colleagues at RomSoft who work in various projects using Blockchain technologies. So I took advantage of that and asked for their opinion.
In listening to them, I realized that in one way or another, they were telling me the same things:
- Blockchain is not a programming language. It’s not a database. And it’s not about implementing an algorithm. It’s an underlying technology for your project.
- The required knowledge depends on the project layer you are involved in. And it also depends on the blockchain distribution your application is using.
Here are some more things that I’ve learned from these discussions about what you need to work on blockchain projects.
The mandatory stuff
Solid knowledge of algorithmics and data structure are even more important than the name of the programming language you are using.
The nice to have bits
For some applications, the Blockchain layer is so abstract that, at the user interface level you don’t even realize it’s being used. Depending on the level you are involved at, as a programmer, you may need Cloud technologies knowledge (AWS, Azure etc.), or front-end knowledge (HTML, CSS). You may be required to use continuous integration tools (like Jenkins) or you may need to learn some more specific systems like Docker or Kubernetes.
At a deeper level, you may be confronted with specific blockchain notions like traceability, transparency, distributed systems, immutability, and smart contracts.
If you want to go into more detail, and depending on the blockchain distribution that your application is using, you may need to start learning specific notions, tools, and programming languages. For example, for Ethereum you need to learn Solidity in order to implement a smart contract. For HyperLedger Fabric you can choose between Go, Node.Js or Java to make the same implementation of a smart contract.
For sure, as is the case with any other technology, you have to be passionate about it. To be always curious to learn and see how you can contribute to solving complex business problems such as data security or traceability.
The more you are interested in cryptography, peer to peer networks and distributed systems the more you are likely to enjoy working in a blockchain based project.
Food for thought from the team
In order to understand what blockchain is, you first need to understand what it isn’t. And why.
If you’re a junior developer fresh out of college and your first project is based on blockchain technologies, you can handle it. As long as your mind is set, you’ll always find the people to learn from.
I’ve always been passionate about the world of distributed systems and how they can secure the privacy of data. When I saw the opportunity to be involved in a project that was really centered on data privacy, I jumped in. I didn’t know where the boat will sail to, or that we’ll end up using blockchain technologies.
What’s your opinion?
Do you have any blockchain related experience that you’d like to share? Are you curious about the technology? Where would you start your learning journey? We’d like to hear from you – especially that we have an open position in one of our blockchain based projects – who knows, maybe we’ll even end up working together.