We may earn an affiliate commission when you visit our partners.
Course image
Udemy logo

Getting Started with Web3 Development

Sebastien Arbogast and Said Eloudrhiri

February 2018 Update

We released the first version of this course in September 2017. Back then, the latest version of Truffle was version 3, and the best Ethereum node emulator was testrpc, on the command line.

Read more

February 2018 Update

We released the first version of this course in September 2017. Back then, the latest version of Truffle was version 3, and the best Ethereum node emulator was testrpc, on the command line.

Then, in November 2017, the Truffle team released both Truffle 4 and a new user interface for testrpc called Ganache. Those tools had a big impact on the development lifecycle, so we took this opportunity to completely rewrite and re-shoot the practical part of this course.

We also took this opportunity to integrate most of the comments and feedbacks we got in the Q&A section of this course. So all the details you needed to troubleshoot issues are now part of the content.

This results in a consequent update with quite a few improvements:

  • Full Truffle 4 coverage, including Truffle debug and Truffle develop
  • Full Ganache coverage
  • MetaMask workarounds, tips and tricks
  • All the content has been tested on MacOS, Linux and Windows (PowerShell)
  • Code is not copy-pasted anymore, we type everything live to make it easier to follow along

Note that the old content will remain online for a few weeks, and then we will unpublish them so that students don't need to watch all the old content to complete the course and get the Udemy certificate.

If you notice any issue, bug, outdated content, missing link or resource, please let us know in the Q&A section of this course.

Welcome to "Become a Blockchain Developer with Ethereum and Solidity".

This course is a complete introduction to decentralized application (Dapp) development on the Ethereum blockchain using the Solidity language and the Truffle build framework.

No need to know anything about the blockchain, you should just have some basic software development experience. Whether you have already written some code for backend, web or mobile applications, it should be enough to become a blockchain developer thanks to this course.

The blockchain is all the rage these days, and there is a lot of theoretical or anticipative talk around it, but this course will help you get your hands dirty with actual code in order to build your first decentralized application. This is the kind of skill that can get you an actual job as a blockchain developer, something that is in skyrocketing demand right now.

Have you ever looked back on the nineties, thinking you would have loved to be a part of the web revolution. Well, stop dreaming: the blockchain is here and it promises to be even bigger than the web or even the mobile revolution.

What we cover

  • We briefly cover the philosophy of the blockchain, both as a crypto-currency system and as a development platform
  • Then we will explain how blockchains work, what are their main components and how its ecosystem is structured
  • After that we quickly go over the main cryptographic tools you need to understand
  • We continue with a description of the perfect development environment, including tools that are used by most professional blockchain developers
  • And the biggest part of the course is dedicated to guiding you through the iterative creation, development, testing and deployment of the ChainList decentralized application

The tools we use

  • Ethereum of course
  • The Metamask Chrome extension
  • The Solidity smart contract language
  • The Truffle build and test framework (Truffle 4)
  • The Ganache Ethereum node emulator
  • Github Pages
  • Atom (text editor)
  • The Rinkeby test network

We deliberately don't reinvent the wheel or develop our own build tools because it didn't seem very pragmatic to do that. That's why we demonstrate the use of development tools like Truffle and Ganache that offer a lot of very powerful features, even though they evolve very often.

Most of the videos were shot on a Mac, but we give detailed instructions on how to set up your environment on Linux and Windows, and all the other lessons have been tested and adapted with a few OS-specific instructions.

Enroll now

What's inside

Learning objectives

  • Understand the basic philosophy behind the blockchain and distributed/decentralized applications
  • The basics of how a blockchain generally works, just enough to be able to use it as a development platform
  • Develop a web3 app, create a project, deploy it in production, write smart contracts, unit test them, and create a user interface for them
  • How to combine the right tools to put together a consistent and real world pragmatic development environment
  • The fundamentals of the solidity smart contract language
  • How to use the truffle build and testing framework (covers truffle 4)
  • How to deploy a decentralized app to various ethereum instances (testrpc, private chain, test chain, main net)
  • How to unit test smart contracts

