Ethereum and Solidity: The Complete Developer's Guide

Use Ethereum, Solidity, and Smart Contracts to build production-ready apps based on the blockchain

4.58 (26795 reviews)
Udemy
platform
English
language
Web Development
category
instructor
Ethereum and Solidity: The Complete Developer's Guide
145,880
students
24 hours
content
Apr 2024
last update
$109.99
regular price

What you will 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

Why take this course?

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.


Content

What is Ethereum?

Introduction
Link to Completed Code on Github
A Short History Lesson
Link to Original Bitcoin White Paper
What is Ethereum?
Interfacing with Ethereum Networks
Metamask Setup
Ethereum Accounts
Receiving Ether
What's a Transaction?
Why'd We Wait?
A Quick Note
Basic Blockchains
Block Time
Smart Contracts
The Solidity Programming Language
Our First Contract
Quick Note - Remix Deprecation Warnings
Contract Structure
Function Declarations
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
Getting More Ether

Smart Contracts with Solidity

Don't Skip! Node JS Versioning
Contract Deployment
Boilerplate Requirements
Project File Walkthrough
Syntax Highlighters
Solidity "AssertionError [ERR_ASSERTION]: Invalid callback specified" errors
Compiling Solidity
The Compile Script
Testing Architecture
Web3 Install Issues on Windows
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
Web3 Version Fix
Verifying the Initial Message
Testing Message Updates
Deployment with Infura
Infura Signup
Wallet Provider Setup
Updated Deploy Code
Deployment to Rinkeby
Observing Deployment on Etherscan
Deployed Contracts in Remix
Project Review

Advanced Smart Contracts

The Lottery Contract
Lottery Design
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
New Test Setup
Test Project Updates
Test Helper Review
Asserting Deployment
Entering the Lottery
Asserting Multiple Players
Try-Catch Assertions
Testing Function Modifiers
End to End Test

Building Interactive Front-Ends

Ethereum App Architecture
Application Overview
Getting Started with Create-React-App
Multiple Web3 Instances
Web3 Setup
Updated Deploy Code
Deploying the Lottery Contract
Local Contract Instances
Rendering Contract Data
Instance Properties
Accessing More Properties
The 'Enter' Form
Form Setup
Entering the Lottery
Picking a Winner
Project Review

Real Projects with Ethereum

Solving Real Problems with Contracts
Fixing Kickstarter's Issues
Campaign Contract Design
Campaign Constructor
Contributing to the Campaign
A Quick Test
The Request Struct
More on Function Modifiers
Creating Struct Instances
Instance Creation Syntax
Storage and Memory
More on Storage vs Memory
Voting System Requirements
The Wrong Voting System
Issues with Arrays
Mappings vs Arrays
Basics of Mappings
Refactoring to Mappings
Refactoring Request Stucts
More on Struct Initialization
Approving a Request
Testing Request Approvals
Finalizing a Request
Last Remix Test
Thinking about Deployment
Solution to Deployment
Adding a Campaign Factory
Testing the Factory

Ethereum Project Infrastructure

Project Setup
Directory Structure
A Better Compile Script
Single Run Compilation
More on Compile
Test File Setup
Creating Campaign Instances
Testing Warmup
Accessing Mappings
Requiring Minimum Contributinos
Array Getters
One End to End Test
Deployment
Updated Deploy Code
Refactoring Deployment

Advanced Multi-Page Front-Ends

App Mockups
CRA vs Next
Next's Pages Architecture
Basics of Next Routing
Root Routes
CampaignFactory Instance
Getting a Test Campaign
Fetching Deployed Campaigns
Why Next.js, Anyways?
Server vs Client Web3 Instances
GetInitialProps Function
Semantic UI React
Card Group Setup
Rendering Card Groups
Adding CSS
Adding a Button
The Need for a Layout
The Layout Component
Assembling a Header
Constraining Content Width
Two Column Layout
Nested Routing
Final CSS Fix
Form Creation
Input Change Handlers
Form Submittal
Testing Submittal
Form Error Handling
Button Spinners
Routing Issues
Next Routes Setup
Automatic Navigation
Header Navigation
Routing to Campaigns
Restarting the Server
Route Mappings
Planning CampaignShow
Redeploying CampaignFactory
CampaignShow's GetInitialProps
Accessing a Campaign
Summary Translation Layer
Custom Card Groups
One Card Per Property
The Contribute Form
Grid Layouts
Form State
Communicating the Campaign Address
Making a Contribution
Refreshing Contract Data
Spinners and Error Handlers
Listing Requests
Grids vs Columns
More Routing!
Request Creation Form
Creating a Request
Form Polish
Creating a Request
Requests One by One
Fancy Javascript
Small Typo!
Rendering a Table
Request Row Component
Request Row Content
Approvers Count Cell
Approving a Request
Finalizing Requests
Testing Finalization
Row Status Styling
Finishing Requests Index
Wrapup

