Rückblick auf die IHK-Sommerprüfung 2019

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

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

  1. 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. 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!

  3. 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.

  4. 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.

  5. 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.

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