www.cleverkmu.com

Programmieren lernen für Anfänger

Wie man programmieren lernt? Programmieren als Handwerk. Theorie und Praxis in Abwechslung, um Gelerntes zu festigen. Mehr als 20 Jahre Erfahrung aus der Unterrichtspraxis.

Wie lernt man programmieren?

Diese Frage wird so oder ähnlich in meinen Kursen immer wieder gestellt. Meine Antwort lautet jeweils, indem man es einfach tut. Das hören die meisten Menschen gar nicht gerne, da sie annehmen beim Programmieren geht es um Genialität oder magische Kräfte. Die Wahrheit ist viel simpler, Programmieren ist so ähnlich wie Kochen oder Skifahren! Oft werde ich erstaunt angeschaut und es wird an meiner Seriosität gezweifelt. Nun ja, ich unterrichte seit 20 Jahren an diversen privaten und öffentlichen Schulen, und auch in Firmenkursen, «Programmieren» und da habe ich viele Methoden und Konzepte ausprobiert, wie Programmieren am einfachsten unterrichtet und erlernt wird. Diese Methoden und Konzepte möchte ich dir etwas näher vorstellen und gleich anwenden.

Ausrüstung

Du benötigst einen Desktop Computer oder einen Laptop mit einem Bildschirm von mindestens 14 Zoll (ca. 36 cm), kleiner ist für Anfänger nicht zu empfehlen. Zu Beginn die Texte bzw. der Code schön gross dargestellt werden, damit der Code und allfällige Fehler auch leichter zu finden sind.

Auf dem Computer oder Laptop musst du Autorenrechte haben, also keinen Firmenrechner, den du für deine privaten Experimente nutzt.

Installation und Konfiguration des Computers

Die höchste Hürde am Anfang ist immer, welche Installationen und Tools verwendet werden müssen. Bis alles richtig konfiguriert ist, kann es etwas dauern. Leider ist dieses Konfigurieren überhaupt nicht fehlertolerant, sondern die Anweisungen müssen präzise in der vorgegebenen Reihenfolge befolgt werden. Schon hier gibt es manche Hürden, die bewältigt werden müssen. Das verlangte Vorgehen ist nicht jedermanns Sache und schon zu diesem Zeitpunkt zeigt sich, wer sich an Anweisungen halten kann und wer eben nicht. An dieser Stelle verzweifeln einige Anfänger oder überspringen diesen Teil der Vorbereitungsarbeiten oder verschieben dieses Einrichten auf später, öfter wie es zu erwartet wäre, werfen bereits jetzt erste Teilnehmer die Flinte ins Korn.

Erstes Programm schreiben

Ist die Installation geschafft, wird das obligate «Hallo, Welt!» Programm programmiert. Ein implizierter Test, ob du alles korrekt installiert und konfiguriert hast.

print("Hallo, Welt!")

Ein schöner Moment, wenn zum 1. Mal ein Text wie «Hallo, Welt!» auf der Konsole ausgegeben wird.

Konsole Ausgabe «Hallo, Welt!»
Konsole Ausgabe «Hallo, Welt!»

Wenn das geklappt hat, gilt: «Freude herrscht».  

Einstieg ins Programmieren lernen

Die Lust auf Mehr ist entfacht, nun müssen die einzelnen Bausteine erlernt werden. Dabei genügt es auf keinen Fall, nur den Ausführungen des Coaches, Dozenten oder Video zuzuhören. Jede Aufgabe, jedes Beispiel muss von Hand eigenständig abgetippt werden – ja abtippen – auf keinen Fall einfach nur kopieren, in den Editor einfügen, abspeichern und laufen lassen! Warum den, das mag sich der Leser fragen? Ganz einfach, Programmieren ist ein Handwerk! Im Wort Handwerk steckt das Wort Hand und ihre Hand soll eben mitlernen. Klingt merkwürdig, aber meine über 20-jährige Erfahrung im Unterrichten von Programmiersprachen beweist mir den Nutzen des Abtippens. Natürlich richtet sich dieser Tipp nur an absolute Anfänger, sobald du schon eine Programmsprache beherrschst, ist dieser Lerneffekt bereits geschehen. Weiter lernst du die genau Syntax zu lesen und zu schreiben. Viele bekannte Programmiersprachen verwenden Zeichen, die im gewöhnlichen Büroalltag kaum verwendet werden und ein kleiner Fehler genügt schon, dass das Programm nicht mehr funktioniert. Die Fehlersuche ist zu Beginn recht schwierig, es geht um pingelige Details, die grossen Einfluss auf das ganze Programm haben. Wenn ein solcher Fehler auch beim x-ten Mal genausten Durchsehen einfach entdeckt wird, dann ist es Zeit für eine Pause. Nach der Pause setzt man sich hin, wirft einen Blick und entdeckt den Fehler sofort und fragt sich selbst, wie konnte man das vorher nur übersehen. Falls dies nicht klappt, erkläre dein Programm einem Kollegen. Während des Erklärens entdeckt der Fragesteller selbst, was das Problem ist. Die meisten Neulinge sind etwas beschämt, aber es ist ein guter Trick, den auch Profis einsetzen. Das Erklären des Codes zwingt zur Artikulierung und Benennung des Problems. Währenddessen wird das ganze Problem nochmals anders wiedergegeben und dieser kleine Schritt verhilft dem Gehirn, die Arbeit nochmals mit neuen Augen anzusehen. In meiner Praxis läuft dies wie folgt ab: Ich werde zu einem Arbeitsplatz gerufen, kaum stehe ich daneben, entdeckt der Fragesteller die Ursache des Problems und kann es selbst lösen. In ganzen speziellen Fällen reicht schon, wenn ich einen Schritt auf den Fragesteller zugehe.

