The Roadmap to Become a Blockchain Gladiator
This article aims to develop a knowledge roadmap for those who are starting their blockchain career. Wether you come from another programming area (java, c++?) or from a non programming area, this guide will be useful for you. We will structure the guide into 5 different areas: basics, server, frontend, databases and blockchain.
- Basic JS syntax concepts. This course might help
- Callbacks, promises and async-await models (spanish tutorial) — make sure you understand how this simple script works
- Asynchronous patterns (handle streams, for example)
- ES5 vs ES6
- JS websockets: might help this video
Also, don’t forget to understand how to use git as a version control system for your programming code. By this time you should have a Github account (yup, Github is the most used platform in most companies to sync git repositories in the cloud — anyway, you can also choose Bitbucket or others) and the practice to create a repo for each new project you work on, commiting your progress. Get familiar with the basic commands and organize your commits to be clean and specific. Core concepts: https://rogerdudler.github.io/git-guide/index.es.html
Important topics to understand:
- Node.js core concepts
- Node.js event loop & Pattern reactor
- Node.js module system
- Express framework to set up a web server
- Onion architecture and “clean architecture” (from uncle Bob)
- Build an API Rest
- Now build an API Rest considering best practices: check this guide and also this official Microsoft recommendations.
- Error handling
- Cache data using redis
- Don’t forget to learn to unit test your code. Suggested framework: Jest
- And when you work with unit test, at some point you will need to learn how to mock
- Cloud microservices: You can choose between AWS, Google or Azure Services, which are the leading ones. At Rather Labs, we use to work with AWS, so I recommend you to learn at least, the following ones: EC2, EBS, RDS, SQS and lambda functions.
- Node.js Design Patterns, Mario Casciaro & Luciano Mammino
- SQL basics. This tutorial is simple and practical
- MongoDB basics. Check some official guides
- ORMs; check Sequelize
- Query performance. For example, check this article.
- React. Learn the basics
- Next.js. Learn the basics
- Understand how to handle authentication with Next.js
- CSS Tailwind lib
- There are a lot of youtubers/influencers that create pretty useful and valuable courses. Some of them are strictly practical, like Sonny Sangha ones. For example, check this video that will lead you building a Facebook-like app from scratch; and this one, in which you will build a Google-like app. The important thing about those two courses is that they integrate Next.js, Tailwind and responsiveness.
- Need to mockup an API to test integration? Check this mocked api.
- Some basics on React Native, an important framework to build apps. The interesting thin about this framework is that built apps could be compiled for both Android and iOS. To start, might help this course.
- Also check this course to understand React Native hooks:
- Some design core concepts are always welcome. You need to understand at least, Figma basics. This course will help you understand the different stages in prototyping and designing
The blockchain ecosystem is relatively new in the Tech area. It started with Bitcoin in 2008, and it has grown a lot ever since. In the very first days, understanding blockchain meant understading how Bitcoin works, but now, when you find somebody working on blockchain, it could be an specialist in one of multiple verticals: node management (Dev-Ops skills), Smart contract development (mostly Solidity or Rust programming skills), architectural skills (and so, having an understanding about how different modules or parts of the whole blockchain system works, to be able to design decentralized solutions) or financial skills (and so, being able to design DeFi solutions — decentralized finance — understanding token dynamics and token economics).
- Solidity: EatTheBlocks course might help to start understading the syntax
- Ethernaut exercices, to become your path in audits
- Another practical guide to start with examples
- Web3.js and ethers.js libraries to query blockchain and call smart contracts from JS scripts (simple transaction example with ethers.js)
- Create an Infura account and start playing with http/ws node connection
- Get familiar with Truffle or Hardhat suites
- For gas costs, get in mind this useful reference table
- Play with Metamask (try to build a simple dApp that reads address from user and its balance in ETH and tokens; implement calls to smart contracts)
Rust is a relatively new programming language, which excels in security and performance. Newer blockchains are being developed with Rust, and you need to know the basics to start developing smart contracts for Nervos, Solana and Terra, for example.
- The official Rust learning portal holds guides to learn from documentation, from projects and from guided-examples.
- Learn some basics here (practical guide)
- Also this Linkedin course might be helpful (another practical guide)
Here, Chris Burniske is one of the references.
- Set up a private blockchain with PoA consensus protocol, forking Geth
- Blockchain bridges, try to understand how Binance bridge works, for example.
Ethereum Layer 2 Scalability Solutions
- Uniswap V1 protocol
- Uniswap V2 whitepaper
- Compound finance
- Yearn finance
- Understand flash loans concept
- DeFi Ethereum projects list
- BSC projects list
- Understand what a dex agregator is, like this one
Other interesting blockchain topics
I hope this guide will be helpful for you. Consider that I included only the basics, the core concepts or ideas I think you need to know before you start to perfect yourself in one area. Let’s keep in touch, feel free to share your comments or suggestions. I will be updating this article when I consider I find new interesting topics to add.