This blockchain developer roadmap lays out a framework for learning blockchain development. It should provide a wealth of resources and information for aspiring blockchain developers.
- Blockchain Developer Roadmap Video
- Understanding The Moving Parts
- Frontend Web3 vs Backend Smart Contracts
- Choosing A Blockchain
- Should I Learn Solidity As A First Language
- Blockchain Development Toolset
- Free Resources To Learn
- Testnet Playgrounds
- Hackathons
- Open Source Projects
- Blockchain Jobs
- Blockchain Developer Community
Blockchain Developer Roadmap
Understanding The Moving Parts
There are a number of roles within the blockchain sector and an understanding of what each of these does will help gauge where you fit in. Note that this article is mainly focused on frontend web3 development and backend smart contract development.
Developer Roles
- Smart Contract Developer – Working on backend smart contracts developing the core number crunching functions that need to be perfect with no room for bugs. Smart contract developers will usually work in Solidity for anything based on Ethereum or Rust for Solana.
- Smart Contract Auditor – A focus on security and preventing loss of funds. Auditors will assess code, look for edge cases and use tools such as fuzzers to perform assessments.
- Web3 Developer – Creates a website or dApp frontend which connects to a wallet such as metamask and interacts with the underlying smart contract. Web3 developers usually have some webdev experience and will work with Javascript for the main complexities.
- Web Designer – This is often the same role as the web3 developer but someone with a creative skillset and experience with graphic design and CSS can add a lot of value.
- UX / CRO Roles – User experience and conversion rate optimisation is often overlooked in the DeFi space. As time moves on and the industry becomes more competitive this will become key and there’s opportunities here for many projects to improve their conversion flow and usability.
Non-Developer Roles
- Miners / Node Operators – Engineering based role managing hardware and core client software to enable the decentralised networks to operate. Many DeFi projects rely on existing infrastructure such as Infura but as they scale having independent infrastructure can be advantageous.
- Marketing – Great tech isn’t useful if no one knows about it. A good marketing (budget) and customer acquisition model is key to growing successfully. Marketing professionals can be split into data driven media buyers and creative PR types. Both are a valuable commodity in a noisy industry built on hype and attention.
- Legal Advisors – For projects operating in the US particularly it’s important to gain some legal counsel. The SEC has adopted a stance where it’s trying to assert and exercise authority in the space. Compliance and meeting regulatory requirements is an ongoing challenge.
- Social Media Manager – One of the first hires most projects take on is a social media manager because handling the “sir, when lambo” guys becomes a full time job in itself.
- Investment Analysts & Traders – There are plenty of research and trading roles available at the ever expanding list of VC’s and Prop trading firms in the industry.
Frontend Web3 vs Backend Smart Contracts
Much like in traditional web development key roles are normally divided into frontend and backend teams. There are some key differences however. Frontend web3 developers will usually be working on much more code heavy projects where design is an afterthought.
This is Curve, the leading DeFi platform by TVL in the world with over $22B invested.
Obviously Curve looks like it was created in the 1990’s as a design choice but throughout the industry there is less attention to detail and user experience within DeFi platforms compared to web design or mobile app development work.
Backend development of smart contracts is very different to working with databases and micro services as well. There is no room for bugs, so each line of code needs to be meticulously considered before being committed. I’ve heard it being compared to more like hardware or circuit board development than other software.
The reason for this is that once a smart contract is deployed it can’t be updated (in most cases). You can’t just roll out a quick hot fix and restart the servers if something needs changing. Then there’s also the fact that the code is handling and storing digital assets which will be targeted by hackers if the protocol becomes popular.
Don’t let any of this put you off however. If you can code a website then with a bit of practice you’ll be able to build a decentralised application and deploy it to the blockchain. Like anything else, practice makes perfect and what is intimidating at first becomes second nature after enough reiterations.
Choosing A Blockchain
The main choice developers need to make is do they want to develop on an Ethereum based blockchain or something else. That’s because everything with traction currently is based on Ethereum and runs the EVM (Ethereum Virtual Machine). There’s the Ethereum layer 1 which has become excessively expensive for most developers with contract deployment costs currently running from hundreds into thousands of dollars. A solution to this is a whole host of 3rd party projects which use the same code base and EVM as Ethereum (so Solidity code works on those too) but with varying levels of decentralisation.
- Arbitrum
- Optimism
- Avax
- Binance Smart Chain
- Polygon Matic
- Fantom
- ZKsync
- Moonriver
- HECO Huboi Eco Chain
- Cronos
- zkSync
- Scroll
Transaction fees on these layer 2’s and alternate layer 1’s are usually much cheaper with contract deployment costing just a few cents in some cases.
Then there is the coding language. Solana uses a language based on Rust while EVM chains use Solidity which is based on a syntax similar to Javascript. Ethereum has been around longer than Solana so the tooling, stack overflow posts and documentation are quite a bit more developed and easier to work with.
My recommendation is that if you don’t have a strong reason to develop on Solana then develop with Solidity as it’ll give you far more options to deploy across multiple networks now and in the future.
If you don’t care about decentralisation then Binance Smart Chain is a popular and cheap to use network, if you do and perhaps you should then the Ethereum Layer 2’s will likely gain a lot of traction and zkSync is one to watch and build on in the future.
Should I Learn Solidity As A First Language
In my opinion it would be unwise to learn Solidity as your first coding language. My reasoning for this is that you’ll likely need to know Javascript as well because it’s used in deployment scripts and web3 etc. So learning Javascript initially is a lot more forgiving and will set you up to take on Solidity once you have a bit more experience with coding.
Javascript is also a much more versatile language as it can be used for web development, app development via Cordova, Desktop application development via Electron. I read somewhere that the International Space Station uses Javascript to run it’s UI. In contrast Solidity is only used for smart contract development.
There are also a lot more resources for learning Javascript and there’s endless tutorials on Youtube. If you want to find out “how to get the second to last in an array with Javascript” you can just Google it and pick the top answer on Stackoverflow. Senior developers will cringe at this but when you are getting started it’s a great way to learn and get things done without getting stuck or brute forcing a solution.
As a first language I think it’s hard to make an argument for anything other than Javascript. The only exception would maybe be Python if you are specifically looking to get into more of a data analytics and machine learning role where this excels. For everything else learn Javascript in the browser and an in the console with Node JS. From there move on to a specialist area like Solidity for smart contract development.
Blockchain Development Toolset
Having the right tools for the job is half the battle, the other half is mastering how to use them.
IDE (Integrated Development Environment)
For smart contracts when starting out https://remix.ethereum.org has everything you need in one place. You can use it as an online text editor, compile and debug contracts and even migrate code and execute smart contract functions via injected web3.
Once a blockchain developer starts to take on more complex projects with dependencies and multiple files it’s often worth moving to a offline locally hosted solution. There are two strong options here: Hardhat and Truffle.
Truffle was the original node js application that has been used for many years to compile and migrate Solidity code to the blockchain. Hardhat is newer and has some design improvements and feature benefits. I would probably recommend Hardhat but use both myself on a regular basis.
For web3 frontends there are also two options and this normally overlaps with the backend decision. There’s the web3.js library and the ethers.js library. Similarly web3.js has been used for year and is battle tested. Ethers.js is newer, more refined and is normally used alongside Hardhat.
Which you choose is a personal decision and both do the same job in only very subtly different ways.
Text Editor
Once you have Truffle Suite or Hardhat installed you’ll also want a text editor to open up code repositories and work on the code.
The obvious choice here is VS Code from Microsoft.
Browser & Wallet
You’ll also need a web browser and a digital wallet to hold funds and pay transaction fees.
Google’s Chrome browser and Metamask again are obvious choices. Metamask can be configured to work with any EVM compatible blockchain by adding networks. For Solana development there is the excellent Phantom App.
Terminal
A terminal is like an old school msdos prompt where you can run things from a command line. 95% of blockchain stuff can be run on Windows, Mac or Linux. If you are a windows user then you can use the Powershell terminal, just hit the windows key and type powershell to launch a terminal. Occasionally node software can only be run on Linux or via docker which will require either a cloud instance or a VM like WSL (Windows subsystem for Linux).
I code primarily in Windows and use Linux via WSL, if I had more time and patience I’d probably use Linux for everything.
Access Point
An access point provides an API to interact with to send transactions to a decentralised network. So the web3 javascript code will connect to an access point, sometimes called an RPC provider and that will relay messages to the rest of the nodes that form a peer to peer blockchain network.
A couple of options here which kind of goes back to the truffle vs hardhat choice. Infura is tried and tested and been around for ages. Alchemy is the new kid on the block with some nice shiny features. Both have free tier usages which will suffice the majority of blockchain projects.
Free Resources To Learn Blockchain Development
Here are some excellent resources to help learn Solidity and Web3 development
Crypto Zombies
This is a gamified tutorial focused on smart contract development. It includes aspects of NFT’s, Web3 and gas optimisation. I completed this course despite already having a good understanding of Solidity simply because it was fun and good practice.
Capture The Ether
This is a little dated now but provides an excellent primer on smart contract security. Each challenge introduces a new way in which you the hacker needs to exploit a smart contract. You’ll need to use Solidity and remix to connect to the live game which runs on a testnet.
As you get further in to the game it becomes increasingly challenging and focused on strange Solidity and EVM behaviours.
https://capturetheether.com/challenges/
Note that a lot of the integer overflows have been fixed with the safemath-esque integration in v8 of the Solididty compiler.
Read The Docs
Ethereum has great documentation and I find myself referring back to it often. It’s worth having a browse through and more in depth study if you get a chance to do a deep dive.
https://docs.soliditylang.org/
https://ethereum.org/en/developers/docs/
https://hardhat.org/getting-started/
Youtube Channels
Plug! Did I mention I make videos and you should subscribe? https://www.youtube.com/c/JamesBachini
Other arguably better productions include this list of the 45 best crypto influencers.
Notable channels for developers include dApp university, Eat The Blocks, Eth Global, Smart Contract Programmer, Patrick Collins and Alysia Tech.
Solana Development
For Solana development there is the excellent: https://solana.com/developers
Also there’s SolHack which provides tutorials broken down into manageable bite sized modules with an active community.
Testnet Playgrounds
One intimidating thing when starting out working with blockchain development is the fear of losing money. This can be overcome initially at least by building on testnets. Every blockchain will have a testnet associated with it, Ethereum has about 5 different ones.
A testnet is a duplicate of the main network (called mainnet) which has free worthless tokens. These are setup so developers can experiment and deploy and test contracts with no financial or security implications.
Note that you want to use a different wallet when working with programmatic transactions or testnet funds. This helps avoid the situation where private keys are pushed to public Github repositories.
For more information on working with testnets check out this article: Testnet Faucets
Hackathons
Hackathons are a great way to engage with other developers in the blockchain community. It can also be a good place to meet VC’s and investors if you are looking to raise capital.
https://cointelegraph.com/tags/hackathon
https://devpost.com/hackathons?themes[]=Blockchain
You can also make some good money from blockchain hackathons. I’ve had some good results in the past which have brought in thousands of dollars worth of tokens in prizes.
Note that some hackathons are used more as a grant mechanism with winning projects being developed months prior to the start of the hackathon so check first as this limits the chances of winning if you are interested in prizes and doing a weekend entry in your free time.
Try to build and learn useful things, meet like minded people and keep it fun.
Open Source Projects
A great resource for new and experienced developers is the open source nature of decentralised finance. The vast majority of projects make their code openly available to learn from, fork and play with.
A good starting point are Open Zeppelin’s libraries of token interfaces and helper modules.
https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts
These provide a good example of what quality Solidity code looks like, what is possible and how to do particular things and how the individual token contracts work on a fundamental basis.
From there you can read through your favourite DeFi projects code base and even try deploying their contracts on your local testnets.
Here’s an example of forking the Safemoon contract: How To Clone Safemoon
Blockchain Jobs
Talented blockchain developers are in high demand globally. Due to Covid I’d estimate that 80%+ of roles are now remote.
Salaries vary across the industry and are unfortunately dependent on where we are in the market cycle. During the middle of a bull run a lot of new money is rushing in to the sector and unfortunately there is a shortage of experienced developers because they already got rich in the last cycle or they are working on their own projects that have more upside.
Note that no one in this industry has achieved mastery and a blockchain developer with 3-5 years experience would be considered senior for most roles as it just hasn’t been around for that long.
Average salaries for senior Solidity developers in 2022 are in the region of $200k/yr with junior positions ranging widely depending on experience and abilities. Web3 developers tend to earn less as it’s less specialist but someone with previous web3 experience will likely get offered a premium over a generalist front end developer.
Note that in a bear market investment and job opportunities disappear. It was a bad joke that you can time the markets by when Consensys is hiring or firing employees.
Some sites to find blockchain jobs:
https://www.linkedin.com/jobs/blockchain-jobs/
If you want stability then look for successful well funded organisations that have been around for a while and have a long term plan to make money in the industry. If you want potential look at recently launched projects and try and secure a token allocation in addition to your salary as most projects will have a vested team allocation for tokens.
There is also a lot of contract work available and no end of projects that want to pay you only in tokens. I’d suggest against taking these opportunities unless you are exceptionally confident the token will gain liquidity and traction in the future.
Blockchain Developer Community
The blockchain developer community is a welcoming bunch of geeks, libertarians and business men. Community events are normally good fun, informative and great for getting a feel for where the industry is and where it might be heading.
https://ethereum.org/en/community/events/
Get involved in conferences, meetups, hackathons and local communities.