Selbstversuch mit Codecademy: Wie es mir erging, nachdem ich einen Programmier-Kurs begann [Kolumne]
Seit Jahren trage ich den Gedanken mit mir herum, dass ich Programmieren lernen sollte. Der die digitale Revolution begleitende Diskurs sowie das berühmte Motto „Software is Eating the World“ zeigen ihre Wirkung. In erster Linie geht es mir darum, ein besseres Verständnis für Software zu erlangen. Zudem möchte ich mir nicht in 20 Jahren den Vorwurf machen, die Gelegenheit verpasst zu haben, als sie sich anbot.
Obwohl ich gewöhnlich kein Mensch bin, der in ein neues Jahr mit guten Vorsätzen startet, beschloss ich zum Jahreswechsel 2015/2016, es endlich zu versuchen. Wenige Tage später begann ich mit dem Python-Anfängerkurs bei Codecademy. Die Wahl fiel auf Python, weil die Sprache sehr populär ist und vergleichsweise einfach zu erlernen sein soll. Von Codecademy hab ich viel Gutes gehört. Der kostenfreie, browserbasierte Dienst mit Sitz in New York gilt als gute Adresse für alle, die online ihre ersten Gehversuche im Programmieren machen wollen.
Der Erfolg nach 43 Prozent
Mittlerweile steht mein Kurs-Fortschrittsbalken bei 43 Prozent. Fünf in verschiedene Teilbereiche unterteilte Einheiten absolvierte ich bisher. Gemäß der von mir an meinem Kühlschrank befestigten Liste habe ich insgesamt 14 Mal eine Python-Session durchgeführt. Meist dauern sie zwischen 20 und 40 Minuten, wobei ich als Codecademy-Nutzer natürlich selbst entscheide, wieviele Lektionen ich auf einen Schlag erledige.
Wie lief es bisher? Bin ich noch immer motiviert oder stehe ich kurz vor dem Abbruch? Eignet sich Codecademy tatsächlich dazu, als kompletter Neuling erste Schritte des Programmierens zu lernen, oder ist das nur eim leeres Versprechen? Es folgen die Antworten.
- Nach geschätzten sieben Stunden aktiver Auseinandersetzung mit dem Python-Kurs bin ich motivierter als zu Beginn. Das alleine rechne ich Codecademy hoch an. Der Dienst leistet erstklassige Arbeit darin, dem Nutzer frühzeitig kleine Erfolgsmomente zu präsentieren. Hier sehe ich eine Parallele zu der Fremdsprachen-App Duolingo, die eine ähnliche Philosophie verfolgt: Lernende verlieren am ehesten dann nicht die Lust, wenn sie schon nach kurzer Zeit den Eindruck bekommen, dass sie Fortschritte machen.
- Codecademy beherrscht diesen Kniff so gut, dass ich mich während der Übungen phasenweise sogar gefragt habe, ob ich vielleicht ein verstecktes Programmier-Naturtalent sei. Mir ist die Vermessenheit eines solchen Gedankens bewusst und er verflog dann auch so schnell, wie er gekommen war.
- Was mir an dem Kurs am meisten Freude bereitet, ist das Lösen eines scheinbar nicht lösbaren Problems. Das kennen sicher alle Software-Entwickler, ungeachtet ihres Senioritätslevels: Der geschriebene Code scheint völlig richtig zu sein, dennoch produziert das Programm eine Fehlermeldung. Man merkt, wie man immer frustrierter wird. Dann setzt man sich am nächsten Tag erneut an das Problem und urplötzlich hat man den goldenen Einfall. Die Erkenntnis, wie enorm sich eine Denk- und Programmier-Pause positiv auf das Ergebnis auswirken kann, ist so verblüffend wie lehrreich.
- Ich nähere mich mittlerweile der „Halbzeit“ des Kurses an und merke, wie die Aufgaben nun immer herausfordernder werden. Die notwendigen Handgriffe sind nicht mehr so detailliert erläutert und mehrfach war ich gezwungen, eine Suchmaschine zu bemühen. Trotzdem versuche ich mir den Ehrgeiz zu erhalten, aus eigener Kraft die Lösung zu finden.
- Ich habe den Eindruck, dass mir vorhandenes, rudimentäres Vorwissen zu Webtechnologien, HTML und WordPress beim Verständnis hilft. Wer ohne jede nennenswerte Web- und IT-Affinität einen Programmierkurs beginnt, hat es wahrscheinlich etwas schwerer.
- Mit jeder Übungseinheit wächst meine Ehrfurcht vor professionellen Software-Entwicklern. Denn auch wenn die ersten Schritte recht harmlos wirken, entwickelt sich parallel eine ganz neue Ahnung von der schier unbeschreibbaren Komplexität der Software, die heute unser Leben bestimmt. Die Einsicht, dass all diese Software von Menschen erschaffen wurde, holt mich trotz aller euphorischer Erfolgsmomente auf den Boden der Tatsachen zurück.
Weiter geht’s mit den zweiten 50 Prozent
Ich habe mir fest vorgenommen, den Kurs komplett abzuschließen. Allerdings ist schon absehbar, dass die zweiten 50 Prozent weitaus mehr Zeit in Anspruch nehmen werden. Ich hoffe innerlich, dass die Aufgaben nicht so kompliziert werden, dass am Ende doch meine Motivation leidet.
Allen, die ebenfalls erste Programmiererfahrung sammeln wollen, ohne eine konkrete Sprache vor Augen zu haben, kann ich den Python-Kurs nur empfehlen. Ich halte ihn für eine ausgezeichnete Maßnahme, um die verbreitete selbstkritische Annahme aus dem Weg zu räumen, dass man einfach nicht der Typ oder die Typin fürs Programmieren sei. Damit das klappt, muss man allerdings eines mitbringen: den Wille zu wachsen.
Hallo Martin Weigert,
in Bezug auf ‚interaktiv‘ (in Python) programmieren lernen schauen Sie sich bitte einmal DIE (Online-)Ressource https://www.python.org an !
Außerdem empfehle ich ihnen zusätzlich ein entsprechendes (Fach-)Buch z. B. aus dem Rheinwerk Verlag (ehemals Galileo Press).
Mit dem Lernen von Programmiersprachen verhält es sich ähnlich wie mit dem Erlernen einer ’natürlichen‘ Sprache – aller Anfang ist leicht … !
Zeit, Ausdauer und Motivation sind sehr wichtig … !
Abstrakte Logiken versteht nicht jeder gleichermaßen gut.
Ciao, Sascha.
Ich denke die jeweilige Motivation und der Erfolg hängt auch immer stark von der eigenen Person oder dem inneren Schweinehund ab. Ich persönlich habe mir angwöhnt, bereits seit Jahren, jede Woche immer zumindest 2-4 Stunden oder gar mehr, an Trainings reinzuziehen. Auch wenn ich eher in Richtung HTML, CSS, WordPress, Javascript, PHP, Adobe (querbet alle Programme) tendiere.
Bisher kenne ich Codeacademy nur durchs antesten, kann aber aus Erfahrung behaupten, dass die anderen Dienstleister wie z.B. video2brain, lynda.com und teamtreehouse auch alle sehr gut sind aber auch jeder so seine Vor- und Nachteile hat und sein eigenes Konzept verfolgt.
Am längsten bin ich bereits bei lynda.com abonniert und sehr zufrieden, da mich die englischen Videos nicht stören und die Vielfalt groß ist. Für WordPress und Auszeichnungssprachen ist teamtreehouse durch Mischung aus Videos, Codechallenges und Quizfragen sehr angenehm. video2brain hat tolle Programm-Trainings die immer etwas qualitativer und praxisorientierter sind als bei den Anderen (hier speziell die deutschen Videos).
Danke für den Beitrag! Codeacademy kommt auch auf meine Liste, zumal die anderen Anbieter kostenpflichtig sind und 2-3 Abo’s doch monatlich ins Geld schlagen!
„Zudem möchte ich nicht in 20 Jahren meinem 32-jährigen Ich den Vorwurf machen, die Gelegenheit verpasst zu haben, als sie sich anbot.“
Du bist 12?
In 20 Jahren seinem 32 jährigen Ich den Vorwurf machen… Sprich er ist jetzt 32 und in 20 Jahren 52, bedeutet also das er sich mich 52 nicht ärgern möchte bzw. seinem 32 Jährigem Ich nicht den Vorwurf machen möchte dies nicht getan zu haben.
So wird es bestimmt gemeint gewesen sein. Interpretationsspielraum ist dennoch gegeben.
Vorschlag:
Zudem möchte ich nicht in 20 Jahren meinem heutigen 32-jährigen Ich den Vorwurf machen, die Gelegenheit verpasst zu haben, als sie sich anbot.
Hallo Ruke,
diese Textpassage las ich auch und wunder(t)e mich ebenso wie Sie, machte allerdings nicht darauf aufmerksam um zu vermeiden ggf. wieder wegen nix (von irgendwem) angefeindet zu werden.
Naja, es muss sich wohl um einen Tippfehler handeln – so wortgewandt ist bestimmt kein 12-jähriger.
Ciao, Sascha.
Hallo Jones,
scheinbar wird’s so gemeint gewesen sein – trotzdem mich verwirrt(e) es.
Egal.
Ciao, Sascha.
@ Sascha und Yves
Danke für die Tipps, dann weiß ich wo ich schauen kann wenn ich mit Codecademy durch bin (falls ich es bis zu diesem Punkt schaffe :))
Die besagte Textpassage war verwirrend, sehe ich nun auch. Hab’s geändert.
Wenn ich es richtig verstehe, dann ist Python so eine Art Propädeutik zu den „richtigen“ Programmiersprachen. Ich habe zwar Kenntnisse in HTML, CSS und WordPress aber damit komme ich in Javascript nicht weit. Ich werde auch mal den Kurs bei Codeacademy ausprobieren und sehen, ob mich das irgendwie weiterbringt.
Hallo Hans,
Hacker / Cracker nutzen Python (u. a.); Python ‚zwingt‘ den Programmierer aufgrund seiner simplifizierten Syntax zu (vordefinierten) strukturierten ‚Einrückungen‘ (Formatierungen) des Quellcodes – wodurch dieser gut lesbar / nachvollziehbar ist / bleibt.
Auch deshalb ist Python ‚relativ‘ einfach zu erlernen … !
Zeitkritische Anwendungen werden (z. B.) in C geschrieben, denn C-Code muss nicht erst zur Laufzeit interpretiert und in Maschinencode konvertiert werden – besagter Code muss zuvor vom Programmierer entsprechend kompiliert werden.
Python ist aber eine sog. Skriptsprache, Programme müssen nicht vom Programmierer zuvor kompiliert werden, sie werden vom Interpreter zur Laufzeit in Maschinencode konvertiert !
Ein Fehler im Code ist somit schnell ausfindig zu machen im – Gegensatz zu Sprachen wie C.
Sofern man nicht gerade grafisch aufwendige und zeitkritische PC-Spiele resp. Anwendungen entwickeln möchte welche nahezu in Echtzeit reagieren sollen sind Sie mit Python gut beraten.
Einfache, grafische Spiele lassen sich aber überdies auch sehr gut mit PyGame entwickeln.
(Web-)Browserspiele z. B. wiederum mit JavaScript …; jede Sprache hat seine Vorzüge.
Lua ist beispielsweise eine sog. Glue-Language – quasi der Klebstoff der zwei Programme welche in unterschiedlichen Sprachen geschrieben worden sind miteinander kompatibel zu einem Programm verbinden kann.
Ciao, Sascha.
Python rockt :) Die Sprache zu lernen lohnt. Es ist eben nicht nur eine Skriptsprache. Es gibt einen ganzen Kosmos an professionellen und etablierten Standard-Erweiterungen rund um Python.
Das sind zum Beispiel: Schnittstellen/Erweiterungen zu TKinter und QT. Mit diesen ist auch als Anfänger einfach GUIs zu erstellen. Mit PyIntstaller (http://www.pyinstaller.org/) lassen sich relativ einfach ausführbare Programme für unterschiedliche Betriebssysteme erstellen und mit cython (https://github.com/cython/cython) gibt es ein python-to-C Compiler. Die Erweiterung numpy macht zudem Anwendungen, die auf der Tabellenkalkulation aus Redmond beruhen, Konkurrenz.
Python-Programme gibt es in vielen Bereichen: Realtime-Anwendungen, Hochverfügbarkeitsanwendungen und Scientific Computing.
Eine kleine Übersicht: https://www.python.org/about/success/
Programmieren auf unterer Ebene ist schon sehr anspruchsvoll. Ich habe mich mal an einen Zweipaß-Compiler gewagt, aber dann bei der rekursiven Programmierung das Vorhaben eingestellt. Vom vollmundigen Versprechen in der damaligen DOS-Zeitschrift blieb davon nicht viel übrig. Ich lerne derzeit mehr auf dem Gebiet der Systemdynamik und versuche mich als Magier durch dieses Gebiet durchzuwurschteln. An einer Uni kann man das Gebiet wahrscheinlich schneller lernen. So bleibt es halt mehr Versuch und Irrtum, wogegen ausgebildete Systemdynamiker nicht gefeit sein werden. Komplexe Umwelt erfordert komplexe Verhaltensweisen: Das ist so ähnlich wie das ein erfolgreicher Trainer beim Fußball anstellt. Der kann auch nicht während des Spiels unmittelbar ins Geschehen eingreiffen, sondern muß sich sein eigenes Modell für überlegene Spielzeuge geistig überdenken.