Creative Coding
als Erfahrung

Drei Freunde im Wald: Patrik Hübner, Lukas Schlaffke und ich

Im Jahr 2014 packten meine Freunde Lukas Schlaffke, Patrik Hübner und ich einen Kombi voll mit Decken, Lebensmitteln, Laptops und stapelweise Büchern. Wir fuhren in die Pampa, um in eine Waldhütte einzuziehen. Es war ein kleines Haus mit zwei Zimmern, einer Küche und einer winzigen Terrasse, von der wir direkt in die Natur schauen konnten.

Vor uns lag eine Wiese, dahinter Weiden und ein abschüssiges Gelände, das wir in den sechs Tagen unseres Aufenthalts allerdings nie erkundet haben. Im Grunde sahen wir fast nichts von der Natur die uns umgab. Die meiste Zeit verbrachten wir auf einer großen Couch auf der Terrasse, den Blick konzentriert auf unsere Laptops gerichtet und völlig isoliert von der Außenwelt. Kein Netz und kein Internet – genau so hatten wir es uns vorgestellt. Denn wir waren gekommen, um Creative Coding zu lernen.

Wie so oft war aller Anfang beschwerlich. Als Grafiker war ich gewohnt, mit Programmen wie Illustrator auf einem durchdachten grafischen User Interface zu arbeiten. Als ich mit Creative Coding startete, blickte ich auf einen weißen Code Editor ohne jegliche Anweisungen oder Buttons die ich hätte klicken können. Was also tun? Ich nahm eines unserer mitgebrachten Bücher zur Hilfe und schrieb in kleinen Schritten mein erstes Programm.

