„Und, könntest du das jetzt erklären?“ – „Was genau?“ – „Na, den Code, der da steht.“ Mir wird warm. Gerade eben hat das alles noch Sinn ergeben, eigentlich war es sogar recht einfach. Doch jetzt – es fühlt sich an, als wäre ich wieder in der neunten Klasse und würde an die Tafel gerufen. Es geht zwar nicht um Chemie, sondern um Informatik. Und die Frage stellt nicht der ergraute Herr Luhmann, sondern ein Programmierer, der mein kleiner Bruder sein könnte. In einem roten Weihnachtspullover. Aber dieses Neonlicht! Irgendwie unangenehm.

Digital Native, Mitte 20 – keine Ahnung, was ein Algorithmus ist

Ich bin Mitte 20, also ein Millennial, wenn man es so ausdrücken will, oder auch: Digital Native. Ich habe Abitur, ich habe studiert, und ich habe beides selbstverständlich mit Hilfe von Computern bewältigt. Eine Bedienungsanleitung musste ich dabei so gut wie nie lesen.

Apropos lesen, lesen und schreiben kann ich auch – nur leider keinen Code. Was ein Algorithmus ist? Keine Ahnung. Ich denke da an die ratternden grünen Zahlenkombinationen aus dem Film „Matrix“. In meiner Vorstellung sind Algorithmen überall, und sie können wahnsinnig viel, sogar ohne menschliches Zutun. Ganz, ganz schlaue Computerprogramme.

Weil ich es gern besser wüsste – besser wissen sollte! –, bin ich mit Lisa Ihde und Amadeus Glöckner verabredet. Die beiden studieren IT-Systems Engineering am Hasso-Plattner-Institut (HPI), das der Universität Potsdam angegliedert ist und von oben aussieht wie ein umgedrehtes Nike-Logo. In der Eingangshalle des modernen Gebäudes prangen Zitate großer Denker, Platon zum Beispiel: „Das Staunen ist der Anfang der Erkenntnis.“ Also dann.

„Ein Algorithmus ist eigentlich bloß eine Schrittfolge, um ein Problem zu lösen“, sagt Amadeus. Der 21-jährige Masterstudent ist das Erklären gewohnt, er ist Tutor in „Programmiertechnik I“ und fühlt sich wahrscheinlich ganz wohl in dem Seminarraum, in dem wir jetzt sitzen. Für Einsteiger wie mich hat er eine ganz profane Schrittfolge parat: „Viele Menschen sind morgens müde, also kochen sie sich einen Kaffee. Nehmen eine Filtertüte, setzen sie in die Kaffeemaschine, füllen sie mit Kaffeepulver, gießen Wasser auf, stellen die Maschine an, warten…“ Okay, so weit verstanden.

Kaffeekochen – so verstehen es alle

Ein guter Algorithmus löst das Problem in möglichst wenigen Schritten, denn je mehr Schritte, so erfahre ich, desto länger braucht er. Aber: „Jeder Code lässt sich optimieren, man könnte Ewigkeiten damit verbringen“, sagt Lisa, und ihre Augen funkeln durch die schwarze Brille. Zu unserem kleinen Nachhilfeunterricht haben Lisa und Amadeus allerdings keinen besonders schnellen, sondern einen leicht verständlichen Algorithmus mitgebracht.

Algorithmus Marke Eigenbau GIF1

Ein Bubblesort-Algorithmus sortiert Säulen der Größe nach (GIF: Anthony Antonellis)

Der Bubblesort-Algorithmus räumt auf: Zahlen und Säulen nach ihrer Größe

(GIF: Anthony Antonellis)

„Bubblesort“ ist ein beliebtes Beispiel aus dem Informatikunterricht, den ich nie hatte. Es geht darum, mit einem Algorithmus eine beliebige Zahlenfolge aufsteigend zu sortieren. Dabei ist wie bei den meisten herkömmlichen Algorithmen jeder Schritt vorgegeben: Ist die Zahl an einer bestimmten Stelle größer als die ihr nachfolgende Zahl, dann – und nur dann – sollen die beiden getauscht werden. Das ist zu prüfen und gegebenenfalls durchzuführen, an jeder Stelle der Zahlenreihe, von der ersten bis zur vorletzten. Bis zur vorletzten Stelle, da auf die letzte ja keine mehr folgt, die man vergleichen könnte. Und das bitte so oft wiederholen, bis alles sortiert ist. Easy. 

Nur die dicke Schwarte, die vor Lisa auf dem Tisch liegt („Programmieren mit C++“), treibt mir einen leichten Schweißfilm auf die Stirn. Unter ihrem blonden Pony kann ich nichts dergleichen erkennen. Ruhig erklärt sie, dass der Algorithmus in einen Code übertragen werden muss, mit dem der Computer etwas anfangen kann. Schließlich soll er das Sortieren übernehmen. „Wir machen das in der Programmiersprache C.“ C? Ja, einfach C.

Wer Code lesen kann, ist im Vorteil

Und ab da wird es dann doch kompliziert. Obwohl sie wirklich nett und geduldig sind, zwischen den beiden mit ihren Laptops – ich sitze mit dem Notizblock in der Mitte – fühle ich mich ziemlich unwissend. Zählvariablen, Librarys, for Schleifen, Arrays. Für sie ist das wahrscheinlich das kleine Einmaleins. Doch während ich versuche, gleichzeitig zu verstehen und mitzuschreiben, merke ich: Wir beschreiben den Algorithmus in einer Sprache, die ich nie gelernt habe. Es klingt zwar alles logisch für mich, fehlerfrei nacherzählen kann ich es trotzdem nicht. „Das ist jetzt auch viel Input“, sagt Amadeus aufmunternd, „den Erstsemestern versuche ich das in mehreren Wochen beizubringen.“

algorithmus

Bubblesort-Algorithmus als Code und Diagramm dargestellt (GIF: Anthony Antonellis)

Und so sieht „Bubblesort“ als Code und als Diagramm aus

(GIF: Anthony Antonellis)

Der Algorithmus als solcher ist dabei nicht das Problem, denn als Diagramm dargestellt verstehe ich ihn. Beim Blick auf den Code aber fühle ich mich wie damals in der Oberstufe, als ich keine Mathe-Klausuren mehr schreiben, aber trotzdem noch anwesend sein musste: Vom Kartenspiel unter dem Tisch aufgeschaut, einen Blick auf die Tafel geworfen – nichts gerafft, weitergespielt. In Mathe habe ich einfach den Anschluss verpasst und konnte aufgrund mangelnder Kenntnisse – selbst wenn ich gewollt hätte – nicht mehr wirklich sinnvoll am Unterricht teilnehmen. Auch beim Programmieren kann ich nicht mitreden.

Ob es den beiden auch manchmal so geht? „Man muss nicht jede Programmiersprache beherrschen“, sagt Amadeus. „Die Ähnlichkeiten reichen aus, um sich leicht in alles hineindenken zu können.“ Trotzdem sind sie natürlich auch mal vom Know-how anderer Programmierer beeindruckt. „Das hat aber eher mit ihrer Spezialisierung und Erfahrung zu tun“, sagt Lisa. Das heißt auch: Wer programmieren lernt, dem stehen viele Türen offen.

Wer Code schreiben kann, hat die Macht!

Bei ihr hat übrigens alles damit angefangen, dass sie die Computerprobleme ihrer Mutter löste – und zwar zunächst nach dem einfachen Prinzip „Google is your friend“. Zum Programmieren kam sie später im Schülerkolleg des HPI. Selbst wer keinen (guten) Informatikunterricht in der Schule hat oder hatte, ist also nicht verloren. Ihr Steckenpferd ist das Designen von Apps, 2014 war sie im Gewinner/-innen-Team des „Besten Design“-Preises bei „Jugend hackt “.

Sie wollte deshalb eigentlich Medieninformatik studieren oder Visuelle Kommunikation, bis der große Bruder, selbst Informatikstudent am HPI, ihr zu einer wichtigen Erkenntnis verhalf: „Wenn du Code schreiben kannst, hast du die Macht“, sagt sie triumphierend, „dann bist du nicht auf das angewiesen, was andere programmieren.“ Nach dieser kleinen Informatikstunde ahne ich, wie recht sie hat.

Wer das Programmieren lernen will: Anregungen, Material und gute Links gibt es hier.