Rückblick auf die IHK-Sommerprüfung 2019 – Anwendungsentwickler-Podcast #139

Meine Erkenntnisse (positiv wie negativ) aus der IHK-Sommerprüfung 2019 teile ich mit euch in der einhundertneununddreißigsten Episode des Anwendungsentwickler-Podcasts.

Probeabo bei Audible (Affiliate)

Inhalt

Projektdokumentation

  • Verwendung unnatürlicher Sprache („bei dem“ statt „beim“, „Leerung der Datenbank“ statt „Datenbank leeren“)
  • Kapitel meiner Vorlage werden ausgefüllt, auch wenn die Inhalte überhaupt nicht sinnvoll sind
    • „Eine Nutzwertanalyse war nicht sinnvoll, deswegen habe ich darauf verzichtet.“
    • Identische Inhalte werden gleich mehrfach wiederholt (u.a. aus dem Antrag übernommen), z.B. bei der Projektbegründung und Zieldefinition
  • Wichtige Inhalte fehlen
    • insgesamt viel zu wenig Text (8 Seiten statt 15)
    • Benutzer-/Entwickler-Dokumentation (gibt direkt >10% Abzug), und nein, ein PHP-Doc-Block ohne Inhalt reicht nicht aus
    • trotz explizitem Hinweis der Prüfer im Antrag wurden keine Diagramme erstellt, weil diese „nicht sinnvoll“ waren
    • Qualitätssicherung fehlt häufig komplett (abgesehen vom scheinbar obligatorischen „Code-Review“)
  • Qualitätssicherung
    • „Die Methoden wurden auf Komplexität geprüft“ (sind im Anhang aber >70 Zeilen lang)
    • „Viel Wert auf Clean Code gelegt“ (aber doppelter Code, Magic Numbers, harte Pfade, komplexe switches im Anhang)
    • „Die Übertragung muss verschlüsselt erfolgen“ (aber alle URLs beginnen mit http)
    • „Code Coverage muss >90% sein“ (aber nicht einen Test gezeigt)
    • Debugger/Konsole wird für „Tests“ genutzt
  • Fehler in der Wirtschaftlichkeits-/Amortisationsrechnung
    • „Pauschale“ für Ressourcennutzung angesetzt, wird aber nicht mit eingerechnet
    • laufende Kosten des Projekts gibt es nicht
    • Kosten des Unternehmens werden Einsparungen des Kunden gegenübergestellt
    • bei der Kostenplanung werden große Kostenverursacher „vergessen“
    • Vergleich mit fiktiven Kosten von einer Website, die Kosten für Apps schätzt
  • Fehler in Diagrammen
    • ERM enthält m:n-Tabellen
    • include vs. extends im Use-Case-Diagramm
  • Aktionen werden nicht in der Zeitplanung berücksichtigt (4h Schulung)
  • Uninteressante Inhalte werden viel zu detailliert dargestellt
    • langweiliger Sourcecode über mehrere Seiten im Anhang, 8 (!) Seiten Mockups und 6 Seiten Quelltext im Anhang
    • Hardware des Arbeitsplatzrechners bis runter auf die RAM-Art und Typ der Grafikkarte erklärt
    • Zeitplanung/Projektaufbau in drei verschiedenen Varianten dargestellt (Gantt, Tabelle, Projektstrukturplan)
    • lächerlich einfache Abläufe mit Diagrammen dargestellt (Sequenzdiagramm mit einmal hin und zurück, Aktivitätsdiagramm mit einer einzigen Verzweigung)
    • teils völlig sinnlose und nicht im Zusammenhang zum Inhalt stehende Komponenten (z.B. Auszug aus pom.xml ohne Erläuterung)
    • minified (!) CSS/JavaScript wird gezeigt
  • Overkill
    • Kostenkalkulation über 3 Seiten mit zig mathematischen Formeln mit Indizes (z.B. KKunde + Kfix) etc.
    • komplette Seite für typographische Konventionen
    • 5 (!) Überschriftenebenen (z.B. „3.1.1.4. a)“)
    • Diagramm der Amortisationsrechnung mit mathematischer Software geplottet
    • „wissenschaftliche“ Erklärung von Vorgehensmodellen mit Quellennachweis und wörtlichen Zitaten über mehrere Zeilen, aber aus der Wikipedia
  • nervige Kleinigkeiten
    • Abkürzungsverzeichnis nicht sortiert
    • Seitennummerierung fehlerhaft
    • Quellennachweise, die lediglich Links enthalten ohne Bezug zu irgendeinem Inhalt
  • handwerkliche Fehler
    • Passwörter im Klartext in der Applikation speichern oder sogar übers Netzwerk schicken
    • Geschäftslogik im Controller

