
Learn solidity to build on a booming blockchain ecosystem, leverage smart contracts on the EVM, and unlock opportunities in DeFi across multiple networks.
Clarify prerequisites for learning solidity, including basic programming concepts and blockchain familiarity, and point learners to YouTube videos and articles about the Blog Sanitorium DFI Decentralized Exchange.
Explore the fundamentals of blockchain programming, including Bitcoin vs Ethereum, externally owned accounts, and smart contracts, with focus on Solidity and the Ethereum Virtual Machine.
Learn how to write, compile to bytecode, deploy smart contracts, and interact via ABI and API to call functions and update contract state on the blockchain.
Explore Remix IDE basics to write, compile, and deploy a simple Solidity contract in a browser, then interact with store, retrieve, and view functions and learn contract structure.
Explore how gas fuels the Ethereum network, how to calculate gas costs, including gas spent, gas price, and refunds, and why gas limits prevent excessive computation while rewarding miners.
Write and deploy your first Solidity smart contract, declaring a count state variable, defining get, add, and subtract functions, and exploring constructor initialization and public getters.
Explore comments, variables and constants in Solidity, including immutable and constant distinctions, various types like string, boolean, unsigned integers, addresses, compile-time constants, and state versus local scope.
Learn how to use structs in solidity to model related data, create player records with a name and score, and read, update, and delete them via external and public access.
Explore mappings in solidity by defining key-value data structures, nesting maps, and performing create, read, update, and delete operations with public state and external or view functions.
Explore how Solidity enums model constants with names, such as shirt sizes small, medium, large, set a default in the constructor, expose a getter, and pass enum values to functions.
Explore Solidity arrays, including storage, memory, and call data locations. Compare fixed and dynamic arrays, perform create, read, update, delete, and iteration, and optimize gas with memory arrays.
Explore Solidity types, including value types vs reference types, and how storage, memory, and function parameters affect state changes, with hands-on examples of unsigned integers and arrays.
Learn how solidity handles complex types with memory, storage, and call data, comparing internal and external calls, and choosing memory versus storage for gas-efficient variable handling.
Explore how Solidity functions declare typed parameters, visibility modifiers (public, private, external, internal), restriction modifiers (pure, view, payable), and data locations (memory, storage, call data), and how returns statements work.
Learn how a parking lot smart contract demonstrates practical use of Solidity: owner, vacancy status, payable park function, modifiers, and events to track occupancy and transfers.
Learn Solidity inheritance by implementing an ownable base contract and a parking lot child contract, using super constructors and owner-only modifiers to keep code dry.
Learn to modularize Solidity by moving contracts into separate files with pragma directives and licenses, importing an ownable contract into a child parking lot contract, then compile and deploy.
Learn to call an external contract's function from within a contract by creating a callable contract, obtaining its address, creating an instance, and invoking the external view function.
Define a contract interface with function signatures, including external view returns, to represent another contract. Call external functions by address using the interface, without implementing the full contract.
Explore the factory pattern in Solidity by building a parking lot contract that deploys and manages multiple parking spot contracts, storing spot IDs to addresses with a decentralized approach.
Explore Solidity's fallback and receive functions, distinguish between function and fallback behavior, and learn to use low-level calls for ether transfers and proxy patterns in upgradable contracts.
Explore libraries in Solidity, using delegate calls to run library code in the calling contract's context, and learn the using syntax to call library functions safely.
Learn how to use external libraries in Solidity by integrating OpenZeppelin's SafeMath to prevent overflow in unsigned integers, replacing custom libraries, importing and deploying updated contracts.
Solidity 0.8 reverts on arithmetic underflow and overflow by default, replacing silent failure with safer behavior; the lecture shows using the unchecked wrapper to preserve functionality and reviews safe math.
discover ABI coder v2 in solidity, enabling passing and returning structs in functions, with API decoder support and explicit pragma controls for v1 or v2.
Explore how exponentiation changes from left to right associativity across Solidity versions, showing how altering pragma directives affects compile and deployment results.
Learn how Solidity 0.8 requires explicit conversion of addresses to payable for transaction origin and message sender to enable transfers and token reception.
Explore minor Solidity updates: remove the bite alias of bytes1, switch to a single gas and value pair, and remove global log variables, with inline assembly as needed.
Developing smart contracts with Solidity begins with basics, emphasizes gas optimization and secure code on the EVM, and highlights memory constraints and the high stakes of hacks.
April 2021 update: A section on breaking changes for solidity version 0.8 added
*********************************************************************************************************************
Why learn Solidity?
Blockchain is one of the most disruptive technologies of this decade. It is poised to drastically change many industries in the coming years. Institutional money is pouring in this space and many believe that cryptocurrency value and market share dynamics will be "power law distributed" meaning that a few cryptocurrencies will capture the majority of value. There is no doubt that Bitcoin and Ethereum will be part of that few.
While bitcoin introduced trustless distributed ledger to the world, ethereum introduced "distributed computational layer" in conjunction to the distributed ledger opening up many possibilities. This brought about a revolution in the space, which is spearheaded by Ethereum. This extremely fast growing industry needs a lot of developers to support the growing ecosystem. There is a new project almost every week. This process only accelerated in 2020 with the emergence of DEFI - Decentralized Finance. With this abundance of projects and shortage of developers, it is not uncommon for quality developers to command high six figure salaries.
This is a golden opportunity to break into the space and jumpstart a profitable career as a blockchain developer on Ethereum network and beyond. Solidity is the most popular language used for developing on Ethereum. Therefore, in this course we will be focusing on smart contract development using solidity.
With this class, you take the first step of becoming a competent smart contract engineer.
Who is this course for?
Beginners who want to learn about programming on ethereum blockchain.
Experienced developers who want to learn about developing smart contracts.
Traders and Investors who want to learn more about the technology that powers the product they invest in.
Blockchain enthusiasts who wants to learn how things work behind the scene.
What will be covered in this class?
Learn how Ethereum is different from Bitcoin, and what Ethereum has introduced to the blockchain ecosystem.
Understand the basics of Ethereum Virtual Machine (EVM) and how decentralization can potentially disrupt various industries.
Understand the basic components of the Ethereum Blockchain, such as gas, transaction and consensus.
Learn the basic structure of a smart contract, and use solidity to write your first smart contract.
Take a deeper dive into solidity to learn more about the language, and be able to write more complex smart contracts.
Learn code composability in solidity: inheritence, interfaces and fallback functions.
Use solidity to develop practical smart contracts that can be used to control a "parking lot" in a hypothetical smart city.