Das Programmierer-Einstellungsinterview: die Sicht des Programmierers

Das Programmierer-Einstellungsinterview: die Sicht des Programmierers

In letzter Zeit habe ich wieder verstärkt an Interviews teilgenommen und dabei ist mir die ein oder andere Sache aufgefallen. Auch habe ich keinen Leitfaden oder etwas ähnliches direkt finden können. Die Einschätzung, ob ein Arbeitgeber (für einen selber) gut oder schlecht ist ergibt sich allein aus der Erfahrung.

Dabei gibt es ein paar objektive Anhaltspunkte, diese zeigen sich jedoch fast alle erst beim persönlichen Gespräch.

Natürlich sollte der Arbeitgeber grob zu einem passen. Das zeigt sich im Gespräch und auch, wenn man sich Dinge wie das Umfeld und die Räumlichkeiten anschaut.

Der Arbeitgeber sollte eine passende Einstellung haben. Als Programmierer, der auf der Höhe der Zeit sein möchte, schließt das z. B. die Verwendung neuester (oder zumindest neuer aber geprüfter) Technologien und Tools voraus.

Nicht zuletzt wichtig ist das Bild, was ein Arbeitgeber von einem guten Programmierer hat. Jemand, der in einem fensterlosen Keller Zeile um Zeile Code vor sich hinhundelt[1]? Jemand, der zu Höchstleistungen aufblüht, wenn man ihm die richtigen Voraussetzungen schafft?

Auch zeigt sich das Verständnis an den Fragen, die einem gestellt werden.

Der Personaler

Ist ein Personaler anwesend, und wenn ja, welche Fragen stellt er? Da habe ich schon die dümmsten Fragen gehört. „Sind Sie authentisch?” Sehr beliebt auch „Was ist Ihre größte Schwäche?” sowie „Was ist Ihre größte Stärke?” Nun, das sind Fragen, die völlig legitim sind, man sollte sich nur darüber im Klaren sein, daß so gut wie niemand diese Fragen wahrheitsgemäß beantworten kann, dafür fehlt die Selbstreflektion. Und die, die es könnten, wissen, daß sich dann Abgründe auftun würden. Wer redet schon gerne über die Dinge, die wir wirklich nicht kontrollieren können, wo wir immer wieder scheitern?

Der Zweck ist natürlich durchaus gerechtfertigt. Niemand möchte jemanden einstellen, der sich später als Egomane herausstellt (wobei die meisten ohnehin BWL oder Jura studiert haben 😉 und nicht Programmierer geworden sind) oder sonst ein bislang funktionierendes Team durcheinander bringt.

Ob sich so etwas jedoch während einer Fragestunde herausfinden läßt ist fraglich. Hier kommt es eher auf Menschenkenntnis oder einen Versuch an (z. B. Probearbeit). Ist die entsprechende Menschenkenntnis gegeben, so kann bei solchen Fragen evtl. auch eine hinreichende Antwort ersehen werden.

Technische Fragen

Hier zeigt sich die Erleuchtung des Arbeitgebers. Niemand möchte die Katze im Sack einstellen oder beauftragen. Die Abfrage von Informationen, die jeder normale Mensch im Handbuch nachschlägt sind jedoch nur bedingt hilfreich bzw. aufschlußreich. Die einzige Information, die sich hier ableiten läßt, ist, wie sehr jemand schon mit bestimmten Technologien gearbeitet hat. Wer MFC Experte ist, sollte die Klassen CWnd, CDialog und CHastDuNichtGesehen kennen, sonst hat er höchstens an der Oberfläche gekratzt.

Spannender sind jedoch Fragen, die in die Richtung einer Erkenntnis gehen. Was passiert, wenn ich auf einen Button klicke? Wozu wäre Design Pattern X gut?

Das Beste überhaupt ist – und es ist mir erst einmal bei Dutzenden von Interviews untergekommen – ist, den Kandidaten aufzufordern, ein kurzes Programm zu schreiben. Hier kann der gute Programmierer auch brillieren und weiß auch, daß seine Kollegen später einen guten Wissensstand haben werden. Die einzige Firma, bei der mir das mal passiert ist, war ein großer Suchmaschinenanbieter.[2]

Arbeitsbedingungen

Diese sagen so viel darüber aus, wie die Arbeit einmal sein wird.. daß man sich seinen Arbeitsplatz am besten direkt nach einem (halbwegs erfolgreichen) Interview zeigen lassen sollte. Ein guter Arbeitgeber versteht auch die Notwendigkeit hierfür.

