General Learning tools
General
Medium
Module 1: Review of Blockchain Technology
Consensus Mechanisms
Mining in Ethereum
Public and Private Blockchains
Module 2: Blockchain Primitives
Cryptographic Hash Functions
Merkle Trees
Blockchain Structure
Smart Contracts
Nodes
Blockchain Forks
Module 3: Ethereum Structure
Accounts
Transactions
Gas and Fees
Ethereum Structure
Module 4: Traditional and Decentralized Application Development
Traditional and Decentralized App Development
Development Environment Setup Options
Key Developer Tools
Module 5: Development Frameworks and Environment
Development Workflow: Ganache CLI
Install Truffle
Initializing Truffle
Module 6: Solidity Fundamentals
Data Types and Variables
Functions
Storage and Memory
Contract Structure
Reading Smart Contracts
Smart Contract ABI
Events and Logs
Factory Contracts
Module 7: Writing Smart Contracts
Introductory Smart Contracts
Inter-Contract Execution
Inheritance
Libraries and the Ethereum Package Manager
Smart Contract System Design
Debugging Truffle Tests
Module 8: Ethereum and the End User
Introduction to Web 3.0
Building Truffle for the Web
Integrating with React
Generating Ethereum Accounts in Javascript
Module 9: Smart Contract Pitfalls, Testing and Debugging
Writing Tests
Smart Contract Best Practices
Exploits and Dangers
Optimizing Gas
Safety Checklist
Security Analysis Tools
Module 10: Ethereum Advanced Topics
Design Patterns
Upgradable Contracts
Oracles
uPort
The Ethereum Name Service
IPFS
Formal Verification
Module 11: Further
LLL
Vyper
Ethereum Improvement Proposals