The EOSIO developers workshop — learning how to teach blockchain!
This article shares important knowledge learned from creating the Free EOSIO Developers Workshop and other blockchain workshops! This can be used by other educators to assist in their educational endeavors.
I am also sharing the content from the workshop (scroll to bottom). This is very different from other courses and official documentation as it explains how the EOSIO protocol and software actually work, instead of how to use EOSIO software. I hope this is of interest to developers and computer scientists working in the industry as well as academics wishing to further understand blockchain technology. My verbal explanation as part of the workshop goes a long way to complement the content.
If you are interested in the workshop visiting your city please, or would like to get involved in teaching EOSIO locally or with me please get in touch.
If you are looking to learn EOSIO, please check my other article Learning EOSIO development (Telos, EOS and other blockchains).
Lesson 1: Developers learn faster with a modern approach
Teaching concepts by walking through code is extremely effective. Teaching code theory by going through concepts in a structured way, concept by concept is less effective. This may not be so obvious, as this is the way most “traditional” education is done.
In my first attempt, I walked devs through each EOSIO concept one by one and then expected them to code a contract. Now I give a very short overview and then go straight to walking through a smart contract and break out into explanations of what each code piece does (e.g. “when the action is sent to a node then…”). This has shown a massive increase in understanding.
Lesson 2: Visualizing goes a long way
Creating visual representations of abstract concepts is also helpful. Creating some meaning in the information (relate it to yourself for example) can also be an effective tool to help people remember concepts.
Lesson 3: There is no better way to learn than by doing
Teaching code should be paired with coding exercises. This really really really helps understanding.
Lesson 4: EOSIO has a lot to learn about, and changes quickly
One of the most powerful aspects of EOSIO blockchains is that they are so powerful (yes I see the duplication), and they have a much better way to upgrade than previous blockchains.
The low latency, high efficiency, free transactions and other features that make it such a scalable, upgradeable, UX and developer-friendly blockchain framework takes time to explain. In my first EOSIO workshop I tried to explain all of them in a day, which arguably failed. So now I try to teach what is important in the time I have to get developers from where they are, to the next level. Creating a comprehensive workshop I expect would take 2–3 days!
Having a protocol that can upgrade far easier (than Bitcoin/Ethereum) means that it will upgrade. Keeping up with EOSIO is a chore. A bummer in the short term, but software that upgrades to meet its challenges is better than software (or anything) that can’t.
Lesson 5: Avoid getting developers to install your software
From the EOSIO workshop and others that we have provided with workonblockchain.com this has definitely been a learning point. Getting devs in a room and asking them to install eosio, or other node software for blockchains takes away from what developers really want to learn: how to build using them. As any dev knows, installing new software can be frustrating. Trying to get a room of devs, all with different OSs to do this can take hours.
Instead of trying to get devs to set up a blockchain, get them straight to building on one by (in order of effectiveness):
- Using an online IDE such as EOS Studio web (recommended) or EOSIO Web IDE
- Using a simple IDE or text editor like Atom, and then get them to run the blockchain from a stable docker image.
- Build a VirtualBox image with all the software and IDE set up and ready to go.
If you want to teach the infrastructure specifically, then perhaps consider making this a standalone workshop, or maybe get everyone to work in the cloud on the same machine types.
Lesson 6: Professionals want to understand how it works
Especially with new, bleeding-edge tech, developers want to understand how it works under the hood. Only teaching how to use it is great, but at the early stage, I argue that this is important.
We are building trust technologies (blockchains), and trust comes from understanding at a fundamental level. By explaining how it works developers are able to better help themselves when they run into problems. While it may not always be appropriate to go this far, in my experience this is a valuable piece of knowledge to provide.
Unfortunately, this information is not provided in the official EOSIO documentation. Nevertheless, with the help of many, I found it worth my time to figure this out and you can see the fruits of this labor in the content and workshop.
Lesson 7: Pairs and groups learn from each other
If you can get people to work together, they can work with each other's strengths. Some developers are very accustomed to working alone, but that does not mean that they cannot learn together. This allows them to learn from each other, which reinforces ideas and additionally takes overhead off the teachers.
Lesson 8: Help is around the corner
One of the most interesting and amazing parts of my EOSIO is how they were funded! A decentralized application running on the Telos blockchain (built on EOSIO), called the Worker Proposal System, was able to successfully pay for pizza for the students, a bit of crypto each and a little leftover for me and the other mentors.
Let’s just think about that… No companies, no regulation… The blockchain alone paid for the workshop. This is an awesome public blockchain app in production that is starting to provide the friction losses that blockchain promises!
Other than that, I found it a great experience to get help from all the mentioned teams below to create the workshop. The EOS Developers and the Telos Developers telegram channel are also very useful for EOSIO tech support.
Lesson 9: Tutorials should be in easy small steps
With new tech, nobody likes failing. Give everyone enough tips to get them through. At the same time ensure there is enough room to learn on their own.
How to use AND how does EOSIO work!
Big shout out to EOS Authority, EOS Canada, Block One, EOS Studio, Christopher Michael, EOS New York, the Telos Foundation and EOS Amsterdam for helping answer questions that let me create the content for the workshop.
I authorize this material to be shared freely for commercial or non-commercial purposes, so long as I am acknowledged as the author.
The C++ Primer
Before the workshop, I send out a C++ Primer and suggest anyone not comfortable with C++ read it. The C++ Primer I send is the first chapter of the learneos.dev book, and is shared with permission from Christopher Micheal. This is also a great book to learn how to write a EOSIO blockchain application and you can get it with a 25% discount with code “jackandtheblockstalk”.
- Block One, EOSIO and Voice
- EOSIO ecosystem (Telos, EOS and other deployed networks)
- EOSIO overview and blockchain application architecture
- Creating a contract
- Web Assembly runtime
- The ABI
- EOSIO database and Tables
- Multi-Index Table API
- Forking and upgrading
- Resources and accounting
- System contracts
- Inline actions
- EOSIO protocol transaction and block data
- Merkle trees
- On-chain metrics to show usage and usability
I removed these from the original workshop based on feedback that there was too much content.
- The dispatcher
- BIOS launch sequence
- Hard fork protection
- Advanced permissions
- Error handling
- WASM globals and interface
- REX and Spam
- And lots more!
I hope you have found this article insightful! Please give it a clap, and share it with others that can learn from the lessons or content :)