Fehlersuche

Die Fehlersuche ist die Königsdisziplin beim Programmieren. Das bedeutet gleichzeitig, dass man den Biss mitbringen muss, Fehler zu sehen, eingestehen und zu korrigieren. Niemand schreibt ein Programm von der 1. Zeile bis zur letzten Zeile fehlerlos in einem Durchgang und mag es noch so klein sein. Es ist immer möglich, etwas falsch zu machen. Mit dieser Denkweise ausgerüstet, kann nun Programmieren erlernt werden.

Einstieg in die Details des Programmierens

Nach dem Hallo Welt Programm, werden jetzt die einzelnen Bausteine unterrichtet, in der Regel mit einer sehr kurzen Einführung in die Theorie bzw. Syntax und anhand eines kleinen Beispieles die praktische Anwendung aufgezeigt. Anschliessend folgt eine Programmieraufgabe, in der das frisch gelernte angewendet wird. Mit jedem weiteren Baustein wird es immer aufwendiger und komplexer. Wer sich keine Pausen gönnt, wird zwangsläufig vollkommen erschöpft sein und kaum mehr den Stoff aufnehmen können, zwar mag die Theorie noch verständlich sein, aber bei der praktischen Umsetzung hapert es heftig.

Deshalb gilt maximal 2 × 3 Stunden lernen und üben, mehr geht einfach nicht, darüber hinaus lässt die Konzentration zu sehr nach.

Ob der Stoff verinnerlicht wurde, zeigt sich, sobald verschiedene alte Bausteine neu miteinander zu einer neuen Lösung verknüpft, angepasst und vermischt werden müssen. Erst wenn die Bausteine pragmatisch verwendet werden können, adaptiert auf das neue Problem, dann hat man den Stoff vollkommen aufgenommen. Programmierer, die an diesem Problem vorerst noch scheitern, werden von Coaches mit Musterlösungen versorgt. Leider sind diese Musterlösungen eigentlich eine Lernbehinderung und verhilft dem Coach ein ruhiges Gewissen. Das Sprichwort frei nach Konfuzius: Lerne jemanden fischen und schenke ihm keinen Fisch.

Musterlösung bei der Programmierung?

Die Musterlösung verhindert die eigene Kreativität. Sobald die Lösung bekannt ist, schränkt der Coach alternative Lösungen ein. Du lernst anhand der Lösung nur, wie es der Coach machen würde, aber es zeigt dir nicht, welche andere Lösung es gäbe. Ein kleines Beispiel: Die Zahlen 5 und 3 sind zu addieren. Wir erwarten das Resultat 8. Ein Programmierer rechnet 5 + 3 = 8, der andere 3 + 5 = 8, beide erhalten das gleiche korrekte Ergebnis. Wenn der Coach also 5 + 3 = 8 als Musterlösung vorgibt, kann es gut sein, dass du diese Lösung niemals gesehen oder entdeckt hättest, aber 3 + 5 = 8, wäre auch korrekt und diese vermeintliche Lösung siehst du sogar als nicht korrekt an. Beim Programmieren ist es oftmals so, dass nicht nur 2 Wege, sondern n-Wege zum korrekten Resultat führen. Auch in Büchern werden mangels Interaktivität Musterlösung zur Verfügung gestellt, deshalb ist das Lernen aus Büchern ineffektiv, weil die Versuchung, die Lösung zu spicken, zu hoch ist.

Grosse oder unlösbare Programmieraufgaben

