We may earn an affiliate commission when you visit our partners.
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.

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.

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

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

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

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

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

Traffic lights

Read about what's good
what should give you pause
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

Create your own learning path. Save this course 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:
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.
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 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.
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.
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.
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.
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.
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.
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.
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.
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.

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

Similar courses are unavailable at this time. Please try again later.
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 - 2025 OpenCourser