Ethereum Tutorial: Ethereum & Smart Contracts from Scratch (Udemy.com)
Updated for 2024: Create your own Ethereum system, with smart contracts, a blockchain, cryptocurrency, and more!
Created by: David Joseph Katz
Last updated October 2022
What you will learn
- Updated for 2024: Learn how to build an Ethereum-like decentralized computing platform from an engineer with 5+ years of industry experience.
- How to build Ethereum from scratch.
- The essential elements of the Ethereum decentralized computing platform.
- The mechanics behind Ethereum's cryptocurrency.
- How to create a blockchain, Ethereum style.
How it compares
Against the other 149 rated Udemy courses in Bitcoin on CourseDuck:
- Rating4.6 out of 5higher than 71% of them
- Reviews215#85 of 150 by number of reviews
- Length10.4 hourslonger than 83% of them
- Last updatedOctober 2022earlier than 72% of them
Course Description
The most requested topic for a course I've had so far is to "build a smart contract blockchain and cryptocurrency." And for plenty of reasons:
Smart contracts are the main feature behind Ethereum, which is the second most valuable cryptocurrency.
Learning smart contracts is a natural next step after learning about blockchains. A blockchain is a decentralized ledger. A smart contract blockchain is a decentralized computer.
A smart contract blockchain can support decentralized applications. This opens the door to a wide variety of solutions.
Based on these points and more it would definitely be a valuable learning experience to try building a smart contract blockchain and cryptocurrency like Ethereum.
So it can be quite surprising to discover that existing tutorials are challenging to find. Sure, there's the Ethereum documentation. But this information is better understood when you're pretty knowledgeable about blockchains already. Likewise, other resources you find, like articles and videos, mostly focus on aspects of a completed Ethereum system. They don't take you through the process of completely building a smart contract blockchain and cryptocurrency.
However, it's understandable. A complete system like Ethereum is quite complex. It uses many advanced data structures and technologies. And untangling the interaction between its many components can feel like navigating through a labyrinth.
This is why I made it my mission to create a "Build Ethereum From Scratch" tutorial that focuses on the essential elements. By the end of the tutorial, you should be able to execute smart contracts in a decentralized way.
And with a few months of work, here you have the finished product! Here is the course journey:
Build a smart contract language and an interpreter to execute code
Next, create an ethereum-inspired blockchain, with its own mining implementation, and block structures
Extend the blockchain with a network implementation
Incorporate transactions and accounts. This will set up the Ethereum-like cryptocurrency, and create the concept of a decentralized computer
Come full circle by running smart contracts on the blockchain
By the end of the course, you will have built a decentralized computer platform that resembles many of the key features of Ethereum. In addition, at the end of the course, I'll provide a list that you can use for continued development. That way, the project is truly in your hands - ready to go as far as you want to take it.
Take this course if you want to learn how Ethereum works. Especially take this course if you've been hoping to build your own version of Ethereum. By the end, you'll have a unique item on your resume, or even the foundation for your next startup!
Alright, let's get started coding!
Instructor Details
- 4.6 Rating
215 Reviews
David Joseph Katz
David is a software engineer at Upstart (formerly Zendesk), with a Bachelor of Computer Science from the University of San Francisco.
David has gained valuable experience from the tech industry. By incorporating the best practices he has learned at work, he hopes to create the highest quality learning experiences possible.
Feel free to connect with David! He is always curious about the cool project you're working on. And he loves to discuss ideas on how to build impactful technology.
More courses by David Joseph Katz
React JS Web Development - The Essentials Bootcamp (2025)
4.5 (6,513 Reviews)
Provider: Udemy
Time: 28.7h
$11.99
Docker - Containers, Images, Compose, Kubernetes, and more! (2025)
4.6 (6,222 Reviews)
Provider: Udemy
Time: 23.3h
$74.99
Essentials in JavaScript ES6 - A Fun and Clear Introduction (2018)
4.0 (4,914 Reviews)
Provider: Udemy
Time: 1.9h
$12.99
The Full JavaScript & ES6 Tutorial - (including ES7 & React) (2025)
4.6 (3,948 Reviews)
Provider: Udemy
Time: 5.2h
$13.99
Build a Blockchain and a Cryptocurrency from Scratch (2025)
4.7 (3,613 Reviews)
Provider: Udemy
Time: 14h
$69.99
Build a Blockchain & Cryptocurrency | Full-Stack Edition (2025)
4.5 (2,966 Reviews)
Provider: Udemy
Time: 21.8h
$10.99
More Bitcoin courses
Advanced Solidity: Understanding and Optimizing Gas Costs (2022)
4.9 (632 Reviews)
Provider: Udemy
Time: 2.8h
$84.99
Ethereum Blockchain Developer Bootcamp With Solidity (2025)
4.8 (11,923 Reviews)
Provider: Udemy
Time: 25.9h
$124.99
Build a Blockchain and a Cryptocurrency from Scratch (2025)
4.7 (3,613 Reviews)
Provider: Udemy
Time: 14h
$69.99
Binance App: How to Buy, Sell & Transfer Cryptocurrencies (2025)
4.7 (1,395 Reviews)
Provider: Udemy
Time: 2.2h
$10.99
How to build your own altcoin cryptocurrency mining pool (2024)
4.7 (268 Reviews)
Provider: Udemy
Time: 6.2h
$49.99
Reviews
By VEERAPANDI LAKSHMANAN on 12/19/2024
This session, your code was not work to me. So I'm modified below code, const STOP = 'STOP'; const ADD = 'ADD'; const PUSH = 'PUSH'; class Interpreter { constructor() { this.state = { programCounter: 0, stack: [], code: [], }; } runCode(code) { this.state.code = code; while (this.state.programCounter < this.state.code.length) { const opCode = this.state.code[this.state.programCounter]; switch (opCode) { case STOP: return this.state.stack[this.state.stack.length - 1]; // Gracefully stop execution case PUSH: this.state.programCounter++; const value = this.state.code[this.state.programCounter]; this.state.stack.push(value); break; case ADD: const a = this.state.stack.pop(); const b = this.state.stack.pop(); this.state.stack.push(a + b); break; default: throw new Error(`Unknown opcode: ${opCode}`); } this.state.programCounter++; } return null; // Return null if no STOP opcode is encountered } } const code = [PUSH, 2, PUSH, 3, ADD, STOP]; const interpreter = new Interpreter(); const result = interpreter.runCode(code); console.log(result); // Output: 5
By Root Bang on 11/11/2021
Very polished course, what a teacher at the top of his teaching game, the way he dictates the code allows me to type as a just listen to his word, it makes for a smooth experience. A lot of work and effort must have been put into preparing course. I put amazing because even though it's complex project I had still had fun, and all the credit for this goes to the teacher.
By Sam Brown on 9/24/2021
Clear instructions. good pace as there is lots to get through, but as the explanations are so good, progress is quick
By Mohammad Akef Habbal on 4/7/2021
This course is exactly what I was looking for. What the most interesting about it that all the code is organized in clean and neat way, and the progress is very logical which makes it easy to understand.
By Mike on 5/21/2020
David does a good job of narrating his coding by using proper terms for coding. It's almost a sub-course in how to "read" code. This course goes fast and is very deep. I'm astonished at how much it covers. It appears that the entire Ethereum beige paper is covered. That's just an incredible amount of computer science coming at you at lightning speed. This is a tour-de-force of javascript. I find myself saying, "So that's how X works in Y framework..." In short, even if you are not interested in blockchain, I would recommend this course as a deep dive into some really interesting parts of programming.
By Lucas Bras on 3/8/2020
Great instructor with great courses that is my third course from David, and I still learning new things. This course is very advanced, so I would recommend if you don't know javascript to start with his course "Essentials in JavaScript ES6 - A Fun and Clear Introduction". Then an excellent intro to the blockchain is "Build a Blockchain & Cryptocurrency | Full-Stack Edition" and finally this as a final course. However, if you already know blockchain and node, this is the course for you, definitely the best on Udemy
By Khaled Aboul Hosn on 1/4/2020
This is my fourth course with David and they're all excellent and joy to follow. This course is a beginner-level on how to develop a blockchain topped with crypto and smart contracts, and it served the purpose of getting me interested in pursuing the research on smart contracts to learn and develop real-world implementation. Basically, the smart contract part of the course is oversimplified. I mean I could not think of any real use to it. The one good thing about it, it got me thinking to plan a more advanced version, something that works for a purpose within the context of blockchain and cryptocurrency. In all however, I'm not disappointed, it's still a 5 star introductory course with lots of educational material.
By Eriza Fazli on 1/1/2020
David, just wanted to thank you for the course. For me there's no way better to understand the mechanics of blockchain, ethereum, smart contracts etc. than to actually code them from scratch, and at the moment your course is one of the best, if not the only one, that is available in the market. I followed along in my own environment, and enjoyed every single milestone achieved along the way. Thanks again!!
By Jiri Mracek on 12/14/2019
About 25% through the course. At first I was a bit perplexed why does the author start with writing an interpreter (designs a primitive language). I am being conservative with the rating of 3.5 now, but I like where it's going, fast pace, explains exactly what he's doing and why. Doesn't waste any time 50% through this excellent course. Still explains very well the code written, he's an excellent speaker, obviously knows the subject matter intimately, has a lot of ground to cover, moves at very fast pace.
By Kashish Khullar on 9/22/2019
Before taking this course I also took another course from the same instructor,"Building blockchain and cryptocurrency", and I can say that this one is much in-depth and exciting than the prior. Moreover, this is by far the most comprehensive course on blockchain that I have ever taken. The instructor did a commendable job in explaining each topic clearly and answering all my questions and doubts in QnA section. Ethereum source code is actually very complex and a lot of mathematics is involved in the architecture of Ethereum virtual machine, this course abstracts all the complexity and simplifies it for complete begineers. I would recommend this course to anyone who wants to study ethereum architecture and it's source code.
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 92 / 100











