Ich selbst habe eine sehr bewegte Zeit als Angestellter hinter mir. Dadurch war ich Gast in unzähligen Bewerbungsgespräche und habe viele Headhunter erlebt. Hier gebe ich Tipps an Führungskräfte wie ein Bewerbungsgespräch mit einem Programmierer zum Erfolg wird.
Stellen sie niemanden ein ohne nicht zumindest ein bisschen Code gesehen zu haben. Live-Coding und Programmieraufgaben haben sich eingebürgert. Hier ist jedoch Vorsicht geboten.
Ich selbst war sehr oft in dieser Position und habe auch von vielen Kollegen in gleichen Situationen gehört. Programmieren am Whiteboard und komplexe Algorithmen haben schon oft für Unmut gesorgt.
Persönlich befürworte ich Live-Coding im Bewerbungsgespräch, wenn ein paar Regeln befolgt werden. Es ermöglicht einem die Herangehensweise einer Person an Probleme zu beobachten. Gleichzeitig prüft es nötige Fachkenntnisse. Verzichten sie unbedingt auf schwere Szenarien. Niemand mag es beim Arbeiten beobachtete zu werden und im normalen Alltag passiert das auch nicht. Beschränken sie Live-Coding auf ein bis maximal zwei kleine Aufgaben.
Kein Programmierer (auch ein Senior wie ich) kennt die komplette Syntax der Sprache oder API einer Library auswendig. Google und Stackoverflow werden quasi immer verwendet, um ans Ziel zu kommen. Daher rate ich ganz stark davon ab extrem schwere und komplexe Szenarien im Live-Coding einzusetzen. Sollte ihr Bewerber ins Stocken gerate erzeugt dass immer eine unbehagliche Situation. Der Bewerber hat das Gefühl versagt zu haben und sie hatte nicht die Gelegenheit für eine ordentliche Beurteilung.
Verwenden sie einfache Beispiele aus dem täglichen Leben eines Programmierers. Hier ein Beispiel:
Sie haben ein Array von Objekten (Musikalben). Extrahieren sie alle Titel der Alben und speichern sie in einem neuen Array. Jeder Titel darf nur einmal vorkommen.
Die Aufgabenstellung sollte kurz und wirklich mit den Basics der jeweiligen Programmiersprache zu erledigen sein. Möglicherweise gibt es mehrere Möglichkeiten, um die Aufgabe zu lösen. Die verwendete Lösung gibt ihnen Aufschluss über die Vorgehensweise. Die Herangehensweise macht natürlich nur Sinn, wenn auch ein Programmierer vor Ort ist, der die Aufgabe auswerten kann.
Ein positiver Trend der sich entwickelt hat, ist das Stellen von Aufgaben, die vor dem Bewerbungsgespräch erledigt werden. Diese werden dann im Gespräch selbst präsentiert und besprochen.
Diese Vorgehensweise ist viel näher an der täglichen Arbeitsweise eines Programmierers als Live-Coding. Die Aufgabe wird ein paar Tage zuvor gestellt und der Programmierer hat bis zum Bewerbungsgespräch Zeit um diese zu erledigen.
Genau auf diese Vorgehensweise kommt es am Ende an. Der Programmierer wird in seiner Anstellung eine Aufgabe gestellt bekommen, die es zu lösen gilt.
Die Aufgabenstellung kann hier durchaus umfangreicher sein als beim Live-Coding. Im Idealfall ist es eine geschlossene Einheit und hat ein klares Ziel. Im Bereich der Webentwickler ist das meistens eine Art von Weboberfläche die eine kleine Interaktion und möglicherweise Datenverwaltung verwendet. Gestalten sie die Aufgabe so, dass sie in 30 bis maximal 60 Minuten zu lösen ist.
Gerade in der Technikwelt verändern sich Technologien rasend schnell. Neue Begriffe entstehen und Abkürzungen werden populär. Daher bin ich dagegen im Bewerbungsgespräch zu viel Fachbegriffe zu verwenden.
Das reine Wissen, dass es einen Begriff gibt, sagt noch nichts darüber aus, ob diese Person auch wirklich etwas damit machen kann. Jeder Programmierer kenn Begriffe wie »AI« oder »Maschine Learning« aber die wenigsten haben auch wirklich fundierte Kenntnisse darüber. Grundsätzlich ist das nichts anderes als auswendig Lernen in der Schule, wenn doch eigentlich das Verständnis zählt.
Ich war mehrmals in Bewerbungsgesprächen, in denen dem Programmierer ein Fachbegriff nicht geläufig war, er jedoch ohne Probleme die Technologie erklären konnte, die sich dahinter verbirgt. Auch mir selbst ist es schon so ergangen.
Wie im Coding-Beispiel ist es besser mit konkreten Beispielen zu arbeiten. Denn gerade in der Programmierung gibt es immer mehr als eine Lösung.
Nur um das klarzustellen. Ein Programmierer sollte im Bewerbungsgespräch natürlich seine Basics beherrschen. Wenn jemand nicht weiß was »while«, »do-while«, »foreach« bedeutet sagt das auch einiges aus. Speziell geht es mir um Fachbegriffe von speziellen Technologien oder Szenarien.
Vielleicht weiß ihr Frontend Entwickler nicht wie er SEO auf der Webseite implementieren soll. Gleichzeitig ist es für ihn/sie aber selbstverständlich immer einen title, description, canonical, … zu setzten. Es ist also leicht aneinander vorbeizureden. Ein konkretes Beispiel wie: »Was darf im <head> nicht fehlen« hätte hier Klarheit geschaffen.
Am Ende des Tages sind Programmierer auch nur Menschen und können sicher oder nervös im Bewerbungsgespräch sitzen. Das Bewerbungsgespräch ist eine Art Prüfungssituation in der oft Fehler passieren, die während der Arbeit kaum vorkommen. Vertrauen sie auf ihre Intuition und geben sie Menschen eine Chance die oft noch rau und unfertig wie ein Rohdiamant wirken.