b Projektorientierung bei cdemy | cdemy

Projektorientierung bei cdemy

Wie wir durch praktische Erfahrungen gute Programmierer ausbilden

Umschulung Programmierung FIAE Projekte

Wir sind der festen Überzeugung, dass man nur dadurch lernt, dass man sich Aufgaben stellt und Lösungen erarbeitet. Daher spielen Projekte im Rahmen der Umschulung zum/zur Fachinformatiker(in) für Anwendungsentwicklung bei der cdemy GmbH eine herausragend wichtige Rolle. Hier stellen wir den Ansatz und einige Projekte vor.

Wenn man auf YouTube jemandem dabei zusieht, wie er ein Problem löst, dann heißt es nicht, dass man es zukünftig lösen kann. Und die Chance ist auch klein, dass sich einem in Zukunft exakt das gleiche Problem nocheinmal stellt. Und auch wenn wir viel von unserem eigenen Unterricht halten: Dadurch, dass wir viel erzählen, ist nicht gewährleistet, dass die Umschüler es a) verstanden, aber vor allem b) anwenden können in Zukunft. Man lernt Programmieren nicht dadurch, dass man ein Buch liest oder ein Tutorial ansieht. Das sind alles gute Ansätze, aber der einzige Weg, sich selbst und seine Fähigkeiten nachhaltig zu entwickeln, ist, dass man sich Aufgaben stellt, dass man teilweise auch scheitert und weitermacht und daraus lernt.

Unser Ansatz umfasst klassischen Theorie-Unterricht, LiveCoding-Vorführungen, aber besonders wichtig ist uns, dass die zukünftigen Anwendungsentwickler:innen auch immer Projekte haben, an denen sie in der Regel in kleinen Teams arbeiten. Diese Projekte starten einfach und werden schnell komplexer. Unser Ziel ist immer, dass man zu Beginn daran zweifelt, es umsetzen zu können - und es dann natürlich schafft. Bei der Umsetzung nutzen die Teilnehmer:innen

  • offizielle Dokumentationen,
  • inoffizielle Tutorials,
  • die Kenntnisse anderer Umschüler:innen,
  • die Dozenten, die stets betreuend dabei sind.

Übungsprojekte

In den ersten 3 Monaten der Umschulung zum / zur Fachinformatiker:in für Anwendungsentwicklung entwickeln die Umschüler:innen ihre Fähigkeiten anhand von Übungsprojekten. Diese bauen aufeinander auf und verlangen zur Lösung jeweils Kenntnisse in neuen Bereichen der Programmierung. Wir stellen examplarisch einen Verlauf dar für unsere Umschüler:innen in diesem ersten Umschulungs-Abschnitt.

1) Kalenderblatt

Das erste Projekt angehender Fachinformatiker:innen für Anwendungsentwicklung ist das Erstellen eines statischen Kalenderblatts für einen Tag mit HTML. Auf dieser Seite sieht man dann das Datum, einige kalendarische und historische Fakten zu dem Datum sowie eine passende Darstellung des Kalendermonats, in dem das Datum liegt. Die Umschüler:innen lernen nebenbei Versionsverwaltungen und die Entwicklungsumgebung kennen. Der erste Wurf sieht aus wie eine Webseite aus den 90er Jahren.

Kalender eines Teilnehmers

Abb.: Kalender: Erster Wurf eines Teilnehmers

Nach und nach lernen sie dann CSS-Techniken kennen und hübschen entsprechend die Seite auf. Das einzige Problem: Die Seite zeigt weiterhin nur dieses eine Datum an.

Kalender mit CSS

Abb.: Kalender: Erste Layout-Erfolge mit CSS

Bevor wir uns in den Möglichkeiten von CSS verlieren, starten unsere Umschüler:innen mit ihren ersten Schritten in Javascript (Vanilla). Auf der Basis des Tagesdatums finden sie heraus, welchen Wochentag wir haben, welches Kalenderwoche, wie der aktuelle Monat heißt und vieles mehr. Dabei lernen die angehenden Anwendungsentwickler:innen Variablen und Kontrollstrukturen kennen, die Interaktion mit Datenobjekten und dem DOM-Objekt, also der dargestellten Webseite.

