The EOSIO developers workshop — learning how to teach blockchain!
By: Jack Tanner
Tags: Blockchain, Eos, Eosio, Education, Telos Network

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

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.