14 Motivationstipps zum Programmieren lernen
Du willst Programmieren lernen, befolgst das online Tutorial, drückst auf run und erhältst die Antwort:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index-1 out of bounds for length 0 at MyClass.main(MyClass.java:7)
Es ist zum Haare raufen! Was ist denn schon wieder los!
Du sitzt seit Stunden vor dem Programm und verstehst diese Fehlermeldungen nicht…
Du googelst und wirst wie folgt belehrt:
oder auch:
Du verstehst Bahnhof …
Du hast doch das Lernvideo haarklein befolgt. Warum läuft’s bei denen und bei dir nicht?
Wie reagierst du?
- Noch mehr googeln?
- Weitere Lernvideos anschauen?
- Programmiersprache wechseln?
- In eine der Facebook-Gruppen posten?
- Aufgeben – du bist einfach nicht fürs Programmieren gemacht?
Schauen wir zuerst die Optionen an:
Noch mehr googeln – als Newbie ist das ein schwieriges Unterfangen. Einerseits müsstest du ja wissen, wonach googeln und andererseits müsstest du ja die Antworten einordnen und anwenden können. Und diese sind ja meistens in einer Sprache erfasst, die du als Newbie nur schwer verstehst. Siehe oben.
Es braucht schon ziemlich gute Kenntnisse, um ArrayOutOfBoundsException in Java zu erklären.
Weitere Lernvideos anschauen wird die Lage nicht verbessern – das Erlebnis wird sich immer wiederholen. Aber wahrscheinlich bist du ja schon zu dieser Erkenntnis gelangt.
Programmiersprache wechseln? Das liegt nahe. Denn als Anfänger hast du wahrscheinlich auf eine oft genannte Sprache gesetzt. Ohne zu wissen warum.
Oder du lernst programmieren für’s Studium. Und da wird die Sprache vorgegeben. Du hast keine Wahl und kannst nicht wechseln.
Die Facebook-Gruppen? Dort erhältst du Antworten von Newbies wie du selbst.
Oder von Nerds, die denselben Slang sprechen, wie auch Google.
Also: du erhältst Halbwissen oder nerdigen Slang und selten etwas Weiterführendes.
Aufgeben?
Kannst du dir das leisten?
Vielleicht – du wolltest ja sowieso nur programmieren, um das ultimative Online-Game zu entwickeln. Eins mit so richtig vielen Characters und Levels und trickreichen Regeln.
Jetzt wird halt nichts draus. Take it easy…..
===>>>> Äh – echt jetzt?*
Oder du kannst es dir überhaupt nicht leisten. Deine berufliche Zukunft hängt davon ab. Du bist am Rande der Verzweiflung.
Tipp Nr 1: Stelle die Grundsatzfrage
Wie motivierst du dich, nicht aufzugeben?
Du weißt es nicht?
Dann erforsche dich selbst: Lehn dich zurück und stell dir die folgende Frage:
“Warum will ich programmieren lernen?“
Deine Antwort auf diese Frage ist der Schlüssel zur Selbstmotivation und davon brauchst du eine ganze Menge. Gerade dann, wenn dir die Einleitung zu diesem Post bekannt vorkommt.
Halte dir deine Antwort immer vor Augen: “Ich will programmieren lernen, weil …..”
Doch vielleicht baut die Antwort zu viel Druck auf dich auf? Vermeide das , lies weiter, was du noch tun kannst.
Tipp Nr 2: Tappe nicht in diese Motivationsfalle
Sag dir ja nicht: “Ich bin halt nicht geschaffen fürs Programmieren”.
In dem Fall willst du aufgeben und suchst nach Rechtfertigungen vor dir selbst.
Sitz nicht den Ammenmärchen auf, die man übers Programmieren Lernen verbreitet.
Mehr dazu findest du im Blog Post 8 Ammenmärchen übers Programmieren Lernen.
Oder musst du gar programmieren lernen – vielleicht im Studium? Vielleicht bis du in einer Lerngruppe, in der du bestärkt wirst. Etwa so;
Einer fängt an: I”ch werde wohl nie programmieren lernen.” Der nächste fährt weiter: “Ich auch nicht, hab’s ja gleich geahnt. “
Und so geht es weiter: man wiegelt sich gegenseitig auf (oder ab) bis man gemeinsam frustriert ist und sich einigt: einigt:
“Lassen wir’s sein – gehen wir feiern.”
Tipp Nr 3: Schaffe deine Aufwärtsspirale
Ich sag’s dir gleich: wenn deine Gruppe keine Aufwärtsspirale findet, dann wechsle Lerngruppe – suche dir Kolleg:innen, die positiv eingestellt sind.
Doch als Erstes: baue eine eigene positive Einstellung auf.
Das tust du noch verstärkt, wenn du allein programmieren lernen willst und nicht vom Fleck kommst. Schauen wir uns an, was du dazu tun kannst.
Tipp Nr 4: Erkenne den Spaßfaktor
Frage 1: Wann hast du so richtig Spaß an einer Tätigkeit? So sehr, dass du am liebsten nicht damit aufhören möchtest?
Frage 2: Warum hast du so richtig Spaß an dieser Tätigkeit?
Die Antwort kennst nur du selbst – und sie ist der Kern zu deiner ganz persönlichen Selbstmotivation.
Der Mathe-Lehrer
Da erinnere ich mich an meinen Mathe-Lehrer im Gymnasium. Für ihn war die Welt nur Mathematik. Er war trotzdem ein cooler Typ.
Als wir dann endlich begriffen hatten warum ln’(x) = 1/x gilt, fragte ich ihn:
“Was wird mir diese Erkenntnis in meinem Leben nützen? Wozu ist diese ganze Mathe überhaupt gut?”
Er dachte eine Weile nach – da zeigt, wie ernst er die Frage nahm und antwortete:
“Weil es schön ist!“
Verstehst du? Für ihn war Mathe keine trockenen Formelwälzerei sondern etwas Schönes!
Tipp Nr 5: Suche nach Schönheit
Frage dich also:
Was muss passieren, damit ich sage: Programmieren ist schön!
Die Antwort wird bei jedem anders ausfallen.
- Die einen werden sich vorstellen, eine gute Note für ein Programm zu erhalten.
- Die anderen werden sich vorstellen, Superprogrammierer:in zu sein und so richtig viel Kohle zu verdienen.
- Oder du stellst dir vor, wie dein ultimatives Game entwickelt hast und deine Kollegen dir begeistert auf die Schulter klopfen.
Oder du hast eine ganz andere Vorstellung.
Merke dir deine Antwort – und stelle dir täglich vor, du hättest dein Ziel schon erreicht. Lasse dieses Super-Gefühl auf dich wirken. So kurbelst du die Aufwärtsspirale an.
Tipp Nr 6: Bleib auf dem Teppich: Geh’ kleine Schritte in Richtung: Programmieren ist schön!
Stell dir vor, wie cool folgendes ist:
Du programmierst an einem kleinen Code-Stück, du gehst in so kleinen Schritten vor, dass du jederzeit, weißt, was du tust.
UND DANN LÄUFT DEIN CODE!!!
Wie cool ist das denn!!!
Ich sag’s dir aus Erfahrung: ES IST MEGA-COOL!!
Du freust dich und strahlst wie zwei AKWs.
Du rennst zu Freund/Freundin, Partner/Partnerin, Mutter/Vater wem auch immer und verkündest mit stolzgeschwellter Brust:
“Endlich funktioniert mein Programm!!!”
Auch eine Erfahrung: Die meisten werden dich nicht überhaupt nicht verstehen! … Es sei denn, sie wissen auch, wie programmieren ist.
Doch das macht nichts: mit dem kleinen Erfolgserlebnis hast du den ersten Schritt in die Programmiererwelt geschafft. Du du bist schon denen schon viel ähnlicher als vorher.
Und dann machst du den nächsten Schritt und den nächsten und mit jedem Erfolgserlebnis macht es mehr Spaß. Doch sei gewarnt:
Dein Nicht-Programmiererumfeld wird dich nicht verstehen. Du wirst ihnen nicht das ultimative Game vorführen, sondern nur einen Mini-Mini-Mini-Baustein. Wäre dein ultimatives Game eine futuristische Stadt, dann wäre dein erstes Erfolgserlebnis nur ein Sandkorn dagegen. Überhaupt nichts Großartiges, das du vorführen könntest. Dein Umfeld wird sagen: “Ähhh ist das alles – ich sehe ja nichts…” (oder so ähnlich).
Tipp Nr 7: Freu dich am Sandkorn!
Und hol noch mehr Sandkörner. Zerlege das komplexe Aufgabe in viele kleine Schritte.
Wenn du bis hier gelesen hast, dann ist eine komplexeste Aufgabe wahrscheinlich gerade: Wie lerne ich programmieren?
Was ist denn nun der erste kleine Schritt?
Tipp Nr 8: Hör nicht auf Hollywood
Mit dem Irrglauben, dass ein Programmierer nichts anderes macht, als Code eintasten. So ähnlich wie in den Hollywood-Movies. Da wo Heldin und Held ratzfatz in ein fremdes System eindringen und wie verrückt auf die Tastatur hämmern um die Welt zu retten.
Das ist ein Hollywood-Märchen. Programmieren geht anders.
Programmieren = Algorithmus + Code
Programmieren besteht aus zwei Aspekten:
- Algorithmus entwerfen
- Code schreiben
In der Reihenfolge und nicht umgekehrt.
Wenn du schon verzweifelt versucht hast zu verstehen, was
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index-1 out of bounds for length 0 at MyClass.main(MyClass.java:7)
bedeutet, dann versuchst du, Code zu schreiben, ohne einen Algorithmus zu haben.
Tipp Nr 9: Mach’s wie Essen bestellen auf Chinesisch
Das ist so ähnlich, wie wenn du kein Chinesisch sprichst und in Shanghai auf dem Markt, im Menschengewühl ganz hungrig vor diesem Stand stehst, der diese herrlich duftenden Suppe verkauft, ein paar Wörter wiederholst, die du aus dem Wörterbuch herausgesucht hast.
Du wirst nicht verstanden:
Die Chinesen haben ein ganz anderes Sprachverständnis als wir Mitteleuropäer. Sie betonen auch ganz anders. Und da reicht es nicht, mit dem Wörterbuch, Essen zu bestellen.
Bestenfalls wirst du davon gejagt: Die chinesische Version von ArrayOutOfBoundException.
Willst du in Shanghai auf dem Markt eine einfache Suppe bestellen können, dann lernst du am besten Chinesisch. Ordentlich mit einem Lehrer. Der erklärt dir die chinesische Sprache und die chinesische Kultur.
Du lernst über Aussprache, über Umfangsformen, über passende Formulierungen und die richtige Aussprache und Betonung.
Dann wirst du wissen, wie du Shanghai auf dem Markt eine Suppe bestellst.
Übertragen auf die Programmierung: Du hast gelernt, wie du einen kleinen Algorithmus entwickelst und hast einen ersten ganz kleinen Algorithmus selbst entwickelt.
Wenn du jetzt nach Shanghai reist, auf dem Markt hungrig vor dem Marktstand stehst und auf chinesisch eine Suppe bestellst, dann ist das ähnlich, wie den Algorithmus codieren.
Damit formulierst du ihn in einer Programmiersprache.
Wenn du jetzt sogar eine Suppe erhältst, dann hast du dein Programm sogar fehlerfrei ausgeführt. Welch ein Erfolgserlebnis!
Und jetzt musst du die Suppe noch bezahlen (sonst wirst du davon gejagt): schon hast du einen weiteren Algorithmus zu entwickeln, coden, testen etc.
Jetzt sagst du vielleicht: “Ja – das mag ja so sein. Aber im moment habe ich ganz andere Sorgen” – denn:
Tipp Nr 10: Ändere die Richtung
Du verzweifelst noch immer an ArrayOutOfBoundExcepition & Co?
Dann geh einen Schritt zurück.
Ändere die Richtung:
Wir haben schon vielen geholfen, diesen ersten Schritt zu schaffen. Und gerade bei der ArrayOutOfBoundException wissen wir – da ist ein Fehler im Algorithmus. Also ein Denkfehler.
Tipp Nr 11: Finde Fehler – das alltägliche Brot der Programmierer:innen
Der Programmiereralltag besteht zu einem guten Teil darin, Fehler zu beheben.
Also: Fehler machen und Fehler beheben.
Und die ArrayOutOfBoundException ist ein solcher Fehler.
Als Programmierer:in wirst du den Fehler beheben müssen. Dazu musst du ihn zuerst finden. Es ist ein ganz fieser Fehler. Einer von denen, die du ganz allein gemacht hast.
Und so musst du ihn ganz allein finden. Dazu musst du den Algorithmus durchleuchten, den du in deiner Programmiersprache geschrieben hast. Es ist nämlich ein Fehler in deinem Algorithmus.
Und da hilft es gar nicht, zu googeln. Da bekommst du allerhöchstens Hinweise darauf, was falsch sein könnte.
Aber keine Hilfe, um den Fehler zu beheben. Gar keine Hilfe.
Du willst aufgeben?
Nicht doch: bleib dabei!
- Halte dir dein persönliches Ziel vor Augen!
- Stell dir vor, wie es sich anfühlt, dieses Ziel erreicht zu haben!
Tipp Nr 12: Halte dir dein Ziel vor Augen
Am besten schreibst du es ganz groß auf ein Blatt Papier und hängst es gut sichtbar auf.
Du kannst es auch schön gestalten, und ein Poster schaffen, das du es gerne anschaust.
Du kannst es auch als Bildschirmschoner einrichten und natürlich als Background.
Du kannst auch mehrere Versionen des Posters schaffen, und überall aufhängen. G
⇒ Glaub an dein Ziel ⇒ Glaub an deine Fähigkeit ⇒ Glaub an dich
Tipp Nr 13: Denke wie ein Programmierer
Wie also behebst du diesen Fehler oder die zahllosen, ähnlich gelagerten Fehler, mit denen als Programmierer:innen täglich zu tun haben wirst?
Am besten natürlich: Mach den Fehler gar nicht erst.
Du verdrehst die Augen?
Das ist berechtigt – denn:
⇒ Es gibt keine fehlerfreien Programme
Um diese logischen Fehler in einem Programm zu finden, brauchst du eine solide Grundlage:
Du musst in der Lage sein, einen Algorithmus zu entwickeln. Ein Algorithmus ist ein Verfahren, eine Handlungsanleitung.
Diese Fertigkeit eignest du dir an, indem du sie täglich trainierst. Immer wieder und in allen Lebenslagen.
So fängst du an, wie ein Programmierer zu denken.
Das ist die Grundvoraussetzung, um gute Programme zu schreiben und um Fehler im Programm zu finden und zu beheben.
Tipp Nr 14: Schritt 1 beim Programmieren lernen – Lerne, einfache Algorithmen entwickeln
Wichtig: Fange einfach an! Eigne dir die Denkweise aller Programmier:innen an und lerne zuerst, ganz einfache Algorithmen entwickeln.
Wie du mit Spielkarten Programmieren lernst haben wir auch beschrieben. Dort findest du auch ein kurzes Video. Doch lass dich nicht täuschen – der Algorithmus der dort gezeigt wird, wird als “einfach” eingestuft. Aber es ist überhaupt nicht einfach, ihn zu finden. Trotzdem – ein bewährtes Beispiel, um selbst aktiv zu werden.
Welche Klammer bedeutet was? [] oder{} oder () oder gar (()) ?
Cheat Sheet für Python-Anfänger: Wichtigste Python-Datentypen
Die wichtigsten Built-in-Datentypen von Python auf einen Blick. Ein unverzichtbarer Spickzettel beim Durchstarten mit Python. Einfach herunterladen.