The EOSIO developers workshop — learning how to teach blockchain!

Jack Tanner
Nov 19, 2019 · 6 min read

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).

Image for post
Image for post

Lessons learned

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):

  1. Using an online IDE such as EOS Studio web (recommended) or EOSIO Web IDE
  2. Using a simple IDE or text editor like Atom, and then get them to run the blockchain from a stable docker image.
  3. 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

Image for post
Image for post

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.

Workshop Content

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.

Image for post
Image for post

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”.

Overview and ecosystem

  • Block One, EOSIO and Voice
  • EOSIO ecosystem (Telos, EOS and other deployed networks)
  • EOSIO overview and blockchain application architecture

Messages contract header and declarations

  • Creating a contract
  • Web Assembly runtime
  • The ABI
  • Actions
  • Transactions
  • EOSIO database and Tables

Messages contract implementation

  • Authorization
  • Multi-Index Table API

Consensus

  • Consensus
  • Forking and upgrading
  • Rewards

Accounts, permissions, resources, upgrading and transactions

  • Permissions
  • Resources and accounting
  • System contracts
  • Transactions
  • Blocks

eosio.token transfer() action

  • Assets
  • Inline actions
  • Notifications

Cryptography and conclusion

  • EOSIO protocol transaction and block data
  • Merkle trees
  • On-chain metrics to show usage and usability

Extras

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 :)

Happy blockchaining!

Work on Blockchain

Blockchain development, educational news and articles.

Jack Tanner

Written by

Blockchain technology software developer and educator! Currently contributing to #EOSIO ecosystem. https://jackandtheblockstalk.com/

Work on Blockchain

Blockchain development, educational news and articles. Work on Blockchain is a hiring platform for blockchain developers, and developers who wants to enter the blockchain space.

Jack Tanner

Written by

Blockchain technology software developer and educator! Currently contributing to #EOSIO ecosystem. https://jackandtheblockstalk.com/

Work on Blockchain

Blockchain development, educational news and articles. Work on Blockchain is a hiring platform for blockchain developers, and developers who wants to enter the blockchain space.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store