Ursprüngliche Frage
Ich habe bereits einige Interviews für mein Unternehmen geführt, hauptsächlich Informatiker für Entwicklerpositionen, aber auch einige Tester und Projektmanager. Jetzt muss ich eine Stelle in unserer Forschungsgruppe innerhalb der F & E-Abteilung besetzen (Randnotiz: "Forschung" bedeutet, dass wir versuchen, Probleme in unserem Berufsfeld / Marktnische mithilfe von Software in Forschungsprojekten zusammen mit Universitäten, anderen Unternehmen, Forschungszentren zu lösen und Endbenutzerorganisationen. Es ist keine Informatikforschung, wir werden das P = NP-Problem nicht lösen.
Jetzt haben wir jemanden eingeladen, der einen MSc in Chemie hat (mit viel Physik auch in seinem Lebenslauf), der nie Informatikunterricht hatte. Ich habe bereits eine halbe Stunde an den Karrieretagen einer Universität mit ihm gesprochen und es besteht kein Zweifel, dass der Typ schlau ist. Auch seine Noten sind ausgezeichnet und er schloss mit Auszeichnung ab. Für seinen BSc musste er sich in Mathematica selbst Programmieren beibringen und sagte mir glaubhaft, dass er gerne programmiere. Außerdem hat er ein physikalisch-chemisches Problem gelöst, das ich mit seiner in Mathematica implementierten Software für seine Masterarbeit wahrscheinlich nicht verstehe. Es enthält eine grafische Benutzeroberfläche und eine bemerkenswerte Größe von 8.000 LoC. Er scheint sehr angetan von dem, was wir in unserer Forschungsgruppe tun, und ehrlich gesagt ist es für ein KMU wie uns ziemlich schwierig, gute Leute zu finden. Ich bin auch sehr daran interessiert, ihn einzustellen, da er mir beim Verfassen von Projektvorschlägen, Berichten, Präsentationen usw. behilflich sein könnte. Er würde wahrscheinlich auch in unser Team passen.
Die einzige Frage, die noch offen ist, lautet: Wie kann ich prüfen, ob er die Programmierkenntnisse hat, die er für die Implementierung von Software in unseren Projekten benötigt, da dies ein wichtiger Teil der Arbeit sein wird?
Natürlich werde ich ihn fragen, was ihn am Programmieren fasziniert. Ich werde auch fragen, wie er seine naturwissenschaftliche Software geschrieben und wie er sie strukturiert hat. Ich werde fragen, wie er es geschafft hat, die Fähigkeiten und Informationen über die Softwareentwicklung zu erhalten, die er brauchte. Aber gibt es noch etwas, was ich fragen könnte? Etwas konkreteres vielleicht? Soll ich ihn bitten, seine Mathematica-Lösung zu erklären?
Um es klar auszudrücken: Ich suche kein Wissen in einer bestimmten Sprache oder Technologie. Wir sind ein .NET-Shop in der Produktentwicklung, aber ich möchte eine freie Wahl für unsere Forschungsprojekte haben. Ich bin also daran interessiert, dass die Metakompetenz alles lernen kann, was tatsächlich benötigt wird.
Ich hoffe , diese Frage beantwortbar ist und nicht mit offenem Ende , da ich wie wirklich wissen , ob es eine Standardmethode ist für die Fähigkeit zu überprüfen , um zu bekommen , weitere Programmierkenntnisse am Arbeitsplatz. Wenn Ihnen etwas nicht klar ist, geben Sie mir bitte einige Kommentare und lassen Sie mich meine Frage verbessern.
Aktualisieren Sie, um die bis zum 01.12.2011 gegebenen Antworten wiederzugeben
Welche Antwort habe ich akzeptiert und warum
Ich danke Ihnen allen für Ihre Antworten, die meisten von ihnen sind sehr hilfreich, deshalb habe ich viel dafür gestimmt! Obwohl die Antwort von Tom Squires die meisten Stimmen erhielt, werde ich die Antwort von Prinz Gulasch akzeptieren . Natürlich ist Tom objektiv korrekt, aber die Antwort von Prince ist nur hilfreicher für mich und ich habe die FAQ zweimal überprüft, dass dies das Kriterium ist, um eine Antwort zu akzeptieren.
Was ich ihn während des Interviews fragen werde
Ich werde ihn einige einfache Aufgaben erklären lassen, wie das Beispiel in Das Kamel hat zwei Höcker, das von Chris Burt-Brown erwähnt wurde
Ich werde ihn bitten, einige erweiterte Kontrollabläufe zu erläutern, möglicherweise in grafischer Notation.
Ich werde sein Verständnis der Rekursion anhand eines mathematischen Beispiels überprüfen.
Ich werde ihn einen Algorithmus seiner Wahl in natürlicher Sprache erklären lassen.
Ich werde ihn seine Mathematica-Lösung erläutern lassen, insbesondere sein Vorgehensmodell, die Verwendung von Werkzeugen, die Strukturierung von Code und Software im Allgemeinen sowie verschiedene Abstraktionsebenen.
Um seine Motivation zu überprüfen, werde ich nach seiner Faszination für Softwareentwicklung fragen.
Ich werde ihn fragen, ob er weiß, was er über die Entwicklung von Unternehmenssoftware lernen muss. Insbesondere möchte ich die Diskussion in die Richtung lenken, in Teams, Pair Programming und TDD zu arbeiten, da ich erwarte, dass er nach der Arbeit an seinem MSc alleine nicht viel darüber weiß.
Klingt nach einem langen Interview;)
Update nach dem Interview 09.12.2011
Nochmals vielen Dank für Ihre guten Antworten. Er bestand das Interview mit Bravour. Mit einem Bewerber war ich nie zufriedener. Seine Mathematica-Lösung scheint recht gut strukturiert zu sein. Er konnte erklären, wo er Funktionen höherer Ordnung verwendete, obwohl er nicht wusste, dass diese so bezeichnet werden. Er beantwortete meine mathematischen Fragen zu Rekursionen sowie einfache Aufgaben und Kontrollabläufe in The Camel Has Two Humps. Als er einige Algorithmen erklärte, lernte ich viel über nichtlineare Anpassung;) Außerdem sagte er ehrlich, dass er natürlich nicht garantieren kann, dass er in der Lage sein wird, Dinge über professionelle Softwareentwicklung zu lernen, die er bisher nicht kennt. Aber er ist davon überzeugt, dass er immer gut darin war, neue Konzepte zu lernen - auch von sich aus - und sich wirklich für Softwareentwicklung interessiert. Er fragte auch nach dem Technologie-Stack des Projekts, auf den er sich zuerst beziehen würde, um es sich zu Hause anzusehen. Er war auch neugierig auf Paarprogrammierung und Teamarbeit. Jetzt hoffe ich, dass der Arbeitsvertrag geschlossen wird.