Certification, The ends justify the means.

Certification, The ends justify the means.

The wild west of certificates

Blockchain education is a growing ecosystem with very few players. Most courses and training programs are trying to create their certification program, tailored specifically to their self-construct program. This is a major issue for anyone involved in this field: the students, the course/program instructors and creators and future employers/customers.

My experience in this ecosystem has let me consider few approaches regarding certification, especially my eight weeks live course which provided me with numerous insights and made me examine ways to evaluate the topics that the students are learning/need to learn, the exercises that they’re performing and the benchmark on which they’re tested.


The basic badge system I created for my course

Knowing that there’s a lack of standards in the ecosystem, I decided to create a badge system that will provide my students with some tangible results that are not necessarily tied to the course itself. If a student wants to prove to a future employer his or hers achievements, they can just show them the codes they’ve created and/or the transactions they’ve pushed to the Ethereum/Bitcoin blockchain.

Having that in mind, I created a certification system that was aimed to draw the students to achieve a specific goal. A goal that was set at the end of 4 “progression trees” where each tree was build to reflect the chronological/difficulty order in which the course topics should be taught.

The four trees are:

  1. Establish a connection to remote Bitcoin node –  Understanding the basics of working with the Bitcoin network.
  2. Transmit a Bitcoin transaction (p2pkh and op_return. p2sh transactions were considered for bonus) –  Mastering the concept of transactions, scripts, op_codes, utxo, fees, inputs/outputs, etc.
  3. Create a mock Bitcoin miner (build a mock block) – Consensus rules, Merkle trees, proof of work, difficulty/targets.
  4. write and deploy Ethereum smart contract.

However, while I’m highly confident that having a final product to show for is more valuable than (most) current certifications, I did want to provide my students with some more “traditional” certification, but still, one that directly reflects the students’ accomplishments.

The badge system as a map

The badges I created were used mainly as a top-down map helping the students (and myself) to keep track of our progress during the course and in that they’ve achieved their goal. However, these maps, being the top-down maps they’re didn’t gave much in what is it that the students actually know from a technical point of view (the codes that they’re using, the tools, the mathematical background, etc.) and in that regard, they’ve lost a substantial level of depth that might’ve been useful for potential future employers. At the end of the day, it’s not just enough to provide proof that you’ve managed to write and transmit a transaction to the Bitcoin testnet, it’s also important to have proper documentation on how you did so.

Another thing that was somewhat lacking is the finer way to assess students progression during each step because the final goal was the primary benchmark on which the students were tested against. If a student managed to reach the goal, he received the badge – no matter how he or she got there. Without going into the fairness of the process (Which btw, I consider entirely fair), it’s important to create a way to also evaluate students proficiency in each step leading to that final goal. This is particularly the case when not all of the steps are equally important in academic terms (e.g., If the goal is to create a mock block, then understanding how to build Merkle trees and finding their root is more important than just populating the block header, especially when we’ve created protocol messages in previous classes).

Another thing to consider is the importance of the tools that were used in the process. Creating, signing and transmitting a transaction is, of course, a great way to prove ones’ proficiency in Bitcoin and blockchain in general, but it is hugely different between doing so using JS libraries, python code with ECDSA and C. And the trees I’ve created don’t reflect that.


Open call for the ecosystem

At the end of the day, it all boils down to the fact that there’s very little cooperation between different blockchain educational institutions – both with each other and with the rest of the ecosystem. That leads to multiple certifications being issued without properly addressing the need of the rest of the ecosystem, and of the students themselves.

Those who are working on educating young programmers and developers should aspire to achieve a standard working conventions on which to build their courses. They should create a uniform benchmark on which to examine the student’s knowledge and a clear way to present it to future employers in a way that is meaningful. Claiming that the student completed course ETHD-15 should carry some extra information for future employers. They should know what is that the student learned, what tools did they use, how was the student tested etc.

I’m currently working to better define the topics that required from each type of developer/programmer, and the ways they can prove their skills in that topics and I hope that more will join me in this effort.

Leave a Reply

Your email address will not be published. Required fields are marked *