This post is a German translation of the blogpost ‘ Training blockchain developers in Africa’ by Lars Brünjes
Blockchain-Entwickler in Afrika ausbilden
Frauen aus Äthiopien und Uganda kommen mit Haskell in Berührung
Als ich am Abend des 4. Januar am Flughafen Bole in Addis Abeba aus dem Flugzeug stieg, wusste ich nicht, was mich erwartete. Es war mein erstes Mal in Äthiopien, und ich wusste nur, dass meine kanadische Kollegin Dr. Polina Vinogradova, eine Expertin für formale Methoden bei IOHK, und ich einen dreimonatigen Haskell-Kurs für eine Klasse junger äthiopischer und ugandischer Frauen halten sollten.
Als unsere Studentinnen drei Monate später, am 22. März, ihren Abschluss machten, war dies der Höhepunkt meines Berufslebens. Worte können nicht beschreiben, wie stolz ich auf diese mutigen jungen Frauen bin, die so viel für die Teilnahme am Unterricht geopfert haben, die unermüdlich und hart gearbeitet haben und die begierig darauf sind, einige der dringendsten Probleme ihrer Länder anzugehen.
Nicht nur ihre glühende Intelligenz und Leidenschaft, sondern auch ihre Sanftmut und Freundlichkeit erfüllen mich mit tiefer Demut.
Der Kurs wurde von John O’Connor, dem Direktor für afrikanische Operationen bei IOHK, in Zusammenarbeit mit dem äthiopischen Ministerium für Innovation und Technologie und der ugandischen Regierung organisiert. Wir hatten 22 Studentinnen, 18 aus Äthiopien und vier aus Uganda. Alle Teilnehmer hatten ein IT-bezogenes Fach an der Universität studiert, einige hatten gerade ihren Abschluss gemacht, andere hatten mehrere Jahre in der Softwareentwicklung oder in der Lehre an der Universität gearbeitet.
Die meisten äthiopischen Studentinnen kamen aus Addis Abeba, aber einige waren aus der Ferne und mussten ihre Familie und Freunde zurücklassen, um am Kurs teilzunehmen. Die vier ugandischen Studentinnen lebten in einem Wohnheim, verbrachten drei Monate in einem ihnen fremden Land, sprachen die Sprache nicht und waren mit den lokalen Bräuchen nicht vertraut.
Die vier Studentinnen aus Uganda waren weit entfernt von ihrer Heimat.
Das Unterrichten von Studentinnen mit so unterschiedlichen Hintergründen klingt herausfordernd, aber die Tatsache, dass keine von ihnen Erfahrung mit funktionaler Programmierung im Allgemeinen oder Haskell im Besonderen hatte, machte es einfacher: Andere Programmiersprachen zu kennen hilft beim Erlernen von Haskell nicht wirklich und kann sogar kontraproduktiv sein.
Haskell ist die wichtigste Programmiersprache bei IOHK. Es ist eine funktionale Sprache, während die meisten bekannten Sprachen inperativ und objektorientiert sind. Haskell ist höchst abstrakt, sehr mathematisch, extrem flexibel und ausdrucksstark, nicht wirklich im Mainstream; eine ideale Sprache, um unsere komplizierten Protokolle und kryptografischen Algorithmen effizient und nachweislich korrekt darzustellen.
Bethelhem Teka mit ihrer Familie
Haskell ist schwer zu lehren und zu lernen - nicht weil es an sich komplizierter ist als andere Sprachen, sondern weil es den Programmierer zwingt, eine neue Denkweise zu lernen, Probleme auf eine Art und Weise anzugehen, die für Entwickler, die mit Java, Python oder JavaScript arbeiten, unbekannt ist. Haskell zu lernen ist eine bewusstseinserweiternde (und atemberaubende!) Erfahrung. Nachdem Sie es gelernt haben, auch wenn Sie Haskell nie wieder verwenden, werden Sie eine viel breitere Perspektive haben und gelernt haben, Probleme in einem anderen Licht zu sehen. Sie werden ein besserer Entwickler sein, egal was passiert.
Das sagt eine unserer äthiopischen Studentinnen, Bethelhem Teka, über Haskell und den Kurs:
Obwohl ich mehr als sechs Jahre lang mit imperativen Programmiersprachen programmiert habe, war mir die funktionale Grundlage von Haskell fremd. Anfangs war es aufregend, die Versprechen zu verinnerlichen, funktional, faul, rein, ohne Nebenwirkungen usw. zu sein.
Es gibt objektorientierte Konzepte, die in Haskell verwendet werden, aber sie sind unterschiedlich implementiert, und es war seltsam, einige Fakten wie keine Vererbung und keine Objekte zu hören.
Es gab viele schwierige Momente während des Kurses, besonders bei der Umsetzung von Konzepten in Code. Als entscheidendes Element der Sprache war das Verstehen und Implementieren der Monade zur Erreichung der Reinheitsfunktionalität noch schwieriger.
Es gab viele dumme Fragen, die mir an verschiedenen Stellen in den Sinn kamen, wie z.B. die Frage, wie Haskell seine Reinheit bewahrt und Nebenwirkungen vermieden hat, bevor man die Monade entdeckte, aber diese wurden bald von Lars oder Polina oder Freunden beantwortet.
Es gibt noch weitere Punkte, die ich in meine eigenen Aufgaben aufnehmen und für die Zukunft weiter ausarbeiten muss.
Schließlich fühle ich mich glücklich, das funktionale Paradigma der Programmiersprache als Ganzes gelernt zu haben, und ich finde alle Konzepte der Sprache erstaunlich und vielversprechend.
Ich kann nicht sagen, dass ich jedes einzelne Detail des Kurses verstanden habe, aber es hat mir das Vertrauen gegeben, mit der Arbeit daran zu beginnen und mehr zu lesen.
Die Lage von 2.500m über dem Meeresspiegel hält Addis kühl
Die Umstände waren nicht ideal, und wir hatten immer wieder Probleme. Der Verkehr war schrecklich und einige der Studentinnen verbrachten jeden Morgen drei Stunden damit, zum Unterricht zu kommen.
Das Internet war unzuverlässig, und die meisten unserer Studentinnen hatten zu Hause keinen Zugang, was sie zwang, lange nach dem Unterricht zu bleiben, um an ihren Aufgaben zu arbeiten. Selbst im Klassenzimmer erlitten wir so manchen Internetausfall und waren gezwungen, Material auf USB-Sticks von Laptop zu Laptop zu verteilen.
Eines Abends erhielt ich hektische Nachrichten per Telegramm von den Studenten, die lange geblieben waren, um an ihren Aufgaben zu arbeiten: sie waren eingesperrt worden! Ein Wachmann hatte entschieden, dass es Zeit für sein Abendessen war, schloss sie ein und ging. Es bedurfte einiger hektischer Anrufe, um einen Mitarbeiter des Ministeriums mit Schlüsseln zu erreichen und mit ihm zum Gebäude zu fahren, um die Studentinnen zu befreien. Sie behielten jedoch ihre gute Laune!
Endlich frei! Die Studentinnen hatten bis spät in die Nacht gearbeitet und waren im Gebäude eingesperrt.
Einige unserer Studentinnen hatten Probleme mit ihren Laptops - unzureichender Speicher, unerträglich langsame Prozessoren oder defekte Tastaturen. Nach einem langsamen und schmerzhaften Start stellte IOHK schließlich bessere Geräte zur Verfügung.
Die ugandischen Studenten mochten weder das kühle Klima, noch waren sie mit dem unbekannten äthiopischen Essen zufrieden. Addis liegt 2.500 Meter über dem Meeresspiegel und ist die zweithöchste Hauptstadt der Welt, so dass das Klima kühler ist, als man es von einer afrikanischen Stadt erwarten würde. Polina und ich hatten in den ersten Wochen so viel Mitleid mit den vier, da sie immer so unglücklich aussahen!
Äthiopisches Essen: ungewohnt für das IOHK-Team und die ugandischen Studenten.
Ein weiteres Problem, zumindest am Anfang, war die Tatsache, dass die Studentinnen an ein Bildungssystem gewöhnt waren, in dem das Stellen von “dummen” Fragen verpönt war und in dem Lehrer oft unzugänglich waren. Es bedurfte Geduld und Ermutigung, um sie davon zu überzeugen, sich zu öffnen, ihnen zu zeigen, dass es in Ordnung ist, Fragen zu stellen und uns zu unterbrechen, wenn es etwas gibt, das sie nicht verstehen.
Sie schienen auch an einen Lehr- und Lernstil gewöhnt zu sein, der sich auf die Theorie konzentriert. Am Anfang folgten sie unseren Vorlesungen zwar ganz gut, waren aber bei den praktischen Übungen und bei der Anwendung des Gelernten auf den eigentlichen Code ziemlich schlecht.
Nachdem wir dies erkannt hatten, stellten wir weitere Beispiele und Übungen zur Verfügung und ließen sie so oft wie möglich Programmieren. Wiederholten den Haskell-Workflow wieder und wieder. Code schreiben. kompilieren. Fehler beheben. testen, wiederholen.
Der Kurs ist herausfordernd und geht weit über eine reine Einführung in Haskell hinaus. Viele fortgeschrittene Themen und Konzepte werden behandelt, und es wird viel Lernstoff eingebracht. Dies übt Druck auf die Studentinnen aus und verlangt von ihnen, dass sie hart arbeiten. Aber es lohnt sich! Nach Abschluss des Kurses können die Studenten stolz auf ein solides Verständnis von Haskell sein und sind bereit, an realen Problemen zu arbeiten.
Für ein Projekt mussten die Studenten ein Peer-to-Peer-Protokoll implementieren, und sie waren sehr gespannt, wie die erlernten abstrakten Konzepte angewendet werden konnten. Mit den Worten von Bethelhem:
Die Arbeit an Aufgaben war die beliebteste Tätigkeit im Kurs.
Ich habe versucht, jede Frage zu verstehen und daran zu arbeiten. Obwohl es sich um Gruppenarbeit handelte, hatte jede Aufgabe etwas mit praktischen Punkten zu tun und es war mir unangenehm, auch nur einen davon zu verpassen.
Wenn ich es also nicht programmiert habe, habe ich zumindest mit der Gruppe diskutiert, um es algorithmisch zu visualisieren. Die Arbeit im Team hat Spaß gemacht! Es hat geholfen, sich gegenseitig kennenzulernen, und ich schätze gut organisierten und ordentlichen Vortragsfolien. Auch die Bildschirmaufnahmen waren sehr hilfreich.
Eine Neuerung in diesem Kurs war ein zweiwöchiger Abschnitt über Plutus, der von Professor Philip Wadler, einem der Entwickler von Haskell, unterrichtet wurde. Plutus ist die von IOHK für die Cardano-Blockchain entwickelte, intelligente Vertragssprache, die in Haskell implementiert wurde und Haskell sehr ähnlich ist, so dass unsere Studentinnen in einer idealen Position waren, um sie kennenzulernen.
Eine weitere Studentin, Bethel Tadesse, hatte Vorschläge für den Kurs und den Plutus-Teil:
Der Kurs gefällt mir sehr gut, es ist sehr interessant, nützlich und inspiriert mich auch, immer mehr zu arbeiten. Es ist wirklich optimal, dass wir diese relevante und effiziente Technologie in unserem Entwicklungsland Äthiopien und auch nach Afrika bringen können. Ich sage auch stolz, dass ich das Glück habe, dies zu lernen, eine lebensverändernde und lösungsorientierte Infrastruktur.
Es lässt mich die strahlendste Zukunft sehen. Es ist wirklich hilfreich und gut organisiert, außer dass uns wenig Zeit zur Verfügung steht und mehr Anstrengung von uns erforderlich ist. In dem Teil über intelligente Verträge nahmen wir ehrlich gesagt nur die Grundlagen und nicht die Details auf, und in meinem Fazit brauchen wir ein wenig mehr Erläuterungen, um weiter daran zu arbeiten. In den Grundlagen fand ich es wirklich interessant und mächtig, verschiedene Bereiche besser zu verstehen, die mit dieser Technologie behandelt werden müssen.
Als Vorschlag möchte ich sagen, dass es für den Teil über intelligente Verträge besser wäre, wenn wir mehr Zeit hätten, uns die Inhalte zu verinnerlichen.
Nach fast drei Monaten harter Arbeit, vielen Kämpfen, unzähligen Internet- und Stromausfällen, nach dem Lernen von esoterische Konzepte wie Monaden und Gleichungslogik und bodenständige Anwendungen mit Webservern und Datenbanken, nach Enttäuschungen über schlechte Testergebnisse und Freude über kontinuierliche Verbesserungen und 'aha!-Momente’, nach dem Lernen, Studieren, Arbeiten, Essen und dem gemeinsamen Kaffeetrinken, nach medizinischen Notfällen, Familientragödien und Krankheiten, nach vielen kleinen und größeren Triumphen, viel Lachen und viel Freude, nach der Angst vor Geistern auf den Dächern in der Nacht (kein Witz…), gipfelte es schließlich in einer schönen Abschlussfeier im Sapphire Hotel in Addis Abeba.
Unter der Anwesenheit stolzer Familienangehöriger und Freunde, Diplomaten und Branchenexperten sowie Journalisten und Philanthropen erhielten die Studentinnen ihre Zertifikate von Dr. Getahun Mekuria Kuma, Minister für Innovation und Technologie, und Charles Hoskinson, Geschäftsführer und Mitbegründer von IOHK.
Niemand war jedoch stolzer als ich. Die Frauen trugen traditionelle äthiopische Kleider, sie strahlten vor Aufregung und Freude; sie sahen so schön aus, dass ich meine Freudentränen zurückhalten musste. Meine Frau sagte: "Sie waren immer schon schön, aber der Erfolg machte sie wunderschön.”