Projektpräsentation

  • viele Frameworks verwendet, aber nur die (nichtssagenden) Logos gezeigt
  • Codebeispiele enthalten TODOs und Hinweise der IDE
  • Rechtschreibfehler auf den Folien
  • winziger Text
  • Grafiken überlagern Textelemente
  • Cliparts verwendet
  • Unternehmen zu lang vorgestellt
  • eigenen Namen nicht genannt und nicht gezeigt
  • Tabelle mit Zeitplanung zeilenweise vorgelesen

Fachgespräch

  • GA1 hat viele gute Prüflinge stark runtergezogen
  • Wirtschaftsfragen gehen gar nicht (Stundensatz, Gehaltsabrechnung, brutto/netto, Einzel-/Gemeinkosten, BAB)
  • Sourcecodebestandteile können nicht erläutert werden
    • Nullable Types, Structs, Lambdas, Generics, Typinferenz, Traits, Typisierung der verwendeten Sprache, Type Hints in PHP
    • ===, ??, static, finally, out-/ref-Parameter
  • Architekturen können nicht erläutert werden
    • MVC, Dependency Injection, Domain Driven Design
  • Rechtsform des eigenen Unternehmens kann nicht erläutert werden
  • Urheberrechtshinweis auf eigenem Deckblatt kann nicht erläutert werden
  • Datenschutz vs. Datensicherung vs. Datensicherheit können nicht abgegrenzt werden
  • „Habe ich das so geschrieben?“ (Prüfling kennt die eigene Doku nicht)

Lichtblicke

  • Zusammenhang zwischen Lasten- und Pflichtenheft hergestellt (baut aufeinander auf)
  • Mockups auf Papier selbst gezeichnet
  • Tickets statt (fiktivem) Lastenheft verwendet
  • Präsentation einer Webanwendung wie Browser-Tabs gestaltet
  • direkter Vergleich des entworfenen Mockups mit der finalen Oberfläche der Webanwendung
  • Entscheidung für ein Vorgehensmodell sauber begründet (Wasserfall, da Anforderungen feststehen)
  • Inhalte der Präsentation auf Prüfungsausschuss individualisiert (als Adresse auf einem Aufkleber die der BBS verwendet)
  • Amortisationsrechnung im Nachhinein durch Vergleich der Planung mit den echten Zeitersparnissen validiert

Links

Polyglot Clean Code Developer
About the Author
Ausbildungsleiter für Fachinformatiker Anwendungsentwicklung und Systemintegration, IHK-Prüfer und Hochschuldozent für Programmierung und Software-Engineering.

