We may earn an affiliate commission when you visit our partners.
Course image
Stephen Grider

Smart Contracts? They're here. The Ethereum Blockchain? Covered. Solidity? Yep.

Read more

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.

Enroll now

What's inside

Learning objectives

  • 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

Syllabus

What is Ethereum?
Introduction
Course Resources
A Short History Lesson
Read more
Link to Original Bitcoin White Paper
Interfacing with Ethereum Networks
Metamask Setup and Configuration
Ethereum Accounts
Getting Test Ether to Use in the Course
What's a Transaction?
Why'd We Wait?
A Quick Note About the Next Lecture
Basic Blockchains
Block Time
Smart Contracts
The Solidity Programming Language
Updated Remix Instructions for new UI - Do Not Skip
Our First Contract
Contract Structure
Function Declarations
Deploying Contract in New Remix UI
Testing with Remix
Redeploying Contracts
Behind the Scenes of Deployment
More on Running Functions Than You Want to Know
Wei vs Ether
Gas and Transactions
Mnemonic Phrases
We Need More Test Ether!
Obtaining More Test Ether from Recommended Faucet
Smart Contracts with Solidity
Installing Node.js, npm and Git
Contract Deployment
Completed Boilerplate
Project Requirements
Project File Walkthrough
Compiling Solidity
Invalid asm.js or Constructor Deprecation Warning
The Compile Script
Testing Architecture
Breaking Change - Web3 v4 and Ganache
Installing Modules
Web3 Versioning
Web3 Providers
Testing with Mocha
Mocha Structure
Fetching Accounts from Ganache
Refactor to Async/Await
Deployment with Web3
Deployed Inbox Overview
Asserting Deployment
Verifying the Initial Message
Testing Message Updates
Deployment with Infura
Infura Signup
Super Important Note about Seed / Recovery Phrase Security
Wallet Provider Setup
Deployment to Testnet
Observing Deployment on Etherscan
Remix Permissions and Metamask
Deployed Contracts in Remix
Project Review
Updating Your Inbox Project to Solc v0.8.9
Advanced Smart Contracts
The Lottery Contract
Lottery Design
Reminder on Updated Remix UI
Basic Solidity Types
Starting the Lottery Contract
The Message Global Variable
Overview of Arrays
Overview of Mappings and Structs
Big Solidity Gotcha
Entering the Lottery
Validation with Require Statements
The Remix Debugger
Pseudo Random Number Generator
Selecting a Winner
Sending Ether from Contracts
Resetting Contract State
Requiring Managers
Function Modifiers
Returning Players Array
Contract Review
Completed Boilerplate - Do Not Skip
New Test Setup
Test Project Updates
Web3 v4 and Ganache Breaking Change Reminder
Test Helper Review
Asserting Multiple Players
Try-Catch Assertions
Testing Function Modifiers
End to End Test
Building Interactive Front-Ends
Ethereum App Architecture
Boilerplate and React App Updates - Do Not Skip
Application Overview

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Covers the essential components of blockchain technology, such as Ethereum and Solidity, making it suitable for those new to the field
Provides practical examples and exercises to enhance understanding of blockchain concepts and Solidity programming
Emphasizes the development of production-ready apps using Ethereum, equipping learners with practical skills
Taught by Stephen Grider, an experienced instructor known for his accessible teaching style
Incorporates the latest version of Ethereum development tools and best practices, ensuring relevance to current industry standards
Requires learners to have a basic understanding of JavaScript, which may be a barrier for complete beginners

Save this course

Save Ethereum and Solidity: The Complete Developer's Guide to your list so you can find it easily later:
Save

Reviews summary

Solid ethereum foundations

Learners say that this course provides a very solid foundation in Ethereum and Solidity with engaging assignments. The instructor is well received by students. However, students would like to see more up-to-date course material.
Course assignments are engaging.
Instructor is well received.
"the instructor is very pedagogic"
Course uses outdated material.
"Some things are outdated and problems appear which need to be solved in ways not presented in the course material."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Ethereum and Solidity: The Complete Developer's Guide with these activities:
Review JavaScript fundamentals before starting the course
Ensure a strong foundation by refreshing your knowledge of JavaScript, the core programming language for interacting with Ethereum.
Browse courses on JavaScript Fundamentals
Show steps
  • Go through online tutorials or resources.
  • Practice writing basic JavaScript code.
  • Review fundamental JavaScript concepts.
Join a Solidity study group
Enhance your understanding by collaborating with peers, discussing concepts, and sharing knowledge.
Browse courses on Solidity
Show steps
  • Find or create a study group with fellow Solidity learners.
  • Set regular meeting times and establish a discussion agenda.
  • Take turns presenting topics, sharing your understanding, and engaging in discussions.
  • Collaborate on projects and assignments to reinforce your learning.
Read Mastering Ethereum by Andreas M. Antonopoulos and Gavin Wood
Gain a comprehensive understanding of Ethereum and its underlying concepts by reading this authoritative book.
Show steps
  • Obtain a copy of the book.
  • Read the book thoroughly, taking notes and highlighting key concepts.
  • Discuss the book's content with fellow learners or an expert.
  • Apply the knowledge gained to your Solidity projects or assignments.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Complete interactive Solidity drills
Enhance your understanding of Solidity syntax and concepts by completing interactive coding exercises.
Browse courses on Solidity
Show steps
  • Access online Solidity playgrounds or interactive coding environments.
  • Start practicing by writing basic Solidity code snippets.
  • Challenge yourself with more complex code exercises.
  • Review and refine your solutions to improve your understanding.
Build a basic voting system using Solidity
Apply your Solidity skills to a practical use case by developing a simple voting system using Solidity.
Browse courses on Solidity
Show steps
  • Understand the requirements and design of a voting system.
  • Write Solidity code to implement the voting system's logic.
  • Test and deploy your voting system on a blockchain network.
  • Evaluate the results and make improvements to your system.
Contribute to open-source Solidity projects
Expand your practical experience by collaborating on real-world Solidity projects.
Browse courses on Solidity
Show steps
  • Identify open-source Solidity projects that align with your interests.
  • Review the project's documentation and codebase.
  • Identify areas where you can contribute.
  • Submit your contributions to the project's repository.
Develop a Solidity tutorial for beginners
Solidify your knowledge by creating a tutorial that explains Solidity fundamentals in a clear and concise manner.
Browse courses on Solidity
Show steps
  • Research and gather information on Solidity basics.
  • Plan the structure and content of your tutorial.
  • Write the tutorial, ensuring it's easy to follow and understand.
  • Share your tutorial online or with fellow learners.

Career center

