Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/thecryptoshed/eth-dapp-developer-roadmap

This project is the collection of resources to learn ethereum based dapp ecosystem
https://github.com/thecryptoshed/eth-dapp-developer-roadmap

Last synced: 3 months ago
JSON representation

This project is the collection of resources to learn ethereum based dapp ecosystem

Awesome Lists containing this project

README

        

# dApp Developer Roadmap

> Roadmap to becoming a dApp developer in 2019:
Below you can find a chart demonstrating the paths that you can take and the libraries that you would want to learn to become a dApp developer. I made this chart as a tip for everyone who asks me, "What should I learn to be a dApp Developer and where to start?"

## Disclaimer
> The purpose of this roadmap is to give you an idea about the landscape. The road map will guide you if you are confused about what to learn next, rather than encouraging you to pick what is hip and trendy. You should grow some understanding of why one tool would be better suited for some cases than the other and remember hip and trendy does not always mean best suited for the job

## Inspired By
> This repository is inspired by [react Developer Roadmap](https://github.com/adam-golab/react-developer-roadmap).

## Roadmap

![Roadmap](./dapp-developer-roadmap.png)

## Resources

1. Basics
1. Blockchain
* Learn the basics of Distributed Ledger Technology (DLT)
* Bitcoin protocol [Explained](https://medium.com/coinmonks/bitcoin-white-paper-explained-part-1-4-16cba783146a)
* Elliptic Curve Cryptography [link](https://medium.com/coinmonks/learn-how-to-code-elliptic-curve-cryptography-a952dfdc20ab)
2. Ethereum
* Learn the basics of Ethereum
* Ethereum Virtual Machine (EVM)-- turing complete
* Learn about Wallets, Accounts (EOA), Private/Public Keys
* Learn about transactions, Gas, Metamask
* Ethereum clients/Nodes, Geth
* Infura infrastructure
3. Smart Contract
* Basics of Smart Contract
* Life Cycle of Smart Contract
* Ethereum Higher Level languages (**Solidity**, Vyper, LLL, Serpent)
* Compiling, testing, Deploying smart Contracts
* Interacting with smart contracts using web3.js or web3.py
2. General Development Skills
1. Learn [GIT](https://medium.com/pixel-pioneers/the-basics-of-version-control-system-git-explained-by-designing-a-new-car-3fb3a10e9e40), create a few repositories on [GitHub](https://github.com/) / [GitLab](https://about.gitlab.com/), share your code with other people
2. Know HTTP(S) protocol, request methods (GET, POST, PUT, PATCH, DELETE, OPTIONS)
3. Don't be afraid of using Google, [Power Searching with Google](http://www.powersearchingwithgoogle.com/)
4. Get familiar with terminal ([Linux/Docker](https://medium.com/coinmonks/how-to-become-a-blockchain-developer-59c830e20f15)), configure your shell (bash, zsh, fish)
5. Read a few books about algorithms and data structures, blockchain, Ethereum, solidity
6. Web Development Concepts
7. Basic Mathematics
3. Learn React on [official website](https://reactjs.org/tutorial/tutorial.html) or complete some [courses](https://egghead.io/courses/the-beginner-s-guide-to-react)
4. Get familiar with tools that you will be using
1. Package Managers
* [npm](https://www.npmjs.com/)
* [yarn](https://yarnpkg.com/lang/en/)
* [pnpm](https://pnpm.js.org/)
2. IDE's
* [Remix IDE](https://remix.ethereum.org/)
* [Ethfiddle](https://ethfiddle.com/)
* [labs.superblock](https://superblocks.com/)
* [Truffle](https://truffleframework.com/)
* [Populus](https://github.com/ethereum/populus)
* [Solidity v0.5.3](https://solidity.readthedocs.io/en/v0.5.3/)
* [Vyper](https://github.com/ethereum/vyper)
5. Frameworks
1. Truffle Suit (Recommended)
* [Truffle](https://truffleframework.com/truffle)
* [Ganache](https://truffleframework.com/ganache)
* [Drizzle](https://truffleframework.com/drizzle)
* [Tutorials](https://truffleframework.com/tutorials)
* [Truffle Under the Hood](https://medium.com/heartbankacademy/how-truffle-works-under-the-hood-f1ff6add416c)
2. ZeppeLine OS
* [Getting Started](https://docs.zeppelinos.org/docs/start.html)
3. Labs.Superblock
* [Labs.superblocks](https://lab.superblocks.com/)
* [Video Tutorials](hhttps://www.youtube.com/watch?v=wYGXq8vW9Dg)
* [dapp Tutorial](https://www.youtube.com/watch?v=LK-kVMzrdno)
4. Populus (Python)
* [Populus](https://github.com/ethereum/populus)
* [Tutorial](https://populus.readthedocs.io/en/latest/tutorial.html)
5. Infura (A Gateway to Ethereum)
* [Mainnet End Point](https://infura.io/)
* [Ropsten TestNet End Point](https://infura.io/)
* [Kovan TestNet End Point](https://infura.io/)
* [Rinkby TestNet End Point](https://infura.io/)
* [IPFS](https://medium.freecodecamp.org/hands-on-get-started-with-infura-and-ipfs-on-ethereum-b63635142af0)
6. Interacting with Smart Contract
* [Web3.js](https://web3js.readthedocs.io/en/1.0/)
* [Web3.py](https://web3py.readthedocs.io/en/stable/)
7. Python Ethereum Eco System
* [Article](https://medium.com/@pipermerriam/the-python-ethereum-ecosystem-101bd9ba4de7)
6. [Distributed Storage Systems](https://medium.com/bitfwd/what-is-decentralised-storage-ipfs-filecoin-sia-storj-swarm-5509e476995f)
1. [IPFS](https://ipfs.io/)
2. [SWARM](https://swarm-gateways.net/)
3. [Storej](https://storj.io/)
4. [Sia](https://sia.tech/)
7. Ethereum Naming Service
* [ENS](https://ens.domains/)
8. Front End App
* [React / React Native](https://truffleframework.com/tutorials/drizzle-and-react-native)
* [React Roadmap](https://github.com/adam-golab/react-developer-roadmap)

## Further Readings

### Recommended Articles
1. [Awesome Ethereum Resource Lists](https://medium.com/quiknode/awesome-ethereum-resource-lists-dd28a9c17fc1)
2. [Comprehensive Ethereum Developer Resource List](https://github.com/ConsenSys/ethereum-developer-tools-list/blob/master/README.md)

### Recommended Libraries
1. [Solidity Smart Contract Library: OpenZeppeline](https://openzeppelin.org/api/docs/get-started.html)
2.
### Books
1. [Mastering Ethereum: Building Smart Contracts and DApps](https://www.amazon.com/_/dp/1491971940?tag=oreilly20-20)

### Courses
1. [Ethereum and Solidity: The Complete Developer's Guide](https://www.udemy.com/ethereum-and-solidity-the-complete-developers-guide/)

### Youtube/Medium Channels
1. [Coinmonks](https://medium.com/coinmonks)
2. [Dapp University Website](http://www.dappuniversity.com/), [Dapp University Youtube](https://www.youtube.com/channel/UCY0xL8V6NzzFcwzHCgB8orQ)
3. [ZeppeLine](https://blog.zeppelin.solutions/)
## Wrap Up

If you think the roadmap can be improved, please do open a PR with any updates and submit any issues. Also, I will continue to improve this, so you might want to star this repository to revisit.
QZweqfxbn
## Contribution

The roadmap is built using [Draw.io](https://www.draw.io/). Project file can be found at `/src` directory. To modify it, open draw.io, click **Open Existing Diagram** and choose `xml` file with project. It will open the roadmap for you. Update it, upload and update the images in readme and create a PR (export as png).

- Open a pull request with improvements
- Discuss ideas in issues
- Spread the word

## License

[![License: CC BY-NC-SA 4.0](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/)