9 comments on “Rückblick auf die IHK-Sommerprüfung 2019 – Anwendungsentwickler-Podcast #139

  1. Markus sagt:

    Rückblickend auf die diesjährige Sommerprüfung kann gesagt werden, dass die IHK dieses Mal vor allem bei der schriftlichen GA1-Prüfung ziemlich die Zügel angezogen hat. In der Pause zwischen den ersten Prüfungsteilen war durchweg zu hören, dass vor allem die SQL-Aufgabe ziemlich viel Zeit verbraucht hat, weil die SQL-Befehle lang wurden, weil die Felder mit den längsten Bezeichnungen benötigt wurden. Die anderen Aufgaben waren aber auch etwas anders als die Prüfungen zuvor, wenn ich mir die alten Prüfungen angucke.
    GA2 und vor allem der WiSo-Teil waren aus meiner Sicht dafür leichter und durchaus machbar.

    Ansonsten kann ich aus meiner Sicht sagen, dass die Prüfung erfolgreich verlaufen ist. Es hätte vor allem beim Fachgespräch etwas besser laufen können, aber leider war durch die Nervosität auch ein kleiner Blackout vorhanden, so dass nicht alle Fragen beantwortet werden konnten. Aber insgesamt bin ich zufrieden und auch jetzt froh, dass die Prüfung vorbei und vor allem bestanden ist.

    Auf diesem Wege wollte ich Dir, lieber Stefan, auch mal für Deine Arbeit, die Du hier in diesen Blog hineinsteckst, bedanken. Mir hat das alles hier sehr weitergeholfen, wenn ich mal nicht weiter gewusst habe. Mach bitte weiter so! 🙂

  2. Stefan Macke sagt:

    Hallo Markus, vielen Dank für dein Feedback!

  3. Fabian sagt:

    Zum ersten Punkt muss ich ganz klar sagen, dass formelle und korrekt geschriebene deutsche Sprache keinen Punktabzug geben darf. Ich verstehe natürlich deine Kritik dazu, man sollte aber lediglich nur darauf hinweisen und keine Abzüge geben!

  4. Stefan Macke sagt:

    Hallo Fabian, hast du dazu eine offizielle Quelle oder ist das deine eigene Meinung? Für die „äußere Form“ gibt es bei unserer IHK nämlich durchaus einen eigenen Bewertungsbereich.

  5. Markus sagt:

    Bezugnehmend auf den Abschnitt über das Fachgespräch:

    „Nullable Types, Structs, Lambdas, Generics, Typinferenz, Traits, Typisierung der verwendeten Sprache, Type Hints in PHP“
    „MVC, Dependency Injection, Domain Driven Design“

    Ich habe gerade das zweite Lehrjahr beendet. Ich stoße immer wieder auf Begriffe in Ihrem Podcast und auf Ihrer Website, welche ich nicht kenne und auch noch nie gehört habe:

    „Nullable Types, Structs, Lambdas, Generics, Typinferenz, Traits, Typisierung der verwendeten Sprache, Type Hints in PHP, MVC, Dependency Injection, Domain Driven Design“

    Von diesen Begriffen kenne ich MVC, Structs und Typisierung der verwendeten Sprache. Dependency Injection kann ich mir herleiten.
    Immer wieder bekomme ich das Gefühl:
    „Holy Shit, warum kenne ich das nicht, warum wurde das niemals z. B. in der Berufsschule angesprochen“.

    Sind das Themen die auf dem Lehrplan stehen?
    Sind das spezielle Themen auf den Prüfling zugeschnitten, der diese wissen müsste?
    Sollten diese Themen im Betrieb besprochen werden?
    Wie kommen denn die Prüflinge an dieses ganze Wissen?

    Für mich ist dieser Podcast die Hauptinformationsquelle, wenn es um das theoretische Futter geht, welches ich für die Abschlussprüfung benötige. Ein Beispiel ist z. B. : Der Unterschied der ganzen Paradigmen in der Programmierung. Funktionale Programmierung, objektorientierte Programmierung, prozedurale Programmierung usw.

    Desweitern benutze ich YouTube, Stackoverflow und Reddit um an meine Informationen zu kommen.

    Irgendwie habe ich das subjektive Gefühl, dass die Berufsschule jemanden nicht auf diese Themen vorbereitet.

  6. Stefan Macke sagt:

    Hallo Markus, die von dir angesprochenen Begriffe muss nicht jeder Azubi kennen. Ich bezog mich auf Codebeispiele aus Dokus oder Präsis, die die jeweiligen Azubis von sich aus gezeigt haben. Und darin wurden die genannten Features einzelner Programmiersprachen verwendet, die dann nicht erklärt werden konnten.

    Nicht jeder Azubi muss alle Features aller Programmiersprachen kennen. Aber das, was man selbst verwendet, sollte man erklären können!

    Von deiner Liste würde ich dir aber durchaus Lambdas, Generics, Typinferenz und Dependency Injection ans Herz legen. Das sind allgemeine Dinge, die es in vielen Programmiersprachen gibt.

  7. Heiko sagt:

    Super amüsanter Podcast. Bitte mehr davon! 🙂

  8. Cemil sagt:

    Hallo Stefan,
    ich bitte bisschen um mehr Verständnis für die externen Prüflinge (Umschüler) und die nicht Muttersprachler.
    Wir sind sehr benachteiligt von dem aktuellen System. alles Lernen wir nur in der Theorie . Der Unterricht läuft nur E-learning(Online Video). Den Dozent (Lehrer) sehen wir ewig. Gut dass wir hören können. Bei dem Praktikum lernen wir in 6 Monaten nichts. Wir bekommen wenig Unterstützung sowohl von dem Chef als auch von der Schule(Bildungseinrichtung). Dem Kostenträger(Bundesagentur für Arbeit) ist eher egal.
    – Als ehemaliger Akademiker habe ich zu meiner Projektarbeit die Zitate von den Wissenschaftlichen Büchern hinzugefügt. Denn Ich bin davon ausgegangen, dass es um eine Abschlussarbeit geht. Das hat meinen Prüfer nicht gefallen. 🙂
    Schöne Grüße Cemil

  9. Stefan Macke sagt:

    Hallo Cemil, vielen Dank für dein Feedback. Ich hatte auch schon einige Prüflinge, die keine Muttersprachler waren. Darauf nehmen wir natürlich Rücksicht in der Prüfung! Und das Thema Umschulung ist immer so eine Sache. Da geht es leider vielen anderen Umschülern so wie dir :-/ Ich wünsche dir viel Erfolg für die Prüfung!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax