12 week course
8-12 hours per week
1+ Years as a Developer
A computer with at least 8 GB RAM
and 50GB free hard-disk space
Getting into Blockchains is hard!
There is a whole lot of hype around Blockchain. But how does it work? What is a smart contract? Why is everyone so excited about DAOs? And what does all of this have to do with cryptocurrencies?
And most importantly, how do you program for a blockchain network?
We have spent the past couple of years developing and improving this 12-week in-depth online course to teach developers about Blockchain and how to develop decentralised applications, or DApps, on the Ethereum platform.
About This Course
This online course teaches software engineers the basics of blockchain technology as well as languages and tools required to build decentralised applications on the Ethereum platform. This course is aimed at experienced programmers, introducing everything needed to understand the technology, write smart contracts and build applications that interact with them.
Participants will learn about the Ethereum platform, the programming language Solidity, how to use web3 and the Truffle framework and lastly, how to tie everything together. Step by step, participants build a fully functioning decentralised application, deploy it and test it.
This course was developed in response to the daily requests we receive for expert developers in blockchain projects.
Someone needs to build it
The infrastructure of tomorrow needs sound developers. Stay ahead.Enroll Now!
The course covers the very basics of blockchain technology, from data structures to live projects. Serves as both a reminder for participants who know the basics and a clear introduction for those who don't.
- What is a blockchain?
- What are transactions and blocks?
- How do P2P systems operate?
- The most prominent consensus mechanisms
- Difference between private, consortium, and public networks
- What does the data structure look like?
- How do Smart Contracts work?
- What is the Ethereum Virtual Machine?
- What is a Hash?
- How do public/private keys work?
- What is a Merkle tree?
- What is the double-spend problem?
The window into any blockchain network is the node. This course teaches students how to run a node and how to install, configure and use the most common Ethereum clients.
- The Ethereum ecosystem, DApps and DAOs
- What is Mist and how does it work?
- What is Ether, an account, a Faucet?
- Compile, deploy and instantiate contracts
- Configuring, running and working with the go-ethereum client
- Account management and mining
- Understand the different stages of a contract deployment
- How to interact with a contract once deployed?
- What does the setup process for a private network look like?
The most prominent language used for the development of smart contracts is Solidity. The course covers all aspects from value types and inheritance to more exotic features and optimisation.
- Contract classes, Functions and conditionals
- Inheritance & abstract contracts
- Types & Optimisation
- Global Variables
Web3 & Truffle
The toolkit to aid development of decentralised applications is growing. This course introduces the two most currently relevant and covers everything from installation and setup to custom configuration and scripting.
- Building an interface to interact with a smart contract
- Setting up event-driven interfaces
- Adapting Truffle’s default behaviour
- Write functional tests for smart contracts
- How to manually test contract functionality?
- Instantiate web3 and communicate with a contract from an HTML page
- Use client side signing and remote nodes for light DApps
- How does web3 and truffle work with Angular.js?
This project(s) work will guide you through the steps required for the development of a sophisticated decentralised application, including a smart contract backend system and a full frontend. You get one full week for each project. That is how much we think they matter.
This contrived first project deals with Ether transfers. You will get in touch with basic Solidity syntax, and work with basic transactions and smart contract interaction concepts. You are going to learn how to transform a narrow-use smart contract into a global utility, how to protect your users and how to protect your smart contract from your users.
The second project demonstrates, by trial and error, how the public nature of Ethereum, gas price and mining delays cannot be ignored when coding in Solidity. This project looks and feels more real-life than the first project. Further, you will learn the art of balancing interactions and actions between client-side and chain-side. If you choose to, you will be able to adjust the specifications to your liking and, for instance, experiment with multi-contract interactions or attempt a rudimentary business model.
The third project is a well-known child's game that, although disarmingly simple, requires careful considerations when played on Ethereum. You will reapply teachings learned in the previous projects while ensuring you do not ruin your players' finances. How low can you go?
In addition, you will be presented, out of the blue, with a few challenges that, when completed, give you the opportunity to not only brag, but also reconsider your assumptions.
You can hammer out a transaction. But can you chisel a transaction?
Can you guess randomly generated numbers? Should you speed-read a smart contract, or take your time?
Don't you like it when money appears in your wallet out of nowhere?
You read about contract exploits, but can you exploit one yourself?
Teaching & Communication
We offer a dedicated Slack channel for all students to collaborate with your classmates and instructors. Classmates and instructors engage in active tutoring to guide you through the lessons and help one another.
Our instructors tutor and mentor throughout the course duration and during the exam period to help clarify course content and assist students with reaching their individual learning objectives at their pace.
Your course team
Xavier is a software and infrastructure engineer. In the past 15 years, he has coded, deployed, customised, troubleshot, and supported various software systems. He has also guided, educated, taught, and coached customers across Asia. Xavier used to be based in Thailand and Singapore. For more than two years now, he has been a keen member of the blockchain community.
Rob has worn many hats in his extensive IT career including experience designing, constructing, implementing and operating innovative software solutions, developing training programs and supporting online education platforms. Rob has been dabbling in blockchain technology since the early days and quickly recognised the disruptive potential of Smart Contracts and decentralised apps. Since 2016, Rob has been absorbing all things related to Smart Contracts and supporting developers on their quest to master this technology.
Elias has been spending the past 10 years planning, building and running applications. His background is in Artificial Intelligence. Since the early days of bitcoin he has been following the progress of blockchain tech and has been gathering experience with smart contracts / trustless computation since late 2014.
Ibo is a software engineer and entrepreneur with extensive experience in native desktop, web and mobile application development. He has worked on 3D Virtual and Augmented Reality projects and has a knack for embedded systems. He has been delivering software projects for 10 years.
B9lab awards certificates to participants who show very strong ability and understanding during the course. The pass mark is fairly high and requires an average of 80% or more. Successful participants receive a certificate that is verified on the Ethereum blockchain and looks like this self-awarded one.
Exam and Timeline
At the end of the 12 week course, participants can decide on the date of their exam within a 12 week window.