Syllabus

Commencez ici
Introduction
The stakes and perspectives of decentralized and distributed applications should be completely clear to you and you should be excited to get your hands dirty.
Read more
How Do You Represent Value?

A very interesting video to watch in order to understand CDOs and how the crisis of credit really worked: http://crisisofcredit.com/

Blockchain Use Cases
By the end of this section, you should have a clear view of all the elements that make up an open blockchain as well as its limitations, in order to know when to use one or not
The 3-layer Model
Blockchain Design Goals
Blockchain Implementations
Blockchain Instances
Public Blockchains as Tricameral Systems
Blockchain Key Components 1/2
Blockchain Key Components 2/2
What a Blockchain Is Not
Cryptography is everywhere in a blockchain. But it can seem very complex. So this section will give you a clear understanding of just the tools you need.
Hashing Functions
Asymmetric Cryptography
Merkle Trees
Set up your environment for decentralized application environment, whatever the operating system you are using
Course Update for Truffle 5
MacOS environment setup
Installing Ganache on Windows 8
Windows environment setup
Linux environment setup
Setting up a private node on MacOS
Setting up a private node on Windows
Setting up a private node on Linux
Troubleshooting your private node
Setting up MetaMask on all environments
My First Smart Contract: Greetings (Truffle 4)
Deploying a smart contract without Truffle (1/2)
Deploying a smart contract without Truffle (2/2)
Working around the truffle init error in the next lesson
Deploying a smart contract with Truffle (1/3)
Deploying a smart contract with Truffle (2/3)
Deploying a smart contract with Truffle (3/3)
Blocks and transactions
Gas
OpCodes
Sending ether
How do you design and develop a decentralized application? (Truffle 4)
ChainList application preview
Sell an article: smart contract (1/2)
Sell an article: smart contract (2/2)
Sell an article: tests (1/2)
Sell an article: tests (2/2)
Sell an article: frontend preparation (1/2)
Sell an article: frontend preparation (2/2)
Sell an article: display article in the frontend (1/3)
Sell an article: display article in the frontend (2/3)
Sell an article: display article in the frontend (3/3)
Sell an article from the frontend (1/2)
Sell an article from the frontend (2/2)
Sell an article through MetaMask
Sell an article: smart contract with event (1/3)
Sell an article: smart contract with event (2/3)
Sell an article: smart contract with event (3/3)
Sell an article: events in the frontend (1/2)
Sell an article: events in the frontend (2/2)
Unknown transaction when migrating with Truffle 4.0.4
Deploy ChainList to a private network (1/3)
Deploy ChainList to a private network (2/3)
Deploy ChainList to a private network (3/3)
Buy an article: smart contract (1/3)
Buy an article: smart contract (2/3)
Buy an article: smart contract (3/3)
Buy an article: tests (1/3)
Buy an article: tests (2/3)
Buy an article: tests (3/3)
Buy an article: frontend (1/3)
Buy an article: frontend (2/3)
Buy an article: frontend (3/3)
List of articles: smart contract (1/4)
List of articles: smart contract (2/4)
List of articles: smart contract (3/4)
List of articles: smart contract (4/4)
List of articles: tests (1/5)
List of articles: tests (2/5)
List of articles: tests (3/5)
List of articles: tests (4/5)
List of articles: tests (5/5)
List of articles: frontend (1/3)
List of articles: frontend (2/3)
List of articles: frontend (3/3)
Smart contract deactivation (1/2)
Smart contract deactivation (2/2)
Function modifiers
Smart contract inheritance
Deploying the frontend
Deploying smart contracts to the Rinkeby test net
Deploying smart contracts to the main net
Deploying to a test node with an Infura remote node
Update the ChainList project with all the latest versions of the tools
Before we start
Updating the development environment
Updating contracts