Learners who complete Ethereum and Solidity: The Complete Developer's Guide will develop knowledge and skills that may be useful to these careers:
Smart Contract Engineer
Smart Contract Engineers are responsible for building, testing, and deploying smart contracts on the blockchain. This course will provide you with a strong foundation in Ethereum, Solidity, and Smart Contract development, which will make you a highly sought-after candidate for this role.
Blockchain Developer
Blockchain Developers are in very high demand and are tasked with creating and maintaining blockchain applications. By taking this course, you will gain a deep understanding of the Ethereum Blockchain and Solidity. This course will help you with designing, testing, and deploying secure Smart Contracts.
Cryptocurrency Developer
Cryptocurrency Developers build and maintain cryptocurrencies. This course will provide you with a comprehensive understanding of the Ethereum Blockchain and Solidity. This knowledge will be essential for developing secure and scalable cryptocurrencies.
Decentralized Application Developer
Decentralized Application Developers build and maintain applications that do not rely on a central server. This course will teach you how to use the Ethereum Blockchain and Solidity to develop decentralized applications that are secure and reliable.
Blockchain Architect
Blockchain Architects design and develop blockchain solutions for businesses. This course will help you with understanding the fundamentals of blockchain technology, as well as the Ethereum Blockchain and Solidity. This knowledge will be invaluable in designing and developing scalable and secure blockchain solutions.
Blockchain Consultant
Blockchain Consultants advise businesses on how to implement and use blockchain technology. This course will give you a deep understanding of the Ethereum Blockchain and Solidity. This knowledge will be valuable in helping businesses understand the benefits and challenges of blockchain technology.
Software Engineer
Software Engineers design, develop, and maintain software applications. This course will help you build a foundation in blockchain technology, Ethereum, and Solidity. This knowledge will make you a more well-rounded Software Engineer and will open up new opportunities for you in the field.
Financial Analyst
Financial Analysts use data to make recommendations about investments. This course will help you build a foundation in blockchain technology, Ethereum, and Solidity. This knowledge will give you a better understanding of the financial implications of blockchain technology and will help you make more informed investment decisions.
Data Scientist
Data Scientists use data to solve problems and make predictions. This course will help you build a foundation in blockchain technology, Ethereum, and Solidity. This knowledge will allow you to explore new applications of data science, such as analyzing blockchain data to identify trends and patterns.
Product Manager
Product Managers are responsible for the development and launch of new products. This course will help you build a foundation in blockchain technology, Ethereum, and Solidity. This knowledge will give you a better understanding of the potential applications of blockchain technology and will help you develop more innovative products.
Project Manager
Project Managers plan and execute projects. This course will help you build a foundation in blockchain technology, Ethereum, and Solidity. This knowledge will give you a better understanding of the challenges and opportunities of blockchain projects and will help you manage them more effectively.
Business Analyst
Business Analysts analyze business processes and identify opportunities for improvement. This course will help you build a foundation in blockchain technology, Ethereum, and Solidity. This knowledge will give you a better understanding of the potential applications of blockchain technology and will help you identify opportunities for businesses to improve their operations.
Systems Analyst
Systems Analysts design and implement computer systems. This course will help you build a foundation in blockchain technology, Ethereum, and Solidity. This knowledge will give you a better understanding of the potential applications of blockchain technology and will help you design more efficient and effective systems.
Information Security Analyst
Information Security Analysts protect computer systems and networks from security breaches. This course will help you build a foundation in blockchain technology, Ethereum, and Solidity. This knowledge will give you a better understanding of the security challenges of blockchain technology and will help you develop more secure systems.
Database Administrator
Database Administrators manage and maintain databases. This course will help you build a foundation in blockchain technology, Ethereum, and Solidity. This knowledge will give you a better understanding of the potential applications of blockchain technology and will help you manage more secure and efficient databases.

Reading list

We've selected nine books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Ethereum and Solidity: The Complete Developer's Guide.
Provides a comprehensive overview of Ethereum, smart contracts, and DApps. It valuable resource for anyone who wants to learn more about the technical details of Ethereum.
Collection of essays from some of the leading experts in the Ethereum community. It covers a wide range of topics, from the basics of Ethereum to advanced concepts such as smart contract security.
Provides a deep dive into the technical aspects of blockchain technology, including smart contracts. It valuable resource for anyone who wants to gain a deeper understanding of how blockchain works.
Provides a comprehensive overview of cryptoassets, including Bitcoin and Ethereum. It valuable resource for anyone who wants to learn more about the investment potential of cryptoassets.
Explores the potential of blockchain technology for businesses. It covers a wide range of topics, from the basics of blockchain to its potential applications in various industries.
Explores the potential of blockchain technology to revolutionize the financial industry. It covers a wide range of topics, from the basics of blockchain to its potential applications in various areas of finance.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Ethereum and Solidity: The Complete Developer's Guide.
Advanced Smart Contract Development
Most relevant
Smart Contracts with Solidity: Create an Ethereum contract
Most relevant
Security and Auditing in Ethereum
Most relevant
Developing Applications on Ethereum Blockchain
Most relevant
Introduction to Ethereum Blockchain
Most relevant
Blockchains, Tokens, and The Decentralized Future
Most relevant
Solidity for Beginners: Write and Test Smart Contracts
Most relevant
Ethereum Tutorial: Ethereum & Smart Contracts from Scratch
Most relevant
Blockchain Basics
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser