I'm positive that you've been exposed to the hype the last couple of months; it's practically unavoidable. Crypto, blockchain, decentralization, tokenization, smart contracts, distributed ledgers; perhaps you know what some of these words mean and others mean nothing to you. Several articles posted online are saying these technologies are changing the world as we know it. “The Web 2.0 dynasty is waning; the era of Web 3.0 is upon us.” You're told that you’d better be prepared for what's coming; after all, everyone knows that it's disrupt, or be disrupted.
But as much as you might want to hop on the bandwagon, you aren't sure where to start. As someone who's only recently dove head first into the decentralized circus, here's my take on how to become a blockchain developer in 2018.
Learn the Basics
You don't have to be an expert to step into this realm; however, it's best that you have some knowledge of what's been done, the key concepts, and some terms that will help you understand the conversations people are having right now. Instead of inundating you with meticulous detail, I’ve accrued an introductory list of resources that I find helpful to get you started:
- Intro: The Blockchain and Decentralized Consensus
- Tutorial: Create your own blockchain in 200 lines of Go or less
- Deep Dive: Why Blockchain is Hard
What's a Smart Contract?
What's Proof of Work and Proof of Stake?
There are some resources in here that assume that you literally know nothing about blockchain, so some of this may not be new to you (although a refresher never hurts!). I would also recommend learning more about economics, finance, and game theory, as there are many ideas from these fields that are actively playing out in existing blockchain projects.
Also, it should be noted that this is only to step into the conversation. In order to keep it going, you should be on crypto Twitter, Reddit, Telegram (🔌 like Saito’s Telegram here). To get a informative update on the current state of many blockchain projects, I'd recommend Adam Taché's State of Cryptocurrencies Summer 2018.
Have a Purpose
The field of decentralized computing is a burgeoning field, and as a developer, it’s important to have an appreciation for its importance, beyond what the latest ICO/whitepaper has told you. The reason I'm personally in this space is to see networks reward people fairly for the work they've contributed. With the rise of automation, we're seeing traditional jobs phased out alongside a rapid accumulation of wealth by the world's 0.001%. In order for humanity to enter its next chapter, we will need to find a way to correct humanity’s economic incentives to support the majority of people, whilst not sacrificing our drive for progress.
I've seen a couple of people take short-term interests in the field (ranging a couple of months) only to see their passion decline as they get discouraged. The lack of structure/hand-holding in this space seems to play a part in this; however, there are a couple of advantages because of this. In the crypto space, progress is being made so rapidly that people are still trying to figure out what works and what doesn't. Those with strong vision and the ability to execute independently have tremendous opportunities to captain their ships into the typhoon known as decentralization. To summarize: In the land of the blind, the one-eyed man is king.
Doing > Thinking
Once you have the basics down and are committed to getting involved, it's time to move onto contributing to a project. There's plenty to learn in this space- so much so that if you feel like you need to learn "enough" before you jump in, you will never begin. Don't spend a lot of time contemplating the optimal project to join. My best advice to you would be to start working on something that is close to your current development experience. As much as it would be wonderful to be able to learn both C++ and the in's and out's of Zilliqa simultaneously, it will slow down the rate at which you can gain experience by actively contributing to a blockchain system.
These are a lot of the popular projects with very strong communities and core teams. Right now, it's probably the easiest and most user friendly to develop on top of Ethereum if you’re looking to just get started. However, there are many great projects to choose from, and I've compiled a short list based on language down below. My recommendation is if you have the opportunity, contributing to a smaller project early in its development is the equivalent of taking a crash course in blockchain. It's definitely more daunting, and there's no guarantee that you're building something useful, but from the perspective of personal growth, I’ve found it invaluable. (If you’re looking for some less well-known projects, I'd recommend using Cyrpto Miso as a starting place).
O-Caml (functional languages)
The blockchain space is an exciting field that has only just begun to sprout in the last couple of years. While I've mostly discussed crypto blockchain projects, there are many different network structures being experimented-with, and built as a part of the larger decentralized zeitgeist. I'd encourage everyone to take some time to explore other decentralized networks and paradigms. Overall the paradigms share a similar belief; they all believe decentralized networks are necessary for the future of mankind's evolution.