Rolf b: Strukturierte Programmierung

Beitrag lesen

Wenn nur 4 Wochen zur Verfügung stehen, würde ich auf die Einführung verzichten. Auf diese Weise produziert man keine IT-Fachleute, sondern eine Gruppe verwirrter Menschen, die vielleicht etwas Tuten können, aber noch lange keinen Marsch blasen.

Zu meiner Ausbildungszeit 1986 stand ebenfalls "Strukturierte Programmierung" auf dem Lehrplan. Wir wurden in dem Zusammenhang mit COBOL konfrontiert und lernten Strukturierte Programmierung nach Michael Jackson (nein, nicht der aus Neverland). Nach 6 Wochen, in denen wir nichts anderes gemacht haben, konnten einige von uns (die, die Programmiervorkenntnisse hatten) halbwegs melodiös tuten, einige (unbelastet von Vorkenntnissen jeder Art) produzierten aber immer noch nur schrilles Gequietsche bzw. fragten, wie man die IF-Schleife richtig schreibt...

Wenn jemand GANZ NEU einsteigt, sind unglaublich viele Hürden zu überwinden. Die verwendete Programmiersprache ist dabei nur ein winzigkleiner Teil. Für deren Auswahl wäre es wichtig zu wissen was die so "ausgebildeten" Leute später tun sollen.

  • Verstehen eines Computers über den Aufruf von Solitär und Browser hinaus, sprich: Was sind Ordner, Dateien, Executables. Für viele ist das komplett fremd.
  • Bedienen einer IDE
  • Lernen der Syntax einer Programmiersprache und Verstehen von Konzepten wie "Literal", "Variable", "Ausdruck", "Scope", "Parameter vs Argument", "Callstack", und vieles mehr
  • Verstehen von Konzepten wie "Datei", "Dateiformat", ggf. Datenbank und Abfragesprache
  • Lernen von Konzepten wie "Sequenz, Iteration, Selektion" - sprich: Strukturierte Programmierung - und das Verstehen, wie man fachliche Anforderungen damit abbildet
  • Verstehen, was da eigentlich abgeht wenn man RUN drückt und grundsätzliches Begreifen, was man mit einem Debugger anfangen kann
  • Verstehen des Umfeldes, in dem das zu schreibende Programm läuft, und wie man damit kommuniziert (sprich: Script auf der Befehlszeile, GUI-Programm, Classic-Web, Web 2.0, RIA, Service, oder oder oder).
  • An Themen wie OOP und die daraus resultierenden Katastrophen (SOLID, Clean Code, IoC) oder Funktionale Programmierung will ich ja gar nicht erst denken.

Es gibt so etwas wie eine Kompetenz-Skala. Beginnt mit unbewusster Inkompetenz - das sind die, die nicht mal wissen wovon sie keine Ahnung haben und darum gar nicht verstehen können, wie weit ihnen der Experte voraus ist. Dann die bewusste Inkompetenz, die haben immerhin etwas verstanden und die Klippen der Lernkurve erkannt. Dann die bewusste Kompetenz, da hast Du eine Menge gelernt, weißt, dass Du viel weißt und was Du alles noch nicht weißt. Und schließlich die unbewusste Kompetenz, da weißt Du gar nicht mehr, wie viel Du eigentlich weißt und kannst überhaupt nicht mehr einschätzen, wie weit der Weg bis dahin eigentlich war. Viele der Antwortenden hier gehören zur letzten Gruppe.

Und wenn dann einer sagt "mach mal 4 Wochen Einführungskurs ins Strukturierte Programmieren, für Leute mit Null Voraussetzungen" - sorry, dem fehlt dann jedes Verständnis für die Länge und Schwierigkeit des zurückzulegenden Weges. In 4 Wochen kann man ein paar Grundkonzepte vermitteln, aber kaum jemanden so weit bringen, dass er sinnvoll eigenständig programmieren kann. Wenn's nur um ein paar Spielereien geht, dann sind IDEs wie Eclipse oder NetBeans mit JAVA oder Visual Studio Express (C#) gar nicht schlecht, dann beschränkt man sich auf Kommandozeilenprogramme und unterrichtet die grundlegenden Konzepte. Aber den Leuten muss klar sein, dass das nur ein Schnupperkurs ist.

Aber vielleicht bilde ich mir das ja auch nur ein, um mir einzureden wie toll ich bin ;-)

Rolf