Wie soll eine grosse oder unlösbare Programmieraufgabe angegangen werden? Ab einem bestimmten Zeitpunkt kommt der Moment, in der du die Lösung nicht schon bei der Aufgabe erahnst oder den genauen Weg kennst. Daher ist es sinnvoll, diese Aufgaben, solange zu verkleinern, bis du eine Einheit des Problems separat lösen kannst, die ganz bestimmt ein Teil der Lösung ist. Mit einem Bild beschrieben: Wenn du ein Auto bauen sollst, dann bricht das Problem herunter, bist du vielleicht den Motorblock, die Bremse, das Steuerrad programmieren kannst. Diese Bauteile oder in der Fachsprache Komponenten sind dir nützlich, um die Komplexität zu vereinfachen. Bei einigen Programmieren kann eine schwierige Aufgabe zur Überforderung führen und meinen gar nichts mehr zu können. Deshalb hat es sich bewährt, solche Aufgaben vorab zu analysieren und danach in bekannte und unbekannte Einheiten aufzuteilen. Einfacher ist der Bottom-Up-Ansatz, vereinfacht das Lego-Prinzip anwenden, vom Kleinen bis zum Grossen planen und umsetzen. Diese einzelnen Bauteile lassen sich übersichtlich erstellen und mit Fortschreiten der erstellten Bauteile, wird die Lücke oder unbekannte Einheit viel einfacher und überschaubarer. Natürlich kannst auch du den Topdown-Ansatz wählen, dann gehst du vom ganzen Konstrukt aus, Stufe um Stufe Richtung Details vorwärts. Beide Ansätze helfen zur Klarheit und sind ein Weg, ein Problem zu verkleinern und stufenweise zu lösen.  

Die Kunst des Fragens

Syntax Fragen

Im Internet findest du fast jede Lösung, zumindest wenn es sich um Programmierung dreht. Geht es um die Syntax einer Programmiersprache, so reicht ein kurze Google Suche mit der Angabe der Programmiersprache und dem entsprechenden Schlüsselwort.  Beispiel:

python String

So bekommst du viele Antworten auf Google angezeigt. Diese Art von Fragen wirst du im Verlaufe des Lernens immer wieder anwenden, wobei du stetig auf neue höhere Niveau vorstösst.

Teillösung oder kein Rad neu erfinden

Gewisse Teile einer Programmieraufgabe sind so elementar, da lohnt es bestimmt im Netz zu schauen, ob es nicht schon ähnlich gelöst worden ist. In der Regel suchst du auf Englisch mit den entsprechenden Fachbegriffen dazu. Beispiel:

python check zip code

Wie Postleitzahlen überprüft werden müssen, ist schon lange bekannt. Selbstverständlich sind auch bereits andere Standardprobleme von anderen Programmieren gelöst worden. Deshalb lohnt sich eine kurze Suche. In der Regel findest du eine Lösung und lernst nebenbei fremden Code zu lesen und verstehen. Vielleicht musst du die Lösungen auch zwei Antworten zusammen konstruieren, dennoch bist du damit viel schneller, als wenn du alles selbst erfinden würdest. Allerdings darf die Suche nicht unendlich lange gehen, sollte sich keine Lösung bzw. Teillösungen finden lassen, wird es eben selbst programmiert.

Knacknüsse

Gelegentlich gibt es richtige Knacknüsse, die können in Foren platziert werden. Allerdings ist niemand verpflichtet, diese Fragen auch zu beantworten. Wenn der Frager höflich sein Anliegen formuliert, wird meistens geholfen.

Fazit: Programmieren lernen ist gar nicht schwierig. Wer genügend Zeit mitbringt und die jeweiligen Hürden überspringt, etabliert für sich eine Erfolgsschleife und auf diesem Weg geht es zur Meisterschaft. Die Mischung mit Biss und Zeit schafft fast jede Hürde, kommt noch etwas Talent dazu, wird es zum Kinderspiel. Selbstverständlich habe ich nur an der Oberfläche gekratzt, wie man programmieren lernt. Befolgst du die oben genannten Methoden, kannst du rasch zu messbaren Ergebnissen kommen.

KMU Lösungen

Tools und Tricks für die clevere KMU

www.cleverkmu.com

Toll! Sie haben sich erfolgreich angemeldet.

Willkommen zurück! Sie haben sich erfolgreich angemeldet.

Sie haben sich erfolgreich bei www.cleverkmu.com angemeldet.

Erfolg! Überprüfen Sie Ihre E-Mail auf einen magischen Link zur Anmeldung.

Erfolg! Ihre Rechnungsdaten wurden aktualisiert.

Ihre Abrechnung wurde nicht aktualisiert.