Appendix: Basic React

A Note on This Section
Purpose of Boilerplate Projects
Environment Setup
Project Setup
JSX
More on JSX
ES6 Import Statements
ReactDOM vs React
Component Instances
Render Targets
Component Structure
Youtube Search API Signup
Export Statements
Class Based Components
Handling User Events
Introduction to State
State Continued
Controlled Components
Breather and Review
Youtube Search Response
Refactoring Functional Components to Class Components
Props
Building Lists with Map
List Item Keys
Video List Items
Detail Component and Template Strings
Handling Null Props
Video Selection
Styling with CSS
Searching for Videos
Throttling Search Term Input
React Wrapup
Vue Flavored Version

Extras

Bonus!

Screenshots

Ethereum and Solidity: The Complete Developer's Guide - Screenshot_01Ethereum and Solidity: The Complete Developer's Guide - Screenshot_02Ethereum and Solidity: The Complete Developer's Guide - Screenshot_03Ethereum and Solidity: The Complete Developer's Guide - Screenshot_04

Our review

Based on the feedback provided, here's a summary of the sentiments and suggestions regarding Stephen Grider's Ethereum and Solidity Full Stack Development Course on Udemy: **Positives:** 1. **Comprehensive Content:** The course is praised for its thorough coverage of Ethereum development topics, providing both theoretical and practical knowledge. 2. **Teaching Style:** Stephen Grider's teaching style is often found to be clear, informative, and engaging, with many learners appreciating his explanations. 3. **Hands-On Learning:** The course encourages active learning by having students write code, which helps in understanding the concepts better. 4. **Overall Experience:** Many learners report a positive overall experience, feeling that they have gained solid working knowledge and real-world experience. 5. **Supporting Resources:** Learners appreciate the additional resources such as the Q&A section where issues are often addressed. **Areas for Improvement:** 1. **Updates Needed:** A common complaint is that the course material is outdated, particularly with Solidity and Ethereum updates. There is a strong request for the course to be updated to reflect recent changes in the technology, such as the move from Proof of Work (PoW) to Proof of Stake (PoS). 2. **Version Compatibility:** Some learners have encountered issues due to compatibility with the versions used in the course and the ones currently in use. 3. **Teaching of React Components:** There is a desire for the course to use more modern React techniques, specifically converting class components to functional components, which are now more commonly used in React development. 4. **Pacing and Structure:** Some feedback suggests that the course could be improved by better structuring the content, possibly starting with more basic topics before diving into complex ones. 5. **Instructor Responsiveness:** A few learners have mentioned that reaching out to the instructor for assistance has not resulted in timely responses, which can hinder progress through the course. 6. **Accessibility of Content:** There is a need for clear indications of when the course content was last updated and possibly warnings about the rapid evolution of blockchain technology. 7. **Code Examples:** Some learners have mentioned that the code examples may need updates to reflect current best practices. **Additional Feedback:** - **Prerequisites:** Learners are advised to have a basic understanding of JavaScript, ReactJS, HTML, and CSS before starting the course. - **Community Support:** The community support within the course's discussion forums is generally positive, with learners finding answers to their questions without direct instructor interaction. - **Completion Rate:** Some learners report reaching a point where they cannot progress without updating certain parts of their code, indicating that the course should be used as a starting point and supplemented with current practices. **Overall Recommendation:** The course is highly regarded for its educational value, but potential students should be aware that the technology covered is evolving rapidly. It's recommended to complement this course with up-to-date resources and possibly reach out to the community or other learning platforms for the latest information and practices in Solidity and Ethereum development.

Coupons

DateDiscountStatus
10/23/202178% OFF
expired
3/31/202278% OFF
expired
11/23/202279% OFF
expired

Charts

Price

Ethereum and Solidity: The Complete Developer's Guide - Price chart

Rating

Ethereum and Solidity: The Complete Developer's Guide - Ratings chart

Enrollment distribution

Ethereum and Solidity: The Complete Developer's Guide - Distribution chart
1466612
udemy ID
12/12/2017
course created date
6/26/2019
course indexed date
Bot
course submited by