Test conversion checklist:

  • replace all the vars by let or const

  • transform the it() function into an async fat arrow function

  • replace all then() blocks with awaits

  • web3.eth.getBalance() is now asynchronous, so you can precede it with await

  • Replace all occurrences of web3.toWei() by web3.utils.toWei(), and web3.fromWei() by web3.utils.fromWei()

  • convert ether amounts into BNs at initialization

  • remove all calls to web3.toBigNumber()

  • convert BNs into strings everywhere we compare them with assert.equal()

  • remove all calls to toNumber() on getBalance() return values

  • call parseFloat() around calls to web3.eth.getBalance() to convert strings into javascript numbers for calculation

  • convert article prices back into numbers for calculations, using BN.toNumber()

Test conversion checklist:

  • replace all the vars by let or const

  • transform the it() function into an async fat arrow function

  • replace all then() blocks with awaits

  • web3.eth.getBalance() is now asynchronous, so you can precede it with await

  • Replace all occurrences of web3.toWei() by web3.utils.toWei(), and web3.fromWei() by web3.utils.fromWei()

  • convert ether amounts into BNs at initialization

  • remove all calls to web3.toBigNumber()

  • convert BNs into strings everywhere we compare them with assert.equal()

  • remove all calls to toNumber() on getBalance() return values

  • call parseFloat() around calls to web3.eth.getBalance() to convert strings into javascript numbers for calculation

  • convert article prices back into numbers for calculations, using BN.toNumber()

  • encapsulate all contract function calls expected to throw an exception into try/catch blocks

Adapting the frontend

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops the soft and hard skills needed to plan, develop, and deliver decentralized applications on the Ethereum platform
Taught by Sebastien Arbogast and Said Eloudrhiri, who are recognized for their work in Blockchain
Uses Truffle 4 and Ganache, industry standard tools
Students will build a decentralized application from start to finish by iteratively creating, coding, and testing
Provides a thorough understanding of the fundamentals of the Solidity programming language, which is foundational for any blockchain developer
Strong focus on development best practices, including unit testing and continuous integration
Provides a deep understanding of the Ethereum blockchain, its key components, and its ecosystem
Suitable for beginners with some basic software development experience
Covers the entire development lifecycle from planning and design to testing, deployment, and maintenance of decentralized applications
Utilizes a variety of teaching methods, including video lectures, interactive exercises, and hands-on coding projects
Requires installation of third-party software and has some system requirements that may not be met by all learners
Assumes some familiarity with software development concepts and tools
Does not cover advanced topics such as smart contract security or blockchain architecture

Save this course

Save Getting Started with Web3 Development to your list so you can find it easily later:
Save

Reviews summary

Web3 development: outdated content

According to students, Getting Started with Web3 Development is a course that is outdated. Students wish that the content was updated to reflect the current year.

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 Getting Started with Web3 Development with these activities:
Review Blockchain Terminology
Reviewing blockchain terminology will help you understand the course materials more effectively.
Show steps
  • Read through a glossary of blockchain terms.
  • Create a list of the most important terms and their definitions.
  • Complete online quizzes or exercises to test your understanding.
Write Solidity Code
Writing Solidity code will help you apply the concepts you learn in the course and develop your programming skills.
Show steps
  • Set up a development environment for Solidity.
  • Write simple Solidity contracts.
  • Test and debug your contracts.
  • Deploy your contracts to a blockchain network.
Build a Decentralized Application
Building a decentralized application will help you understand how to use Solidity and Truffle to create real-world blockchain applications.
Browse courses on dApp Development
Show steps
  • Design the architecture of your application.
  • Write the Solidity code for your contracts.
  • Develop the frontend for your application.
  • Deploy your application to a blockchain network.
  • Test and debug your application.
Show all three activities

Career center

