An opinionated learning path for getting into speed with Blockchain (specially Ethereum). This is a work in progress, please open an issue or send a pull request to help improving it.
Besides a programming background, this path assumes that the reader is at least a little comfortable with:
- Public key cryptography
- Digital signatures
- Cryptographic hashing
- Read How the Bitcoin protocol actually works. (Est. time: 45 minutes)
- Watch this video (lighter than the previous article but useful to solidify your knowledge). (Est. time: 26 minutes)
- Read How does Ethereum work, anyway? (Est. time: 38 minutes)
- Read this article on smart contracts development. (Est. time: 15 minutes)
- Read the Truffle Documentation
- Read the Web3 Documentation
- Book Mastering Ethereum
- Learn Ethereum development by making a Zombie Game (Est. time: 8 hs)
- Read and make and example: Pet shop tutorial
- Time-locked Wallets: An Introduction to Ethereum Smart Contracts
- The Ultimate ENS and ĐApp Tutorial
- Ultimate Introduction to Ethereum Ðapp Development (Est. time: 4 hs)
- Do this course Ethereum and Solidity: The Complete Developer's Guide (Est. time: 24 hs)
- Free tutorial Learning Solidity
- Introduction to Smart Contract Development with Solidity (Est. time: 2 hs)
- Blockchain Oracles, Explained (Est. time: 4 minutes)
- ABI (Est. time: 15 minutes)
- Keccak256 (Est. time: 15 minutes)
- Random numbers (Est. time: 5 minutes)
- Velocity of Tokens (Est. time: 9 minutes)
- Gas (Est. time: 5 minutes)
- Consensys best practices - This document provides a baseline knowledge of security considerations for intermediate Solidity programmers. It is maintained by ConsenSys Diligence, and the broader Ethereum community.
- Solidity Patterns - A compilation of patterns and best practices.
- dapp-bin - Ethereum repo providing implementations for many common data structures and utilities in Solidity, Serpent and LLL.
- Solidity Collections - Collections of code snippets and utility libraries.
- OpenZeppelin - Framework to build secure smart contracts.
- Solidity By Example - Contract examples from the official docs.
List of tools curated by Protofire team to better apply best practices to the Protocol and DApps development projects.
- SmartCheck - Online tool for checking smart contracts for vulnerabilities and bad practices.
- solhint - Solidity linter that provides security, style guide and best practice rules for smart contract validation.
- solium - Linter to identify and fix style & security issues in Solidity smart contracts.
- sol-tester - Utilities for building, linking and testing contracts using go-ethereum and the simulated chain.
- solidity-coverage - Code coverage tool.
TODO Add some resource to learn the differences between the bitcoin and the ethereum blockchains.