Course Information
Course Overview
Use Ethereum, Solidity, and Smart Contracts to build production-ready apps based on the blockchain
Smart Contracts? They're here. The Ethereum Blockchain? Covered. Solidity? Yep!
There can be no understating it: Ethereum and Blockchain technology is the most disruptive force in years. Companies cannot hire developers who understand blockchain technologies fast enough, but there are a tiny number of resources published to help you truly understand what blockchains are used for, let alone build apps with them. That's the purpose of this course: to be the best resource online for learning about Ethereum, blockchains, and how to build apps with this new technology.
The development community is still figuring out the best way to use Ethereum in the creation of new and exciting apps. I spent a tremendous amount of time to research and create best practice for interfacing with Ethereum from Javascript. I can't overstate it enough; this course will show you the best and most easily repeatable patterns for creating production-ready apps with Ethereum.
What tools and libraries are used?
The Ethereum tech ecosystem is in constant change. Don't be fooled by other courses that mention how you'll learn a dozen different libraries! Every library that you'll use with Ethereum breaks and is deprecated on a near-weekly basis! Instead, this course will teach you how to assemble your own boilerplate package to develop, compile, and test Smart Contracts. By learning the core technologies, you'll be prepared to adjust to Ethereum no matter how the ecosystem changes.
What is Ethereum?
Ethereum is a cryptocurrency much like Bitcoin, and it has been heralded as Bitcoins successor. Whereas Bitcoin currently has issues scaling with an increasing backlog of transactions, Ethereum is poised to surpass Bitcoin in performance, popularity, and value. Ethereum was created to help developers like you create applications focused around transferring money or value from one party to another.
What is Solidity?
Solidity is a programming language for writing Smart Contracts. Essentially, think of it as a way to control a bank account with code. With Solidity, we can write applications that simulate a crowd funding campaign, a lottery, a loan, or any other type of financial instrument. Don't be intimidated by learning 'another' programming language; Solidity is known to be quite similar to Javascript and exceptionally easy to pick up for anyone who has previous JS experience. This course will give you all the tools you need to master Solidity.
Course Content
- 8 section(s)
- 266 lecture(s)
- Section 1 What is Ethereum?
- Section 2 Smart Contracts with Solidity
- Section 3 Advanced Smart Contracts
- Section 4 Building Interactive Front-Ends
- Section 5 Real Projects with Ethereum
- Section 6 Ethereum Project Infrastructure
- Section 7 Advanced Multi-Page Front-Ends
- Section 8 Appendix: Basic React
What You’ll Learn
- Understand the why engineers would want to create an app with Ethereum, Build compelling blockchain applications using the Ethereum Blockchain, Design, test, and deploy secure Smart Contracts, Learn the true purpose and capabilities of Ethereum and Solidity, Use the latest version of Ethereum development tools (Web3 v1.0), See practical examples to comprehend what the blockchain and mining are
Skills covered in this course
Reviews
-
PPaul Wabuge Kalenda
Stephen Grider is the best at clearly articulating problems and their solutions. 10 stars.
-
TThiago Rego Neves
Until now I've watched 35 videos, and it hasn't started to explain or teach to do a single application in solidity. The course is full of text files trying to explain to do the steps. Intead of that, it would be better to add videos explaining that. The reason for a fork buy a video course is because everything is explained in videos, not in text files.
-
MMigueloresca
Hi, I just completed the Inbox and testing section of the course and wanted to share some feedback regarding version compatibility. I didn’t finish the course, I stopped at this point because I had to do a lot of debugging that was unrelated to the actual course material, which I don’t think was supposed to be part of the learning process. The concepts in the course are excellent and very well explained, but several parts of the implementation no longer work out of the box with current package versions. I followed the tutorial exactly, yet encountered multiple errors that were not related to misunderstanding the material, but rather due to version differences. First, the course uses interface from the compile output and parses it using JSON.parse(interface). However, modern Solidity compilation outputs abi directly instead of interface as a JSON string. Because of this, interface is undefined in a modern setup, causing the error “SyntaxError: 'undefined' is not valid JSON.” The current standard approach is to export { abi, bytecode } and pass abi directly to new web3.eth.Contract(abi) without JSON parsing. Second, modern Solidity emits the PUSH0 opcode (EIP-3855), which requires the Shanghai hardfork. Ganache does not always default to this hardfork, which caused deployment to fail with “invalid opcode” and “code couldn’t be stored,” even though gas was sufficient. This issue can be resolved by explicitly setting ganache.provider({ hardfork: 'shanghai' }), but this is not mentioned in the course. Third, modern Web3 requires the contract bytecode to be prefixed with 0x during deployment. Without adding '0x' + bytecode, deployment can fail silently. This requirement is also not clarified in the lecture. Fourth, running the project on Node v24 caused Mocha dependency errors (“Cannot find module 'ms'”), which were resolved only by downgrading to Node 20 LTS. The course does not specify a recommended Node version, which can cause unnecessary confusion for students using the latest version. Finally, Web3 v4 behaves slightly differently from older versions used when the course was originally recorded. ABI handling and deployment patterns have changed subtly, leading to unexpected errors if students are using the latest packages. Unfortunately, due to the amount of debugging required that was unrelated to the actual course concepts, I decided to stop the course. It ended up taking significantly more time than expected because I had to resolve environment and version issues instead of focusing on learning Solidity and smart contract development. I believe that with updated version guidance or a short compatibility section, this course would still be extremely valuable. Thank you for the strong conceptual teaching, and I hope this feedback helps improve the experience for future students.
-
CChristos Pampidis
I just became excited about the new module where you explain the kickstarter problem! As a rookie in this technology i finally understood the power of the technology. Maybe you could make a small module/video in the very beginning explaining a few examples of problems and solutions with this technology (not sure if you did). That would keep me much more engaged in sections 2,3,4. I still continued and i am happy about it. Thank you anyway for the good work and the knowledge you share!