Learners who complete Getting Started with Web3 Development will develop knowledge and skills that may be useful to these careers:
Smart Contract Developer
As a Smart Contract Developer, you're responsible for designing, coding, testing, and deploying smart contracts on various blockchain platforms. Smart contracts are self-executing programs stored on the blockchain, automating transactions and enforcing business rules. This course in Getting Started with Web3 Development offers a thorough understanding of smart contract development using Solidity, the most popular smart contract language. Through hands-on exercises, you'll learn to write, deploy, and interact with smart contracts, preparing you for the in-demand role of Smart Contract Developer in the blockchain industry.
Dapp Developer
As a Dapp Developer, you specialize in building and maintaining decentralized applications (Dapps) that run on blockchain networks. This course in Getting Started with Web3 Development aligns perfectly with this role by providing a comprehensive introduction to Dapp development. You'll learn about the principles of decentralized applications, explore the Ethereum blockchain ecosystem, and gain hands-on experience creating a real-world Dapp. Whether you're starting your career as a Dapp Developer or looking to expand your skills, this course will equip you with the foundational knowledge and practical experience you need to succeed.
Blockchain Developer
As a Blockchain Developer, your work revolves around the design, development, and maintenance of blockchain solutions. With the rise of decentralized web3 applications (Dapps) and distributed ledger technologies, the need for professionals who can build secure and scalable Dapps has become essential. This course in Getting Started with Web3 Development provides a comprehensive introduction to developing and deploying decentralized applications on the Ethereum blockchain, using the Solidity language and the Truffle build framework. By taking this course, you'll establish a foundational understanding of blockchain technology and gain hands-on experience building your own Dapp, equipping you for success in this rapidly growing field.
Blockchain Engineer
As a Blockchain Engineer, you're in charge of designing, developing, and managing blockchain-based solutions. Your work involves understanding the underlying blockchain technology, implementing blockchain solutions, and ensuring their security and scalability. This course in Getting Started with Web3 Development serves as an excellent starting point for aspiring Blockchain Engineers. By delving into the technical aspects of blockchain development, including smart contract creation, testing, and deployment, you'll gain a solid foundation that will support your growth as a Blockchain Engineer.
Cryptocurrency Developer
As a Cryptocurrency Developer, you're responsible for developing and maintaining the software that underpins cryptocurrencies. This course in Getting Started with Web3 Development provides a strong foundation for aspiring Cryptocurrency Developers. By exploring the principles of blockchain technology, learning about the Ethereum blockchain, and gaining experience in smart contract development, you'll acquire the essential skills needed to contribute to the development and evolution of cryptocurrencies.
Full Stack Developer: Blockchain
As a Full Stack Developer with a focus on Blockchain, your work encompasses both front-end and back-end development for blockchain-based applications. This course in Getting Started with Web3 Development can be a valuable addition to your skillset. By learning how to build Dapps, interact with smart contracts, and navigate the Ethereum ecosystem, you'll expand your capabilities as a Full Stack Developer and become more competitive in the blockchain job market.
Web Developer: Blockchain
As a Web Developer focused on Blockchain, you'll be responsible for developing and maintaining web applications that interact with blockchain networks. This course in Getting Started with Web3 Development aligns well with your career path. Through hands-on exercises and practical examples, you'll learn to build Dapps, connect to the Ethereum blockchain, and integrate smart contracts into your web applications. This course will provide you with the specialized skills needed to succeed as a Web Developer in the blockchain space.
Software Engineer, Blockchain
As a Software Engineer specializing in Blockchain, you'll be involved in the design, development, and maintenance of software solutions that leverage blockchain technology. This course in Getting Started with Web3 Development provides a solid foundation for aspiring Software Engineers in this field. By gaining a comprehensive understanding of blockchain concepts, smart contract development, and Dapp creation, you'll be well-equipped to contribute to innovative blockchain projects and drive advancements in the industry.
Product Manager, Blockchain
As a Product Manager with a focus on Blockchain, you'll be responsible for leading the development and launch of blockchain-based products. This course in Getting Started with Web3 Development can be beneficial to your career growth. By learning about the technical aspects of blockchain, gaining experience in Dapp development, and understanding the blockchain ecosystem, you'll be better equipped to make informed decisions, collaborate effectively with engineers, and drive the success of blockchain products.
Data Scientist: Blockchain
As a Data Scientist specializing in Blockchain, you'll use your analytical skills to extract insights from data generated on blockchain networks. This course in Getting Started with Web3 Development can complement your existing skillset. By gaining a foundational understanding of blockchain technology, smart contracts, and Dapps, you'll be better equipped to analyze blockchain data, identify trends, and contribute to the development of innovative blockchain solutions.
Systems Analyst: Blockchain
As a Systems Analyst with a specialization in Blockchain, you'll be responsible for analyzing and designing blockchain-based systems. This course in Getting Started with Web3 Development can enhance your knowledge and skills. By gaining a solid understanding of blockchain technology, smart contracts, and Dapp development, you'll be well-equipped to evaluate blockchain solutions, identify potential risks and opportunities, and contribute to the implementation of robust and efficient blockchain systems.
DevOps Engineer (Blockchain)
As a DevOps Engineer specializing in Blockchain, you'll be responsible for building, deploying, and maintaining blockchain-based systems and applications. This course in Getting Started with Web3 Development can provide you with a valuable foundation. By learning about the technical aspects of blockchain, gaining experience in Dapp development, and understanding the blockchain ecosystem, you'll be better equipped to automate tasks, ensure continuous integration and delivery, and manage the infrastructure of blockchain solutions.
Project Manager: Blockchain
As a Project Manager specializing in Blockchain, you'll be responsible for planning, executing, and delivering blockchain-based projects. This course in Getting Started with Web3 Development can provide you with a valuable foundation. By gaining a foundational understanding of blockchain technology, smart contract development, and Dapp creation, you'll be better equipped to manage blockchain projects effectively, mitigate risks, and ensure successful project outcomes.
Business Analyst, Blockchain
As a Business Analyst with a focus on Blockchain, you'll be responsible for analyzing business requirements and designing solutions that leverage blockchain technology. This course in Getting Started with Web3 Development can provide you with a strong foundation. By gaining a comprehensive understanding of blockchain concepts, smart contract development, and Dapp creation, you'll be well-equipped to identify opportunities for blockchain implementation, develop effective blockchain strategies, and drive business value through blockchain solutions.
Investment Analyst: Blockchain
As an Investment Analyst specializing in Blockchain, you'll be responsible for evaluating and investing in blockchain-based projects and companies. This course in Getting Started with Web3 Development can provide you with valuable insights. By gaining a foundational understanding of blockchain technology, smart contracts, and Dapp development, you'll be better equipped to assess the potential of blockchain projects, identify promising investment opportunities, and make informed investment decisions.

Reading list

We've selected six 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 Getting Started with Web3 Development.
It focuses on the practical aspects of blockchain development, providing hands-on exercises and real-world examples.
It comprehensive guide to Ethereum development, covering all aspects of smart contract programming, DApp development, and the Ethereum ecosystem.
It focuses on how businesses can leverage blockchain technology to improve their operations and gain a competitive advantage.
It covers a wide range of topics related to blockchain technology, including its history, the underlying cryptography, different blockchain architectures, and the applications of blockchain technology.

Share

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

Similar courses

Here are nine courses similar to Getting Started with Web3 Development.
Advanced Smart Contract Development
Most relevant
Developing Applications on Ethereum Blockchain
Most relevant
Introduction to Ethereum Blockchain
Most relevant
Ethereum and Solidity: The Complete Developer's Guide
Most relevant
Security and Auditing in Ethereum
Most relevant
Ethereum Tutorial: Ethereum & Smart Contracts from Scratch
Most relevant
Empowering with web3.js: Web3 Applications
Most relevant
Decentralized Application (DApp) Development
Most relevant
Introduction to Ethereum DeFi Smart Contract Security &...
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