Was die Leute wirklich meinen, wenn sie sagen „Ich will programmieren lernen“

Es gibt zwei wichtige Dinge, die man über das Programmieren lernen wissen sollte:

  1. Die meisten Menschen wollen gar nicht „programmieren lernen“
  2. Programmieren lernen bedeutet nicht mehr das Gleiche

Es ist wichtig, diese beiden Dinge zu wissen, denn sonst ist die Art und Weise, wie wir den Menschen das Programmieren beibringen, falsch, und die Menschen werden es nicht lernen.

Den ersten Punkt habe ich immer wieder gesehen. Leute, die mir sagen, dass sie programmieren lernen wollen, fangen dann an zu lernen und denken, dass es verdammt langweilig ist.

Ich nenne das den Programmierfehlschluss. Die Leute denken, dass sie programmieren lernen wollen, aber in Wirklichkeit wollen sie ein Produkt entwickeln.

Wenn wir darüber nachdenken, sollte das ziemlich offensichtlich sein. Code-Kenntnisse an sich sind nicht wertvoll, wenn man nichts damit anfangen kann. Für die meisten Menschen ist die größte Motivation, das Programmieren zu lernen, etwas zu bauen (auch wenn ein besser bezahlter Job an zweiter Stelle steht).

Das bringt mich zu Punkt Nummer zwei. Programmieren lernen bedeutet nicht mehr dasselbe.

Früher musste man fast alles über Computer wissen, um programmieren zu können (daher der Begriff „Informatik“). Dann wurden die Dinge so weit abstrahiert, dass man sich mit bestimmten Themen nicht mehr befassen musste, es sei denn, man brauchte sie wirklich. Als Webanwendungsentwickler muss ich heute zum Beispiel sehr wenig über Systemadministration wissen, weil das größtenteils von Tools wie Heroku und Amazon Web Services für mich erledigt wird.

Wenn die Leute also sagen, dass sie lernen wollen, wie man programmiert, fangen die meisten Lehrer dort an, wo sie vermuten, dass sie es tun sollten (wo sie es schon immer getan haben), nämlich bei den Datentypen und den verschiedenen Strukturen einer Sprache, und helfen den Schülern, ein tieferes Verständnis für Computer zu entwickeln.

Das Problem ist, dass die Leute das nicht wollen. Sie wollen etwas bauen. Und wir sollten nicht länger davon ausgehen, dass man alles über Computer oder sogar Programmierung im Allgemeinen lernen muss, um etwas zu bauen.

Wenn zum Beispiel jemand bereits mit einem großartigen Backend-Entwickler zusammenarbeitet, wäre es sinnvoll, ihm nur das Frontend beizubringen, denn das wird für ihn am nützlichsten sein. Sie werden das Gewünschte schneller erreichen und können das Back-End zu einem späteren Zeitpunkt erlernen. Auf diese Weise reduzieren wir die kognitive Belastung des Schülers und ermöglichen ihm, schneller zu lernen.

Wenn man für das Web entwickelt, muss man sich speziell mit folgendem befassen:

  • HTML
  • CSS
  • JavaScript
  • Back-End-Programmierung
  • Datenbanken
  • Hosting/DNS

Hier gibt es eine Menge zu lernen. Und das meiste davon ist ziemlich irrelevant für die Nicht-Web-Entwicklung (außer Datenbanken und Anwendungsstruktur natürlich).

So wie ich es sehe, beinhaltet die meiste Programmierausbildung einen Köder und einen Wechsel. Es geht so:

Student: „Ich möchte lernen, wie man programmiert.“ (Aber was sie wirklich wollen – aber nicht genug wissen, um zu fragen – ist, dass ich eine Web- oder Mobilanwendung erstellen will.)

Lehrer: „Okay, fangen wir mit Datentypen an.“

Schüler: „…“

(2 Wochen später)

Lehrer: „Jetzt können wir effiziente Algorithmen entwerfen.“

Schüler: „Aber ich wollte doch nur eine coole Website machen!“

Als Lehrer müssen wir erkennen, dass die Leute, die sagen, dass sie programmieren lernen wollen, oft wirklich meinen, dass sie eine Web- oder Mobilanwendung erstellen wollen.

Das liegt daran, dass für sie Programmieren das ist, was es ist. Das ist alles, was sie je über Programmieren gelernt haben. Das Problem ist, dass sie nicht wissen, wie sie danach fragen sollen! Wir sollten also nicht einfach alles, was sie sagen, für bare Münze nehmen. Es ist unsere Aufgabe als Erzieher, zwischen den Zeilen zu lesen.

Ich erinnere mich, dass ich vor ein paar Jahren ein Theaterstück gesehen habe, in dem ein Priester sagt, dass man auch unter schwierigen Umständen die Wahrheit sagen muss. Die Person, mit der er spricht, fragt: „Aber was ist, wenn dir jemand eine Frage stellt und du weißt, dass die Wahrheit ihn verletzen wird?“ Der Priester antwortet: „Wenn dir jemand eine Frage stellt, dann antworte auf die Frage, die er WIRKLICH stellt.“

Auch in der Erziehung muss man zwischen den Zeilen lesen, um herauszufinden, was die Leute wirklich wollen. Wenn sie etwas Bestimmtes fragen, muss man die Person zu dem führen, was sie zu ihrer idealen Lernerfahrung führt.“

Es liegt also an uns als Pädagogen und Experten, die Menschen in die richtige Richtung zu führen und sie nicht einfach zappeln zu lassen. Wenn wir das können, dann können wir viel mehr Menschen befähigen, erstaunliche Dinge zu tun.

Als Student: Lerne, was du lernen willst.

Eines der besten Dinge, die du in deinen eigenen Lernabenteuern tun kannst, ist, ein wenig über viele Dinge zu lernen – damit du weißt, in was du später tiefer eintauchen willst.

Wenn wir bei One Month sagen, dass man „in 30 Tagen programmieren lernen“ kann, dann meinen wir damit, dass man in nur 30 Tagen so viel HTML (JavaScript oder Python) lernen kann, dass man sich mit dem Code gut auskennt und selbstbewusst genug ist, um sich auf dem Arbeitsmarkt zu behaupten.

Wie lange dauert es also, programmieren zu lernen?

Wir heißen „One Month“, bedeutet das, dass unsere Schüler nach 30 Tagen mit dem Programmieren fertig sind? Ganz und gar nicht! Ich programmiere seit über 15 Jahren, und es gibt immer noch so viele Dinge, die ich nicht weiß – aber das ist nicht der Punkt. Beim „Programmieren lernen“ geht es nicht darum, jede einzelne Sache in der Sprache zu kennen. Es geht darum, genug zu wissen, um sich unterhalten zu können und der Welt mit seinem Verstand und seinen kreativen Fähigkeiten einen Stempel aufzudrücken.