Inspired by Google Interview University, Machine Learning for Software Engineers, The Authoritative Guide to Blockchain Development
"The blockchain symbolizes a shift in power from the centers to the edges of the networks." - William Mougayar
A collection of resources that I've gathered over the past couple years while advancing in the blockchain world. Hope this can help others.
This list is by no means exhaustive and is centered on the end goal of building production quality smart contracts and DApps. My journey has been focused on Ethereum but I would love this list to expand and not just be limited to one Blockchain. All contributions welcome!
Security researcher and engineer
Create and curate a list of resources for aspiring and seasoned blockchain engineers.
- What is it?
- About me
- Goal
- Covering the Material
- How to use it
- Data Structures
- Cryptography
- Distributed Systems
- Networking
- Economics
- Intro to Bitcoin and Blockchain
- Bitcoin and Blockchain Tutorials
- Advanced Bitcoin
- Bitcoin and Blockchain Books
- Intro to Ethereum
- Solidity and Smart Contracts
- Beginner Ethereum Tutorials
- Smart Contract Security
- Tools of the Trade
- Ethereum Tutorials
- Ethereum Books
- Blockchain Blogs
- Forums and Threads
- Other Tools
- Podcasts
- Hackathons
- Additional Curated Lists of Resources
- Getting a Job
- Job Boards
Over the past two years, I found it useful to pick a subject from the list below, read it thoroughly, take notes, and implement on a blockchain running locally. I tend to prefer a top-down, hands on approach to learning. I found it extremely important to build and push my understanding further daily.
Everything below is a prioritized outline and you should work from the top to the bottom.
- Create a new branch so you can check items like this, just put an x in the brackets: [x]
Blockchain technology is a multi-disciplinary field built atop cryptography, economics, and computer science. The background section includes some requisite fundamentals in these fields that will ensure you have solid footing before diving deeper into the blockchain specifics since many of the features that exist today are results of years and years of previous research.
- Public/Private Key Cryptography
- RSA
- ECDSA
- Cryptographic Hash Function
- Commitment Schemes
- Merkle Trees
- Merkle Proofs
- Consistency
- Consensus
- Linearizable
- Eventual Consistency
- Fault Tolerance
- Time In a Distributed System
- Tradeoff: Safety vs. Liveness
- Byzantine Fault Tolerance
- Distributed Databases
- Blockchain 101
- The Blockchain Explained to Web Developers
- What is a distributed ledger?
- How Bitcoin actually works
- Bitcoin Whitepaper
- Bitcoin Mining
- Walk through a Bitcoin Block header
- Bitcoin Block Explorer
- Bitcoin History
- Bitcoin Forum
- Blockchains from a distributed computing perspective
- Bitcoin's Academic Pedigree
- Bitcoin Forks
- Double Spends, 51% Attacks
- Replay Attacks
- Segregated Witness
- Bitcoin Scalability Problems
- Mega Bitcoin Resources List
- Mastering Bitcoin
- Blockchain: Blueprint for a New Economy
- CryptoAssets: The Innovative Investors Guide to Bitcoin and Beyond
- The Business Blockchain
- Blockchain Revolution
- Ethereum Whitepaper
- Ethereum Yellow Paper
- Ethereum in 25 Minutes
- Intro to Crypto-economics
- Ethereum's Account Model
- Industry Support
- The Ethreum Community Forum
- ERC-20
- The Anatomy of ERC20
- The Anatomy of ERC721
- Ethereum for Web Developers
- Ethereum Wallets
- A Crash Course for Mechanism Design
- Solidity Docs
- Basics of Solidity By Example
- Learn X in Y
- Browser IDE
- BitDegree
- The Hitchhiker's Guide to Smart Contracts
- 11 Best Ethereum Development Tools
- Understanding Ethereum Smart Contract Storage
- Build Your First Blockchain Application in 5 Quick Steps
- CryptoZombies
- Build Your Own Ethereum Token
- Building a Voting System
- Smart Contract Best Practices
- Secure Generation of Randomness
- Ethernaut - Smart Contract Hacking Game
- Hack This Contract Game
- Additional Resources
- Slither: Static Analyzer for Solidity
- Slither: Solidity Static Text Analyzer
- Echidna: Smart Contract Fuzzer
- Mythril: Dynamic Analysis Swiss Army Knife
- End to End Ethereum Tutorial
- Introduction to Ethereum Smart Contract Development
- Ethereum Programming for Web Developers
- Ethereum Petshop
- How to Create Your Own Token in 1 Hour
- How Launch Your Own Production Ready Cryptocurrency
- How to Create Your Own Crowdsale
- Building Battle Tested Contract w/ Open Zeppelin
- Mastering Ethereum
- The Business Blockchain
- Mastering Ethereum
- Introducing Ethereum and Solidity
- Ethereum Development with Go