„Wie kann Programmieren am besten erlernt werden" ist eine Grundfrage unserer Industrie. Ich werde in diesem Beitrag das Lernen von Null betrachten. Diese Unterscheidung ist wichtig, da in der IT-Industrie nicht hauptsächlich der Nachwuchs lernen muss, sondern auch altgediente Veteranen.
Tatsächlich richten sich die meisten Tutorials, Guides und Vorlesungen sowie die meiste Dokumentation an erfahrene Programmierer. Sie setzen meist eine große Menge an Vorwissen voraus – was für tatsächliche Erstlinge ein großes Problem darstellt.
Ich denke, die informationstechnische Grundbildung ist erreicht, wenn ein – selbst oberflächliches – Verständnis von Programmierung und Internettechnologien mit einem guten Verständnis für Betriebssysteme und die maschinennahen Vorgänge kombiniert wird. Sobald dies erreicht ist, stehen alle Wege offen.
Dieses Phänomen der informationstechnischen Grundbildung ist vergleichbar mit dem, was in der Mathematik „mathematical maturity" genannt wird – die Grundbildung, die in den allermeisten mathematischen Fachbüchern als gegeben vorausgesetzt wird. Das Erreichen dieser Stufe wird als separates Problem betrachtet.
„Fang mit Python an" oder „Versuch mal, so eine einfache Webseite zu bauen" – die häufigsten Ratschläge. Und das ist sicherlich kein schlechter Rat! Doch diese Startpunkte sind nicht korrekt gewählt: was eine Webseite ist, was ein Browser tut, oder was „Python" sein soll, was im Programmverlauf passiert – das ist für jeden Anfänger ein Buch mit sieben Siegeln.
Zum Erringen der nötigen informationstechnischen Grundbildung hat dieser Ansatz einen großen Nachteil: er ist sehr frustrierend. Schon allein die Bereitstellung einer anständigen Toolchain führt zum Kontakt mit den Innereien eines modernen Betriebssystems. Dieser Lernpfad zeichnet sich hauptsächlich dadurch aus, dass er ohne Probleme zwischen Tür und Angel beschrieben werden kann – der Aufwand und die Frustration liegen aber ganz auf den Schultern des Neulings.
Ein anderer Ansatz ist der des klassischen Informatikstudiums. Viel Augenmerk wird auf die Entwicklung gesetzt: ein Kurs zu Datenbanken hat nicht nur den Anspruch, Studenten zur Nutzung einer bestimmten Datenbank zu befähigen, sondern oft auch zum Design derselben.
Dies ist sicherlich eine gute Methode für die Ausbildung von Wissenschaftlern und Spezialisten. Allerdings arbeiten die allermeisten Programmierer in ihrer ganzen Karriere nicht direkt an einem Datenbanksystem – sie nutzen nur die vorhandenen Systeme.
Dies war im Übrigen früher anders! Noch in den Siebzigern wurde für jede neue Generation von Computern nicht nur ein neues Betriebssystem, sondern sogar ein neuer Befehlssatz verwendet. Ich denke, dieser Ansatz ist heute nicht mehr auf die Anforderungen der allermeisten Programmierer zugeschnitten.
Der dritte häufig verwendete Ansatz ist die Verwendung von typischen Tutorials, Grundvorlesungen und Ähnlichem. Berühmt ist mittlerweile der CS50-Kurs der Harvard-Universität. Der Ansatz hier ist oft, einen Überblick über verschiedenste Aspekte zu bieten.
Ich finde diese Methode grundsätzlich nicht schlecht. Allerdings denke ich, dass sie zu einer falschen Idee davon führen kann, was Kompetenz bedeutet. In einer solch kurzen Zeit kann man keine Kompetenz erreichen. In einem technologieorientierten Studiengang werden die behandelten Themen noch einmal in größerem Detail erkundet. Wenn ein solcher Kurs allerdings als Nebenfach gewählt wurde, wird dies unwahrscheinlicher.
Ich denke daher, dass sich diese Methode nur für strukturierte Ausbildungswege eignet. Die informationstechnische Grundbildung kann mit diesem High-Level-Ansatz allein nicht erreicht werden.
Diese Variante ist hauptsächlich im deutschsprachigen Raum vorhanden: die duale Ausbildung zum gelernten Fachinformatiker in den Geschmacksrichtungen Anwendungsentwicklung und Systemintegration.
Das duale Ausbildungssystem genießt international einen hervorragenden Ruf. Zwei Nachteile hat dieses System jedoch: zum einen ist der technische und methodische Stand in Ausbildungsbetrieben oft nicht auf der Höhe der Zeit, und zum anderen wirkt der zeitliche Aufwand in Kombination mit dem reduzierten Einkommen prohibitiv.
Die duale Ausbildung ist allerdings tatsächlich eine gute Option für Praktiker. Wer die Zeit und Gelegenheit hat, macht hier nichts falsch. Allerdings: Augen auf bei der Betriebswahl!
Als Letztes gibt es noch die verschiedenen „Roadmaps", die hauptsächlich dem Selbststudium dienen. Die Idee: es gibt sehr viele gute Artikel, Videos, Bücher und Kurse zu Einzelthemen – und es kann ein guter Ansatz sein, in einer Roadmap einen eigenen großen Kurs aus den Einzelfeldern zusammenzustellen, wenn denn die Reihenfolge stimmt.
Die bekannteste Sammlung von Roadmaps: Developer Roadmap. Bei näherer Betrachtung fallen allerdings direkt große Lücken auf, besonders bei den ersten Schritten.
Diese Roadmaps sind durchaus geeignet, um nach Erwerb der informationstechnischen Grundbildung eine Anleitung zu den Anforderungen einer beruflichen Praxis zu geben. Direkt mit ihnen anzufangen ist aber wahrscheinlich eine recht frustrierende Erfahrung.
Meine zentrale These: ein optimaler Lehrplan muss so aufgebaut sein, dass kein Element eingeführt wird, dessen Bestandteile nicht bereits bekannt sind, und sollte dadurch auch möglichst kein Vorwissen voraussetzen.
Mein Vorschlag: Beginnen Sie mit dem Buch „But How Do It Know?". Es ist aus gutem Grund ein Standardwerk: ohne technisches Vorwissen anzunehmen, zeigt es Schritt für Schritt den Bau eines funktionsfähigen Computers, komplett mit ALU, RAM und I/O-Bus.
Im Anschluss daran muss das nächste Ziel sein, ein Verständnis für den modernen Computer und dessen Betriebssystem aufzubauen. Meiner Ansicht nach sollte hier eine simple Linux-Distribution als Grundlage dienen, da Linux im Backend- und Serverbereich dominant und als Open Source System vollständig transparent ist.
Erst wenn ein moderner Computer verständlich geworden ist, kann man ihn auch kompetent verändern. Und dies ist schließlich die Essenz – sowohl der Programmierung als auch der Administration.
Und schon nach etwa ein, zwei Monaten intensiven Studiums, oder nach sechs Monaten berufsbegleitender Weiterbildung, sollte eine informationstechnische Grundbildung erreichbar sein. Die Hürde, an der die meisten scheitern, ist damit genommen – und das ganz ohne den Frust und den Schmerz, den dieser Prozess für die meisten Anfänger bedeutet.
Vereinbaren Sie ein kostenfreies Erstgespräch. Kein Overhead, kein Verkaufsgespräch – nur echter Mehrwert.