Sind die Rechner aktuell? Hat man 2 große Monitore? Sitzt man mit maximal 2-3 Leuten in einem Büro, das ausreichend Platz sowie Fenster hat? Ist es ruhig?

Arbeitgeber, die zwar dem Programmierer viele Hundert Euro am Tag zahlen, aber einen Rechner bereitstellen, auf dem man nicht ordentlich arbeiten kann, oder einen Monitor, auf dem man seine Fenster immer hin- und herschieben muß, oder einen Raum, den man sich mit einem laufenden Rasenmäher teilen muß, haben ihre Kosten wohl nicht ganz zu Ende durchgerechnet.

Auch sollte man darauf achten, wie die zukünftigen Kollegen auftreten[3], oder ob einem z. B. etwas zu trinken angeboten wird.[4]

Fragen, die (fast) immer kommen

Auf einige Fragen sollte man vorbereitet sein.

Das sind zum einen die Personalerfragen nach Stärken sowie Schwächen.

Daneben sollte man unbedingt etwas Spannendes zu seinem Werdegang erzählen können. Der Einstieg ist fast immer, daß eine der beiden Seiten etwas über sich erzählt. Oft macht das der Interviewer, für den die Situation ja deutlich weniger stressig ist, manchmal darf aber auch der Kandidat anfangen. So sollte man in 1-5 Minuten einen Abriß über sein bisheriges Leben (und insbesondere natürlich Berufsleben) geben können, mit einem speziellen Fokus auf die aktuellen Anforderungen. Also in der Reihenfolge

  1. Was habe ich gemacht, was direkt zu den Anforderungen paßt?
  2. Was habe ich gemacht, was im weitesten Sinne zu den Anforderungen passen könnte?
  3. Was habe ich sonst gemacht, z. B. Persönliches, Hobbies etc. (sollte meistens nur erwähnt werden, wenn überhaupt)?

Damit das Ganze nicht zu überfordernd wird, kann man z. B. erst einen chronologischen Abriß geben, und dann nochmal an interessanten Stellen (auch im Nachhinein) ins Detail gehen. Hier sollte man auch schaun, wie sehr der Interviewer nachhakt. Hakt er kaum nach, sollte man von sich aus mehr erzählen, im besten Fall kann es auch direkt zu einem Dialog kommen, wo man gar nicht allzu viel erzählen sollte – hier fragt der Interviewer eh an den für ihn interessanten Stellen nach und es ergibt sich ein nettes Gespräch, ohne größere Denkpausen.

Kleidung, Auftreten

Hier kommt (hoffentlich) nicht viel Überraschendes.

Für fast jeden Job sollte man im Anzug erscheinen. Ausnahmen wird man vermutlich direkt erkennen. Wird man schon vorher gedutzt und zum Bier nach dem Interview eingeladen, kann man evtl. auch in normalen Klamotten kommen. Das passiert allerdings eher extrem selten. Hier sollte man auf der sicheren Seite sein und lieber etwas overdressed sein als andersherum. Und man sollte sich nicht wundern, wenn der/die Interviewer in Straßenklamotten rumlaufen.

Ein sicheres, nettes und offenes Auftreten überzeugt ungemein. Meistens hilft auch Ehrlichkeit („das weiß ich jetzt leider gar nicht”) mehr weiter als Vortäuschung falschen Wissens. Ein guter Interviewer wird Verständnis haben für einzelne Wissenslücken, zumindest, wenn man nicht vorher mit diesem Wissen geprahlt hat und wenn dieses Wissen nur bedingt relevant für die Aufgabe ist und/oder schnell nachgeschlagen werden kann.

Checkliste: wirklich gute Firmen erfüllen..

Sehr interessant ist der Joel Test für die Qualität einer Firma, von Joel Spolsky (von Joel on Software).

Seine Checkliste von Anforderungen an eine gute Firma lauten:

  1. Wir eine Versionsverwaltung eingesetzt?
  2. Gibt es einen Build-Prozess, der mit einem Klick angeworfen werden kann?
  3. Gibt es tägliche Builds?
  4. Gibt es eine Bug-Datenbank?
  5. Werden Bugs gefixt bevor neue Features/neuer Code hinzugefügt werden?
  6. Gibt es einen aktuellen Zeitplan sowie Abschätzungen?
  7. Gibt es Spezifikationen/Anforderungen?
  8. Ist die Arbeitsumgebung ruhig?
  9. Gibt es die besten Hilfsmittel (Software, Hardware), die sich kaufen lassen?
  10. Gibt es dedizierte Tester?
  11. Müssen neue Kandidaten Code während ihres Interviews schreiben?
  12. Gibt es „Flur-Usability-Tests“? (Man schnappt sich jemanden, der vorbeigeht, und läßt ihn sein Programm testen.)