Dann widmen wir uns der Aufgabe, für ein uns im Vorhinein nicht bekanntes Datum aus dem Stand ein Kalenderblatt zu zeichnen. Welche Informationen müssen wir hierfür haben? Während wir dieses Problem lösen, befassen wir uns zwangsläufig mit Schleifen und dem Recherchieren in Dokumentationen.

Danach ist es vergleichsweise einfach, dem Benutzer zu ermöglichen, von Datum zu Datum oder Monat zu Monat zu springen. Wir werden dabei viele eigene Funktionen entwickeln und lernen erste Grundsätze von Clean Code und Refactoring.

Kalender mit Javascript und CSS

Abb.: Kalender: Funktionalität in Javascript

2) Grüß-Konsole

Parallel zu dem Kalenderblatt, was die angehenden Fachinformatiker:innen für Anwendungsentwicklung einige Wochen begleitet, schreiben die Umschüler:innen in einer anderen Programmiersprache ihre erste Applikation. Nach Eingabe von Namen, Vornamen und Alter grüßt uns der Computer auf angemessene Weise - inklusive dem Siezen ab einem gewissen Alter. Die Umschüler:innen lernen hierbei das Nutzen von Fallunterscheidungen im Code, sowie prinzipiell den Unterschied zwischen interpretierten und kompiliertem Code, zwischen dynamic und strong Typing, sowie die Verwendung von Variablen und Konstanten.

3) Body-Mass-Index Mobile App

Es ist unser Ziel, dass die Teilnehmer:innen der Umschulung zum / zur Fachinformatiker:in für Anwendungsentwicklung schnell auch mit einfachen Anwendungen Ergebnisse erzielen, die von der eigenen Wahrnehmung typischen Anwendungen entsprechen. Konsolenanwendungen, selbst wenn sie komplexe Algorithmen umsetzen, sind motivatorisch schwieriger für die meisten Umschüler:innen als Programme mit grafischen Benutzeroberflächen. Unsere erste Mobile App nutzt daher dynamische Elemente wie Slider zur Eingabe von Gewicht und Größe und präsentiert den resultierenden Body-Mass-Index auf grafisch gefällige Art und Weise. Die angehenden Anwendungsentwickler:innen lernen dabei die Verwendung von Objekten und Klassen, sowie prinzipiell die GUI als Repräsentanz des Application State kennen.

4) Snackautomat

Die erste App mit komplexerer interner Logik in der Umschulung zum / zur Fachinformatiker:in für Anwendungsentwicklung ist die Simulation eines Snackautomaten als Mobile App. Der Automerkt merkt sich, wieviel Wechselgeld er noch hat. Er gibt passend heraus beziehungsweise lehnt Transaktionen ab, wenn er nicht passend herausgeben kann. Nach erfolgter Transaktion verändert sich sein Wechselgeldbestand.

Snackautomat auf Android-Handy

Abb.: Snackautomat auf Android-Handy

Dabei lernen wir etwas komplexere Datenstrukturen (Listen bzw. Arrays) kennen und erkunden die Layoutmöglichkeiten, responsives Design (Handyformate im Portrait- oder Landscape-Modus) und natürlich auch generell die Vorgehensweisen beim Coden, Debuggen und Publishing. Auch das ist ein Einzelprojekt für jede:n Umschüler:in.

5) Eigene App

Nun ist es an der Zeit, eine eigene Idee umzusetzen - zuerst eine kleine, als Einzelprojekt. Es gibt keine thematischen Vorgaben und keine Plattform-Vorgabe, da wir mit den erlernten Techniken ohne Weiteres bereits Software entwickeln können, die lauffähig im Web, auf Mobilgeräten oder auf PCs ist.

6) Gruppen-Projekt

