Do you want to become a become Blockchain developer? With higher salaries, reports of Ethereum Dapps becoming very successful overnight, and new interesting technical challenges, the Blockchain is very attractive for developers.
However, It can also come across as mysterious and hard to figure out for newcomers:
- Where do I get started to get into Blockchain?
- What do I need to learn to become a Blockchain developer?
- Do I need to be a cryptography expert to make it into Blockchain?
- How do I go from newbie to experienced Blockchain developer?
- Where to find Blockchain companies to find a Job?
In this article I will answer these questions and lay out a step-by-step plan to become a Blockchain developer. If you follow this plan, you can become a Blockchain developer in 3-6 month time and find a job at a crypto startup in this timeframe.
- Step 1: Define your goal
- Step 2: Pick a Blockchain
- Step 3: Learn about Dapps that already exist
- Step 4: Learn Ethereum
- Step 5: Learn Development Tools & Libraries
- Step 6: Learn Smart Contracts & Solidity
- Step 7: Build your own Dapp
- Step 8: Prepare for Blockchain interviews
- Step 9: Apply to Blockchain jobs
- Step 10: Get help from the community
Before continuing, I would like to address a common worry among developers who want to make it into the Blockchain industry: “Am I qualified to become a Blockchain developer?”
Let’s clear one common misconception: you DON’T need to be an expert in cryptography or in distributed systems to become a Blockchain developer. That’s only if you want to build Blockchain software itself, but most people build applications on top of the Blockchain, like most web developers build web applications and not web browsers.
However, I do assume that you are already a developer with at least 1 year of experience. If that is not the case, go study some web development first, and then come back.
Let’s get started!
Some articles about becoming a Blockchain developer will just throw at you some advice without even considering what do YOU want. That’s a big mistake. If you don’t take time defining what do you want to achieve and what are your motivations, it will be very easy for your to get demotivated and you will not reach the finish line.
What is your motivation?
A lot of new developers are lured to the Blockchain world because of the crazy gains of cryptocurrencies. I can understand that this is very exciting, and its great to make money, but if you rely on this alone your excitement might be short-lived. Ideally, you should have at least another motivation. For example:
- Being part of the creation of a new ecosystem
- Disrupt dysfunctional industries and improve the world (someone said finance?)
- Empower communities with the decentralization brought by Blockchain
Employee or entrepreneur?
Do you want to find a job at a Blockchain company, or do you want to launch your own Blockchain project?
The Blockchain industry is growing at a breakneck pace, and there are a lot of opportunities to benefit from it. Blockchain entrepreneurs will capture the largest share of this value, but developers can also expect to benefit from this growth.
For Blockchain developers, salaries are on average 140,000 USD a year in the US, according to a survey of computerworld. That’s almost 40% more than for web developers. Another benefit you can enjoy as a Blockchain developer is more options for remote jobs compared with non-Blockchain developer jobs.
Work on Blockchain Protocol or Application?
As I mentioned in the introduction of this article, “Blockchain developer” can mean 2 thing:
- a developer who work on the software that runs the Blockchain (i.e a Blockchain client like Bitcore or Geth).
- a developer who work on applications built ON TOP of a Blockchain technology, such as Cryptokitties
Newcomers think of most blockchain developers as developers belonging to the first category mentioned before, but that’s not true. Most blockchain developers belong to the second category.
This is similar to most platforms:
- on the web, most developers develop web applications, not web-browsers
- on desktop, most developers develop desktop applications, not operating system
This article is mostly for people who want to build applications on top of the Blockchain, but developers who want to build Blockchain software itself will also find this article helpful.
What is your deadline?
If you don’t set yourself a deadline to achieve an objective, chances are you will not apply enough pressure on yourself to make it work. It is essential that you set yourself a time limit. Specify clearly the objective and the deadline. Example:
- I want to have deployed in production a blockchain application in 3 month
- I want to have contributed (5 commits) to a blockchain project in 2 month
- I want to complete 3 Blockchain pet projects in 1 month
There are more than 2000 blockchains registered on coinmarketcap and new one are created every day. You need a sane way to navigate this never-ending flow of information
You don’t need to know every Blockchain to become a Blockchain developer. Actually, you should focus on the few Blockchain technologies that really matter and avoid being distracted too distracted by the others.
The most popular Blockchains are:
Bitcoin is the most stable and battled tested Blockchain technology. It has reliably processed transactions for almost a decade, and its the most used Blockchain. However, its only capable of processing simple transactions and is too limited for many applications.
Ethereum was built to solve the limitations of Bitcoin and allows to run small programs called smart contracts. Think of it as a virtual machine put on top of the Blockchain. The Blockchain guarantees the integrity of the data, and the smart contracts allow to run any arbitrary computation, making Ethereum much more flexible than Bitcoin.
EOS was built as a modern alternative to Ethereum. Like Ethereum, it can run smart contracts. However, unlike Ethereum transactions on Eos are free. Finally, it is much more scalable than Ethereum. One note though: this extra scalability comes at a price of a greater centralization, which makes the tech less eligible to being called “Blockchain”.
It might appear than EOS is the best choice. However, there is one crucial element that don’t play into EOS favor: Network effects. Network effects mean that a network becomes exponentially more valuable as more users join. Facebook is a good example. Once Facebook has reached a certain critical size, it left no chance to competitors because it would be too inconvenient for new users to be isolated of their friends on Facebook.
Likewise, for Blockchain network effects also applies because users want to be able to make transactions between each others. Network effects also applies to the developer communities that grows around each Blockchain. In order to develop applications in a reasonable time and cost, we need not only a rich and mature ecosystem of developer tools and libraries, but also a vibrant community of competent developers.
This can only happen if the community reaches a certain size. The community of Ethereum developers is much bigger than EOS, and it will be very difficult for EOS to ever challenge the momentum of Ethereum.
|Blockchain||Main Reddit||Dev Reddit||# Dapps|
|Ethereum||400k subs||15k subs||2000+|
|EOS||60k subs||3k subs||100+|
That’s why I would recommend you to pick Ethereum.
If you decide to pick Ethereum, before you rush to learn the tech, the next step would be to get more familiar with what kind of applications developers are building on it.
There are more than 2000 applications built on Ethereum and new ones are released every day. We call these applications Decentralized Applications, or Dapps.
A great way to discover popular Dapps is to visit a Dapp list website. The most famous Dapp list websites are StateOfTheDapps (the historical one) and DappRadar (the cool new kid). I personally prefer DappRadar because its easier to access their Dapp lists and also because they have all sort of interesting rankings like the Dapps with the most DAU (daily active users) or with the most transactions per day.
The 4 most popular kind of Dapps that people build on Ethereum are:
Decentralized Exchanges (DEX) are usually exchanges that allow to trade ERC20 tokens in a peer-to-peer fashion. They are popular for trading lesser-known ERC20 tokens which lack liquidity. Centralized exchanges (Coinbase, Bitfinex, etc…) don’t list ERC20 tokens with a low volume, and that leaves an opportunity for DEX. The most popular DEX is Idex, but they are other one like Bancor or the Token Store
Gaming Dapps are mostly what we call collectible games. Users first buy characters from the game creators and then interact with other characters in different ways: fighting, breeding, etc… Compared to non-Blockchain games, the most distinctive feature of Blockchain games is the economy part. Thanks to the Blockchain, players are able to trade their characters freely with other players, without ever worrying about the interference of the game creators. The most famous gaming Dapp is CryptoKitties, where players collect cats that can breed.
Gambling Dapps were among the first kind of Dapps to be built on Ethereum. Fomo3D is one of the most famous, where players have to keep investing ether to avoid letting the last player win all the money. Be aware that gambling Dapps on Ethereum suffer from a bad reputation, because many of them were (openly!) built as scams, with Dapps defining themselves as pyramid schemes or ponzi schemes.
The last category is marketplaces. There are only a few marketplaces on Ethereum, but one that is making a lot of noise at the moment is the market place of Decentraland, a virtual reality world built on Ethereum.
What are you going to build? a Gaming Dapp? A decentralized exchange ? Or maybe something completely different? In any case, keep in mind that your Dapp will benefit the most from Ethereum if it has some sort of economy where users trade assets with Ethereum tokens.
Once you have made up your mind about what you want to build, you need to actually start to think of how you will build your Dapp. To build your Dapp, you will need to learn about 3 components:
- Learn how the Ethereum protocol Work
- Learn how to write smart contracts in Solidity
- Learn how to fit all the pieces together in a Dapp
The rest of this article will introduce you these and give you tips on what are the best resources to learn them
The Ethereum protocol is at the basis of smart contracts and Dapps. You need to understand the basics of Ethereum to understand the rest of the development process on Ethereum. This being said, don’t freak out if you don’t understand all the subtleties of cryptographies and distributed systems, especially if your goal is to build applications on top of Ethereum (Dapps), but not building the Ethereum protocol itself.
Start by reading the Ethereum white paper, which is a high-level description of what is Ethereum. It was written by Vitalik Buterin, the creator of Ethereum.
Reading the white paper is a good start, but it’s not enough to really understand Ethereum in details. If you want to go deeper, you need to read the Ethereum Yellow Paper of Gavin Wood. This is the technical specification used by developers who implement the Ethereum protocol. A lot of mathematical notations are used, and its not for the faint of heart. I had to re-read several times to understand it.
Another good place to learn about Ethereum is the Ethereum research forum. In the forum, the research team of the Ethereum foundation and Vitalik Buterin regularly discuss the latest developments in the Ethereum protocol. It’s a good place to ask and read about the Ethereum protocol.
A note of caution before we continue: in Blockchain, we use the term “client” to designate software that implements a Blockchain protocol. For example, Bitcore is the main client of Bitcoin, and Geth and is the main client of Ethereum. We use the term client because Blockchain is decentralized and using the word “server” would imply its not. But in terms of what a Blockchain “client” does, its actually closer to a “server” than a “client” in the traditional centralized “client” < –> “server” model.
Finally, the book Mastering Ethereum, By Andreas Antonopoulos (who also wrote Mastering Bitcoin) and Gavin Wood (who also wrote the Ethereum Yellow Paper) is about to be released in November 2018. If it’s as good as Mastering Bitcoin, it should be worth reading.
Now that you know about Ethereum, you are probably curious to know how we build applications on top of it (the so-called Dapps). But before being able to learn how to build Dapps, you need to learn about the tools that are required, and about smart contracts.
When developing smart contracts and Dapps, you will need these tools:
Solc is the compiler of the Solidity programming language. It is written in C++ and has its own Github repo. You can compile it directly from source, or more simply you can use a package in your favorite language.
For Nodejs, you can use Solcjs.
You will probably not need to use the Solidity compiler directly, but it’s good to know it exists.
Web3 is a library used to communicate with Ethereum clients like Geth or Parity. Where web3 really shine is in its ability to dynamically create abstractions (objects) that represent a smart contract. These smart contract objects simplify a lot the interactions with a smart contract, and you can use them as if Ethereum had implemented an API specifically for each of the functions of your smart contract.
By the way, in you are into Python you will be happy to learn that a Python port of web3 also exist.
Oh, and make sure that you when follow a tutorial about web3 you know which version of web3 the tutorial is using: pre 1.0 and post 1.0 are not compatible.
Remix is an online IDE for Solidity smart contracts. It might not be as polished as code editors such as Sublime text or Visual Studio Code, but it’s still the most complete tool for writing Solidity code. There aren’t many resources to learn how to use it, but you can checkout my youtube playlist on how to use Remix.
Truffle is the most popular framework for developing Ethereum Dapps. It is written in Nodejs and has a strong community behind it. It has recently launched its own online academy and its own conference.
Truffle makes deploying smart contracts a breeze. Without Truffle, we would need to combine many different tools.
Ganache is a local Ethereum Blockchain used for development. With Ganache, you just need to run a command to start a local Ethereum node and have 10 addresses pre-funded with Ether (fake Ether of course), which is very handy for development.
Metamask is an Ethereum wallet that is packaged as a browser extension. It is used by Dapps when requesting a user to sign a transaction. Transactions might send ether from the user address to another address, or simply change the value of a variable in a smart contract. Metamask is available on Chrome and Firefox but the Chrome extension is more popular.
Now that you know about tools & libraries, it’s time to finally start to learn how smart contracts work.
Smart contracts are the main building blocks of Dapps. There are small programs deployed on the Ethereum Blockchain that run autonomously once deployed. This means that after you deploy them, the network will take care of running them and you don’t have anything to do. This also means that once deployed you have absolutely no privileged “admin” control over them at the Ethereum level. For example, you can’t modify the code once it is deployed. It just runs forever, outside the control of anybody.
As a first step into Solidity, a lot of people like to use CryptoZombies. Cryptozombies is a game designed to teach you the very basics by creating an army of Zombies in a smart contract. More than 300,000 students already followed it, and it’s quite fun to do. If you are into learning games, you might also enjoy Ethernaut, another game where you have to hack a smart contract.
Next, I would recommend to spend some time reading the official Solidity Documentation. It is the most comprehensive resource on the topic and it is regularly updated. You don’t need to read everything, but at least make sure to read about the basics of the language, such as:
- What are the main variable types
- The main control structures
- What is the overall structure of a smart contract.
On my Youtube channel you can find some other resources for learning Solidity and smart contracts.
Since we are talking of youtube, I also really like What’s Solidity, a channel for learning Solidity. The author is quite knowledgable in Solidity and covers some advanced topics.
You might also want to learn about how to write safe Ethereum smart contracts. In smart contracts, you manipulate other people money, so you will be the target of hackers. These are good resources for learning about security in Solidity:
- Awesome Solidity Security, a curated list of resources about Solidity security
- Solidity Security Blogs, a curated list of blogs focused on smart contract security
- Smart contract security best practices, Security guidelines for smart contract developers, by Consensys
- CaptureTheEther, a game to learn about security in Solidity
If you want to to get more tips about learning Solidity, read my article on what is the best way to learn Solidity
Learning Solidity is a great step forward in your quest to become a Blockchain developer, but that’s not enough. Because smart contracts are not very user-friendly we cannot ask end users to directly interact with them. Instead, we need to build easy-to-use UI for users. This is the purpose of Dapps, and that’s the next thing you need to learn.
Before reading this article, you might have heard previously of Cryptokitties. Cryptokitties is this game where players buy, breed and trade kitties. This is built on Ethereum and is a good example of Dapp. Let’s see how this work.
First, we have the Cryptokitties website. This is the main interface interface for user. The website backend is deployed on private servers, and the frontend is a regular webapp. Nothing new here.
Then, we have Metamask. Cryptokitties players use Metamask to send ether to Cryptokitties.
Finally, we have the Cryptokitties smart contract, which is where the game data is stored. For example, if a player buys a kitty, this information will be stored in the Cryptokitties smart contract. The smart contract is deployed on the Ethereum blockchain. There isn’t any single computer that can say “I am the only one who host the smart contract” but instead any computer of the Ethereum network host it.
These 3 parts interact together to form a Dapp. In order to build your own Dapp, you need to build these 3 parts and make them communicate which each other.
You can start by following my Free tutorial series on how to build a Todo list Dapp on Ethereum. This is a 8 steps tutorial where we will build a complete Dapp with the smart contract and the frontend, starting from the smart contract, and all the way up to the frontend:
If you want to follow this tutorial series from the comfort of your tablet/kindle you can also buy the ebook of the series (pdf, mobi & epub/kindle). Plus it will have 2 bonus series on how to integrate React in a Dapp and how to use Drizzle, the frontend framework of Truffle.
If you are looking for online courses for learning to build Ethereum Dapp, you can check out the below links:
- Ethereum Dapps In Motion – my video course where we build a Multisig Wallet Dapp and a DEX (Decentralized Exchange) for ERC20 tokens. Hours of high-quality video tutorials with clear explanations, step-by-step progression, and entirely reviewed by Manning.
Phew! If you reach this step you would have accomplished a lot in your quest to become a Blockchain developer and find a job at Blockchain company
- You have a decent understanding of the Blockchain space and how Ethereum compares to other Blockchain
- You know how to program smart contracts & Solidity
- You have made an Ethereum Dapp that you can show to potential employers
That’s fantastic, and it’s almost time to apply to jobs at crypto startups. But before you do that you need to prepare yourself for these interviews.
Blockchain interviews will consist of:
- General understanding of Blockchain & Bitcoin
- How Ethereum work?
- How smart contracts and Solidity work?
- How Dapp work?
General understanding of Blockchains & Bitcoin
Employers will ask you to explain how a Blockchain work, and what are the different elements of Blockchain. Since Blockchain was created by Bitcoin, the 2 are often mixed together in Blockchain interviews. You can check out my article on what are the Top 12 questions in Blockchain Interviews
Another thing you can do is read the book “Mastering Bitcoin” from Andreas Antonopoulos. When I first got into Blockchain, I stumbled upon this book. I read it end-to-end in a couple of days and it made me become passionate about Blockchain. Throughout my journey in Blockchain and Ethereum, it helped me a lot to have read this book. Thanks to it, I acquired a good grasp on the Blockchain technology and Bitcoin. Knowing that most Blockchain systems and somehow based on Bitcoin, it helps a lot to have a good foundation there.
As for Ethereum, smart contracts, Solidity & Dapps, I already covered them before, so I will not go over them again but I would just like to highlight that beside knowing the basics of Solidity, you also need to know about security in smart contracts during interviews.
Lastly, you can checkout my giant list of resources to learn Ethereum, Solidity smart contracts & Dapps to perfect your preparation for the interviews.
Once you feel confident enough, it’s time to start applying for Blockchain jobs!
The most obvious method is to apply to job offers on job boards.
These are job boards specialized for crypto / blockchain jobs:
General job boards not specifically focused on Blockchain also usually have a decent numbers of Blockchain jobs:
Instead of applying for a job, you could also apply to freelancing gigs:
You can also go to some online communities to find some job posts:
- Monthly “Who is hiring thread” on ethdev reddit
- Monthly “Who is hiring thread” on Hackernews
- CryptoJobsList Reddit
Lastly, I would suggest to also go to local meetups on Blockchain & Ethereum to meet people and find potential employers. More on that in the next section.
At some point in your journey of becoming a Blockchain developer, you will certainly need some help. Fortunately you are not alone and there are a lot of online communities where you can ask for some help.
The Ethereum stack exchange is great place to get some answers. There are already thousands of answers, and it’s very active. However, as is usually the case on stack exchange / stack overflow, they have strict rules regarding what makes a good question or even an acceptable question. One point that is quite restrictive is that they don’t really allow questions to ask for opinions, such as “what is the best way of approaching such technical problem”
For that, you might want to use:
Another way to get help is to meet other developers in real-life. A great way to do this is to go to Ethereum meetups and conferences. For meetups, you can go to meetup to find Ethereum and Blockchain meetups in your region. Make sure you pick a meetup that is focused on the tech, as many are focused on the business side of things and tend to try to sell you their latest ICO-investment crap. As for conferences, the most famous one for Ethereum is DevCon (a bit pricy though). This year started to see some Dapp-focused conferences such as TruffleCon or DappCon. These are way cheaper than DevCon and less crowded. It’s probably easier to make friends there.
Finally, if you want to keep updated with the latest news of the Ethereum ecosystem, you can consult these resources:
- EatTheBlocks Newsletter, a weekly newsletter for Ethereum Dapp developers
- Week in Ethereum Newsletter, a weekly newsletter for Ethereum in general (not only dev)
- Ethereum dev Reddit
I hoped that article helped you to figure out how to become a Blockchain developer. If you want to receive some career advice or have any questions about becoming an Ethereum developer, feel free to reach out at julien [at] eattheblocks [dot] com. Feel free to explore the other resources on this website to learn more about Dapp development.