Zusammenfinden

Ein wirkliches Übereinstimmen hängt immer von 2 Seiten ab. Unerfahrene Firmen oder auch Programmierer werden hier Kompromisse eingehen, die sie später bereuen werden, und die oft beiden Seiten schaden. Hier sollte man schaun, ob man mit den Gegebenheiten zufrieden ist, und nicht auf ein Wunder hoffen, daß man als Neuer das Management überzeugt, doppelt so schnelle Rechner zu kaufen, oder ein stark benötigtes Tool.

Fußnoten: Geschichten, wie sie das Leben schreibt.

[1] Ich war mal bei einem Hardwarehersteller eingeladen. Das Gespräch lief gut. Viele Fragen zum Thema Multithreading, dort wird wohl aus Geschwindigkeitsgründen eine Kombination aus präemptivem sowie kooperativem Multitasking eingesetzt. Interessant. Jedenfalls.. lief alles gut, bis dann die Frage kam, ob ich mir gut vorstellen könnte, in einem fensterlosen Keller zu sitzen und 8h am Tag Code hinzuhundeln. Zum Essen dürfte ich wohl zwischendurch aufstehen. Oh, und ja, der letzte Kandidat hätte ja damit begeistert, daß er auch in seiner Freizeit aktiv an den Produkten der Firma weiterarbeitet und (ich weiß nicht mehr genau) entweder selber eine Fan-Seite erstellt hat oder in einem Forum aktiv Support geleistet hat. Da mitzuhalten war mir dann leider nicht möglich.

[2] Ich hatte mal ein Interview mit einem großen Suchmaschinenanbieter. Einem sehr großen. (Der auch für seine guten Arbeitsbedingungen bekannt ist.) Leider war das entscheidende Interview schlecht verlaufen. Ich konnte die Frage nach einem bestimmten Design noch vom Konzept her beantworten, dann aber nicht mehr umsetzen. Es ging um die Zusammenfassung von Daten, die aus mehreren Streams kommen, indem neue Streams gebaut werden, die wieder als Eingabe für weitere Streams dienen. Das habe ich beim besten Willen nicht mehr aus dem Hinterkopf heraus implementieren können. Ich habe mich dann später (meine Ehre!!) nochmal hingesetzt um alles fertig zu coden, und habe einen kompletten Vormittag daran gesessen. Entweder war ich also von meinem Fähigkeiten her wirklich nicht passend für jene Firma, oder das Interview und insbesondere diese Frage waren schlecht vorbereitet. Für letzteres spricht nicht nur meine schlaue Art 🙂 sondern auch, daß der Interviewer den Termin völlig vergessen hatte und aus einer Pause geholt werden mußte. Ich habe mir vorgenommen, eines Tages größer zu sein, den Laden zu übernehmen, und den Interviewer in die neue Niederlassung in der Antarktis zu versetzen. Wer eine gute Idee hat, mit der ich den Plan umsetzen kann, möge mich bitte kontaktieren.

[3] Ich bin mal zu einem Interview erschienen, und einer, der in Klamotten dastand, die wie ein Schlafanzug aussahen, stellte sich als „Senior Chief Main God of Software Architects” vor. Oder so ähnlich. So erinnere ich mich jedenfalls. Die Fragen, die er gestellt hat, haben meine Meinung nicht ausreichend revidiert.

[4] Ich bin mal 450km am Stück (eine Richtung) zu einem Interview gefahren. Die typische Einstiegsfrage „Wie war denn Ihre Fahrt?” wurde übergangen, was mir gar nicht so unrecht war. Allerdings wurde die nächste typische Frage „Möchten Sie gerne etwas zu trinken? Ja, wir haben auch Wasser!” leider auch übergangen. Auch bin ich dazu übergegangen, kurz vor Ankunft nochmal auf eine öffentliche Toilette zu gehen. Ich möchte niemanden mit meiner Menschlichkeit schockieren. Vielleicht sollte ich auch nochmal eine Frau fragen, wie das mit dem „frisch machen” funktioniert.

2 thoughts on “Das Programmierer-Einstellungsinterview: die Sicht des Programmierers

Schreibe einen Kommentar

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