In unserem ersten Gruppenprojekt geht es dann zusätzlich darum, verteiltes Entwickeln zu erlernen. Die angehenden Anwendungsentwickler:innen lernen, ihre Arbeitsschritte zu koordinieren. Teammeetings, genaue Designvorgaben etc. sind nötig, wann immer mehrere Personen zusammenarbeiten. Zugleich sind aber nun auch größere Entwicklungsvorhaben prinzipiell möglich. Oftmals bieten sich hier Kopien bekannter Spiele (wie Minesweeper, Solitaire, etc.) oder Apps (To-Do-Liste, CD-Verwaltung) an. Die Umschüler:innen wissen inzwischen auch, wie man API-Abfragen und generell asynchronen Code integriert und können daher auch Datenbanken nutzen, um ihre Anwendung zum Beispiel persistent zu halten.

Tetris-App von Teilnehmern

Abb.: Tetris-App von Teilnehmern

Immer mehr wird in den Anwendungsentwicklung-Projekten darauf geachtet, dass sich an Prinzipien wie SOLID-Prinzipien, Clean Code und Test Driven Design zu halten und die eigenen ersten Entwürfe durch Refactoring zu optimieren.

Auch lernen die Teilnehmer:innen nun spätestens, dass die Kunst der Anwendungsentwicklung nicht in erster Linie im Code für eine bestimmte Funktionalität liegt, sondern im Zusammenspiel unzähliger Komponenten, was natürlich geplant und koordiniert werden muss. Architektur von Anwendungen ist also hier ein wichtiger Teil der Arbeit.

Projekte im weiteren Verlauf

Die anschließenden Projekte drehen sich nun um die Zusammenarbeit mit fortgeschrittenen Entwicklern, im eigenen Hause und auch international. In dieser Phase verfeinern die angehenden Anwendungsentwickler:innen ihre Kenntnisse, testen ihren Code noch ausführlicher und füllen gegebenenfalls noch Lücken aus.

Immer wieder unterbrochen wird diese Projekttätigkeit durch die Arbeit an Algorithmen unter Prüfungsbedingungen, denn es ist schon ein Unterschied, ob man ein Problem für die Prüfung oder unter unseren Code-Bedingungen löst. Die unzähligen Convenience-Funktionen in modernen Programmiersprachen führen dazu, dass man manche Aufgabenstellung in 2 Zeilen lösen kann, für die man aber in der Prüfung besser 50 Zeilen Pseudocode schreibt. Auch das will gelernt sein - und es schärft den Blick dafür, dass man sich mit der bequemen Lösung mitunter auch der Freiheit beraubt, den effizientesten Algorithmus zu finden.

Abschlussprojekt

Das Abschlussprojekt als Teil der IHK-Prüfung für Fachinformatiker:innen für Anwendungsentwicklung ist von besonderer Wichtigkeit für die Abschlussnote. Üblicherweise führen die Teilnehmer:innen der Umschulung dieses Projekt in ihrem jeweiligen Praxisbetrieb durch. Dennoch ist das Schreiben einer entsprechenden Dokumentation für die Umschüler:innen etwas Neues, denn auf ihrem bisherigen Bildungsweg haben sie im Normalfall noch nie eine derart umfassende Ausarbeitung schreiben müssen. Hier stehen wir ihnen durch entsprechende Vorbereitung helfend beiseite. In den Fällen, in denen im Praxisbetrieb kein passendes Projekt organisiert werden konnte, können die angehenden Fachinformatiker:innen natürlich auch ein cdemy-Projekt eigenständig durchführen.

Fazit

Grundsätzlich haben unsere Projekte das Ziel, immer für jeden persönlich fordernd zu sein. Mit anderen Worten: Niemand soll sich langweilen, sondern immer gezwungen sein, etwas Neues zu lernen. Entsprechende Vorkenntnisse oder Lerntempo vorausgesetzt, ist unser System so flexibel, dass wir Projekte im Einzelfall auch überspringen können, um stattdessen etwas Komplexeres zu tun.

Vorheriger Beitrag Nächster Beitrag

Hauptmenu
=========