Eine kleine Auswahl meiner frühen Experimente (2014-2016

Noch passierte nicht viel. Rechtecke verteilten sich zufällig auf dem Bildschirm. Ein paar Kreise und Rauten entstanden. Eigentlich hätte ich bereits hier am liebsten aufgegeben. Doch auf Patriks Bildschirm passierten direkt neben mir faszinierende Dinge. Ich sah eine metallisch glänzende Skulptur in bunten Farben, deren Oberfläche wirkte, als hätte sich Wasser mit Öl vermischt. Sie bewegte sich zu einer Melodie, die im Hintergrund lief und über das Touchpad konnte Patrik diese unwirkliche Welt bewegen und das Geschehen aus allen Blickwinkeln betrachten. In diesem Moment packte mich der Ehrgeiz.

Sparring als Antrieb

Zwischen uns Dreien herrschte von Anfang an eine sonderbare Energie, eine Art Sparring, ein Wille die anderen zu beeindrucken. Ich nahm die Challenge an und grub mich tief in die Processing-Referenz ein. Es dauerte ein paar Tage, bis ich mich zurecht fand. Der Moment, in dem ich die Schwelle überschritten hatte und es plötzlich begann Spaß zu machen kam, als ich meine erste Animation aus Processing herausrenderte. Es war eine Komposition aus Kreisen, die sich radial bewegte und Assoziationen zu Retro-Mustern aus den Siebziger Jahren weckte. Sowieso war die Ästhetik der Bilder auf unseren Bildschirmen irgendwie aus einer anderen Welt, faszinierend und anziehend. Das war magisch! In den nächsten Tagen entwickelte ich Varianten von diesem Programm, tauschte die Kreise gegen Dreiecke oder Quadrate, wechselte die Farben und probierte immer neue Funktionen aus, die ich in der Referenz fand.

Ich erinnere mich daran, dass es weniger die Komplexität der grafischen Formen war, die mich faszinierte, sondern vielmehr der logische Zusammenhang zwischen dem Code und dem, was auf der digitalen Leinwand passierte. Wenn sich die Logik des Codes nachvollziehbar in ein Bild verwandelte, empfand ich dies schon damals als besonders schön.

Eine Woche verbrachten wir in der Hütte im Wald. Als ich am Ende ins Auto einstieg und nach Hause fuhr, hatte sich meine Perspektive auf Code, Computer und Gestaltung komplett verändert. Heute, etwa acht Jahre später, weiß ich, dass dieses besondere Erlebnis, das wir drei teilten, im sogenannten Threshold Concept beschrieben wird.

Ein Threshold Concept ist eine irreversible und transformative Erfahrung, die sich nach einer enormen Lernanstrengung vollzieht. Sie ist eine Art Portal, das eine neue und zuvor unzugängliche Art über etwas nachzudenken öffnet hansen2. Ich vergleiche diesen Prozess in meinen Lehrveranstaltungen und Workshops häufig mit dem Klettern auf eine hohe Mauer. Nach enormer Anstrengung oben angelangt, öffnet die neue Perspektive den Blick auf eine vorher unbekannte, weite Landschaft.

Für mich blieb es keineswegs bei dieser einen, singulären Schwellenerfahrung. Der Weg ins Universum des Codes konfrontiert mich bis heute immer wieder mit vergleichbaren Hürden, deren Überwindung jedes Mal ein enormes Glücksgefühl zur Folge hat. Es macht die Reise durch das Land des Codes immer wieder abenteurlich und spannend. Aber natürlich verläuft der individuelle Lernprozess niemals nur geradlinig. Und auch bei mir war er durchzogen von Umwegen und Irrtümern.

„Learning to code goes up and down"

Valerie Fuchs fuchs beschrieb ihren Weg von der Position der Marketing-Managerin bei Adidas zur erfolgreichen Software-Entwicklerin auf einer Konferenz mit folgenden Worten: Programmieren lernen ist kein Sprint, sondern ein Marathon. Außerdem sagt sie sinngemäß: Die Lernkurve geht hoch und runter, sie ist keine gerade Linie, sondern eine Berg- und Talfahrt. fuchs1 Vielleicht ist es genau diese immer wiederkehrende Herausforderung, die die globale Gemeinschaft des Creative Coding so eng zusammenschweißt. Tausende Menschen weltweit vernetzen sich heute nicht nur im Internet, sondern auch auf physischen Konferenzen, Workshops und Meetups und sprechen über Creative Coding. Von Anfang an hat mich die Großzügigkeit, die Hilfsbereitschaft, die Toleranz und die unendliche Kreativität in diesem Kreis von Menschen enorm beeindruckt. Auch wenn am Ende natürlich jedes lernende Individuum auf sich allein gestellt ist.

Valerie Fuchs

In Situationen, in denen ich mich vom Lernprozess überfordert fühlte, habe ich mich von der Philosophie der Stoa inspirieren und leiten lassen. Die Texte von Mark Aurel stoics1, Seneca stoics2 und Eptiket stoics3 gaben mir hilfreiche Impulse und Lösungsvorschläge für derlei Herausforderungen: Vertraue dem Prozess, fasse im Kopf niemals alle Probleme auf einmal zusammen, scheitere nicht schon im Kopf, vermeide selbsterfüllende Prophezeiungen, fokussiere Dich und bleib dabei gelassen.

Und nicht nur die stoische Philosophie ist für mich zum wertvollen Ratgeber bei großen Herausforderungen geworden. Mit der Zeit wurde die Programmierung selbst für mich zur philosophischen Schule, in der ich die Anwendung stoischer Prinzipien einüben und darüber hinaus in viele andere Bereiche meines Lebens integrieren konnte.

Mark Aurel war römischer Kaiser und ein Philosoph der späten Stoa.

Stell Dir nicht gleichzeitig vor, welche und wie viele schwere Dinge aller Wahrscheinlicheit nach auf Dich zukommen werden, sondern frage Dich bei jedem, wenn es da ist: Was ist an dieser Sache unerträglich und nicht auszuhalten?

Mark Aurel: Selbstbetrachtungen, Ditzingen 2019, S. 112.

Viele der stoischen Weisheiten stellen für mich konkrete Hilfestellungen für die besonderen Herausforderungen im Lernprozess dar. Die stoische Ethik basiert auf dem Streben nach dem guten Leben (eudaimonia), das durch das Erlangen bestimmter Tugenden (aretê) schriefl1 erreicht wird. Diese Tugenden sind positive Charaktereigenschaften, die der Mensch laut der Stoa durch die Arbeit an sich selbst erlangen kann. Der römische Philosophenkaiser Mark Aurel listet im ersten Buch seiner Selbstbetrachtungen viele dieser Tugenden auf. Einige davon, namentlich Selbstbeherrschung, Beharrlichkeit und vorausschauendes Denken aurel1 werde ich in den folgenden Abschnitten mit meinen Erfahrungen aus dem Lernen von Programmierung darstellen.

Selbstbeherrschung

Wie schon erwähnt ist der Anstieg der Lernkurve in der Programmierung zu Beginn ziemlich steil. Gerade in dieser Phase wirst Du kognitiv stark herausgefordert und musst viele knifflige Probleme lösen. Die entsprechenden Lösungen findest Du in der Regel am einfachsten mit kühlem Kopf, durch analytisches Vorgehen und jede Menge Geduld. Anfängern reisst schon mal der Faden, wenn etwas nicht sofort klappt. Erfahrene Programmierer hingegen wissen, dass sie Schritt für Schritt vorgehen und das Problem nüchtern in seine Einzelteile zerlegen müssen.

Beharrlichkeit

Bleib so lange wie möglich bei einer Programmiersprache. Es ist zweitrangig, für welche Sprache Du Dich entscheidest. Viel wichtiger ist, dass Du nicht zu früh wechselst. Im Grunde haben alle Programmiersprachen dieselben Grundstrukturen: Loops, Variablen, Arrays, bedingte Verzweigungen und Funktionen sind das Grundvokabular der Programmierung und erscheinen in allen Sprachen in einem anderen Gewand. Wenn Du dafür noch keinen klaren Blick entwickelt hast, wirst Du dies nicht erkennen und jede Sprache wirkt auf Dich wie ein neues Universum. Wechselst Du bereits zu Beginn zwischen den Sprachen, steigerst Du das Risiko, an ihrer vermeintlichen Komplexität zu verzweifeln, wertvolle Motivation einzubüßen und letztlich zu kapitulieren. Resignation ist am Anfang des Lernprozesses Dein größter Gegner. Motivation ist Deine wichtigste Resource. Schone sie, wie Deinen Wasservorrat auf einem langen Marsch durch die Wüste.

Stig Møller Hansen

Vorausschauendes Denken

Angesichts der enormen Auswahl an verfügbaren Programmiersprachen stellen sich viele Studierende die Frage, mit welcher sie beginnen sollen. Einer meiner wichtigsten Netzwerkpartner, gerade bei der Entwicklung dieser Arbeit ist Stig Møller Hansen, der seine Dissertation über die Lehre des Creative Coding im Bereich Grafikdesign geschrieben hat hansen1. In seiner Arbeit zitiert er Mitchel Resnick, der drei Kriterien auflistet, die eine Programmiersprache für den Einstieg in Creative Coding erfüllen muss: resnick.

Niedrige Schwelle: Die Sprache ermöglicht Anfängern einen leichten Einstieg. Das Interface sollte den User nicht einschüchtern.

Hohe Decken: Die Sprache eignet sich trotz ihrer Einfachheit für die Umsetzung komplexer und anspruchsvoller Projekte.

Weite Wände: Die Sprache deckt ein breites Spektrum an Ausdrucksformen ab, eignet sich zum Erlernen vieler Prinzipien und ermöglicht Explorationen in verschiedenste Richtungen.

Die Sprache, die diese Anforderungen derzeit am besten erfüllt ist Processing processing hansen2. Die grundlegenden Prinzipien auf denen Processing aufbaut, sind inzwischen in vielen anderen Sprachen adaptiert worden. Die Software wurde in Java geschrieben, doch inzwischen gibt es einige Varianten, die auf den Grundsätzen von Processing aufbauen und diese in anderen Sprachen nutzbar machen. p5.js p5js zum Beispiel basiert auf Javascript und eignet sich ideal für web-basierte, interaktive Anwendungen, wobei Processing selbst große Vorteile für das Rendering von Motion Graphics und oder die Einbindung von externer Hardware mitbringt.

Ich wünsche Dir, dass Du wie ich in dieser Woche im Wald Deinen Weg in die Welt des Creative Coding findest. Die Zeit der Einarbeitung am Anfang des Prozesses ist eine Hürde, die wirklich nicht leicht zu überwinden ist.Doch die Erfahrung, es einmal geschafft zu haben, macht Dich stärker und klüger als zuvor und wird Dich auch durch zukünftige Täler tragen. Gib dem Thema seine verdiente Chance und übe Dich in stoischer Gelassenheit. Du wirst sehen, dass sich Dir bald neue Perspektiven eröffnen.

fuchs: Valerie Fuchs ist eine deutsche Software-Entwicklerin, Aktivistin und Dozentin, die in den Niederlanden bei WeTransfer arbeitet. valerie-fuchs.com
hansen1: Die Dissertation von Stig Møller Hansen steht zum Download auf dieser Webseite bereit.
stoics1: Mark Aurel (* 26. April 121 in Rom; † 17. März 180 in Vindobona oder Sirmium) war ein römischer Kaiser und Philosoph der späten Stoa.
stoics2: Seneca (* etwa im Jahre 1 in Corduba; † 65 n. Chr. in der Nähe Roms) ist heute einer der meistgelesenen stoischen Philosophen. Bekannt wurde er auch dafür, dass er Nero, den grausamsten aller römischen Kaiser als Erzieher heranzog. Nero zwang Seneca am Ende, sich selbst zu töten.
stoics3: Epiktet (* um 50 in Hierapolis in Phrygien; † um 138 in Nikopolis in Epirus) war ein stoischer Philosoph und freigelassener Sklave.
schriefl1: Vgl. Anna Schriefl: Stoische Philosophie. ̣Eine Einführung. Ditzingen 2019, Seite 119.
aurel1: Vgl. Mark Aurel: Selbstbetrachtungen. Ditzingen 2019, Seite 7-14.
hansen2: Vgl. Stig Møller Hansen: public class Graphic_Design implements Code {//Yes, but how?}. An investigation towards bespoke Creative Coding programming courses in graphic design education. Aarhus 2019. Seite 29. Link
resnick: Vgl. M. Resnick, B. Myers, K. Nakakoji, B. Shneiderman, R. Pausch, T. Selker, M. Eisenberg: Design Principles for Tools to Support Creative Thinking. National Science Foundation workshop on Creativity Support Tools. Washington DC 2005, Seite 3, Link
fuchs1: Vgl. Valerie Fuchs auf der ITERATIONS-Konferenz, https://vimeo.com/653753236, (1. 5. 2022).
processing: Processing ist ein flexibles Software-Skizzenbuch und eine Sprache zum Erlernen des Programmierens im Kontext der bildenden Kunst. processing.org.
p5js: p5.js ist eine JavaScript-Bibliothek für Creative Coding, mit dem Fokus darauf, Coding für Künstler, Designer, Pädagogen und Anfänger zugänglich zu machen. p5js.org.