Unser Unternehmen sucht neue Programmierer. Und hier kommt das Problem: Es gibt viele Entwickler, die im Interview wirklich gut aussehen, die Technologie zu kennen scheinen und einen guten beruflichen Hintergrund haben, aber nach zwei Monaten Arbeit stellen Sie fest, dass sie nicht in der Lage sind, darin zu arbeiten Ein Team, das Code schreibt, benötigt sehr viel Zeit. Außerdem ist das Ergebnis nicht so gut, wie es sein sollte.
Verwenden Sie also formalisierte Tests (gibt es welche?)? Woran erkennt man einen guten Programmierer - und einen guten Menschen? Gibt es einfache "gute" Fragen, die die zukünftigen Probleme aufdecken könnten? ... oder geht es nur um Ihr "Gefühl" für die Person (dh hauptsächlich um Ihre Erfahrung) und darum, sie / ihn auszuprobieren?
Bearbeiten: Nach der Antwort von Manoj ist hier die Frage im Zusammenhang mit der Codierungsaufgabe beim Vorstellungsgespräch.
quelle
Antworten:
Lassen Sie sie darüber sprechen, woran sie interessiert sind. Ich habe noch keinen Entwickler kennengelernt, der wirklich leidenschaftlich über Programmierung spricht, aber eigentlich keinen Code schreiben kann. Sie können natürlich existieren - und Ihr Interview sollte auch die Kompetenz prüfen -, aber Leidenschaft ist nach meiner Erfahrung ein guter Indikator. (Beachten Sie, dass dies nicht das Gleiche ist, als wenn Sie in der Lage wären, das Gespräch mit Schlagwörtern zu "sprechen".)
Fragen Sie sie, was sie an ihrer Lieblingssprache oder Plattform nicht mögen. Wie würden sie die Dinge reparieren? Was möchten sie in der nächsten Version sehen? Haben sie Hobbyprojekte? Wenn sie einen Blog haben, lesen Sie ihn. Überprüfen Sie ihre allgemeine Online-Präsenz.
quelle
Gute Leute einzustellen ist schwer .
Ich habe einige echte Fehler gemacht, um besser zu werden. Sie beginnen, Ihrem Darmtrakt viel mehr zu vertrauen, nachdem Sie ihm die ersten Male nicht vertraut haben und es bereuen.
Ich habe großen Respekt vor Steve Yegges Fragen zum Telefonbildschirm und habe diese als Grundlage für die Befragung von Menschen mit einigem Erfolg verwendet.
Ich denke auch, dass ich besser darin geworden bin, Leute zu interviewen, nachdem ich Joels Leitfaden für Guerilla-Interviews gelesen habe (jetzt bei Version 3.0, das ist der Version für das Web voraus und alles, es muss nur gut sein).
Darüber hinaus gibt es 57 weitere Fragen (Stand : 20.11.2008) auf Software Engineering Stack mit Interview markiert und einige von ihnen sehen sehr relevant, so überprüfen Sie diese aus.
quelle
2^16
auswendig muss. Und die Fast-Track-Version unten ist nur eine schlechte Parodie.Einige Ideen:
Stellen Sie mehrere offene Fragen aus verschiedenen Blickwinkeln:
Suchen Sie sich etwas aus, das der Kandidat angeblich gut kennt. Stellen Sie eine einfache Frage, und stellen Sie dann auf der Grundlage der Antwort eine weitere, etwas detailliertere Frage, und "graben" Sie weiter, bis Sie an die Grenze des Wissens des Bewerbers gelangen. Dies gibt Ihnen eine Vorstellung von:
Fragen Sie , wie der Kandidat mit verschiedenen Situationen behandeln einen früheren Jobs: Teamarbeit, überfällige Projekte, Debugging, etc . Sind die Antworten positiv oder negativ? Leidenschaftlich? Intelligent? Arrogant?
Ich finde die besten Kandidaten enthusiastisch, erfahren, selbstbewusst, aber höflich und vor allem präsent . Sie müssen wissen, dass jemand drinnen ist. :-)
quelle
Um einen guten Programmierer zu erkennen, muss man ein guter Programmierer sein. Das bedeutet, dass Sie die Programmierung sehr gut kennen müssen, um die Dinge zu durchschauen, die im Interview gesagt und getan werden, und Sie müssen wissen, welche Fragen zu stellen sind.
Ich habe gesehen, dass Kandidaten beim Interview die falsche Antwort gegeben haben, aber ihre Erklärung hat gezeigt, dass sie das Thema kannten (und daher leicht die richtige Antwort durch Durchsuchen des Netzes erhalten konnten). Um das zu sehen, muss man das Thema, zu dem man eine Frage stellt, sehr gut kennen.
Eine andere Sache ist, Fragen über Details zu vermeiden, die leicht gegoogelt werden könnten. Diese Frage zeigt nur, wie gut der Kandidat darin ist, sich an Dinge zu erinnern, und nicht, ob er wirklich das Wissen und Verständnis hat, das Sie suchen.
Ich empfehle, sich von jemandem helfen zu lassen, der sich mit Programmierung auskennt und über gute menschliche Fähigkeiten verfügt, um bei den Interviews zu helfen.
Edit: Ich schrieb auch einen Kommentar Interview hier .
quelle
Denken Sie daran, dass Programmierkenntnisse nicht alles sind. Sie könnten den besten Programmierer der Welt haben, der für Sie arbeitet, aber wenn sie es hassen, mit anderen Leuten zusammenzuarbeiten, werden Sie sie nicht sehr nützlich finden.
Die Persönlichkeit eines Programmierers sollte ganz oben auf der Liste stehen, als es die meisten Arbeitgeber zu sein scheinen. An meinem derzeitigen Arbeitsplatz achten sie sehr darauf, den richtigen Personentyp einzustellen.
Menschen können im Allgemeinen lernen, bessere Programmierer zu sein, Menschen können im Allgemeinen nicht lernen, bessere Menschen zu sein.
quelle
Machen Sie sie Code. Geben Sie ein Problem an, das in 4 oder 5 Stunden gelöst werden kann, und überprüfen Sie den Code auf Dokumentation, Codierungsstil, wie er die Lösung geplant hat, bevor er mit dem eigentlichen Codieren beginnt usw. Er muss das Problem nicht wirklich lösen. Und wie Jon Skeet sagte, lassen Sie sie über Programmierung, die Sprache ihrer Wahl und ähnliche Dinge sprechen. Sie können die Leidenschaft in einem guten Programmierer wiedererkennen. Fragen Sie, wie vielen programmierbezogenen Sites sie folgen, wie Stapelüberlauf. Die Blogs, denen sie folgen, können ein guter Indikator sein.
quelle
Ich mag die Leidenschaft Antwort. Ich glaube, man muss leidenschaftlich sein für das, womit man arbeitet, um wirklich sehr gut darin zu sein.
Ein guter Programmierer programmiert nebenbei (zumindest ab und zu). Er / sie löst gerne Programmierprobleme. Und wenn er / sie zu Hause kein Programm findet, das eine bestimmte Anforderung löst, wird er / sie in der Regel versuchen, es selbst zu lösen.
Es gibt jedoch verschiedene Arten von Programmierern.
Wenn Sie den "Hacker" finden, der auch sehr gut dokumentiert und über hervorragende Kommunikationsfähigkeiten verfügt, würde ich glauben, dass Sie den Jackpot erreicht haben.
Oh, und noch eine letzte Sache. Sie möchten wahrscheinlich keinen Programmierer, der Führungsambitionen hat, da er die Programmierung nur zum Starten verwendet. Das bedeutet, dass Sie diese Ressource früher oder später verlieren werden.
Eine Frage, die ich bei der Einstellung eines Programmierers stellen würde, wäre: "Warum haben Sie sich als Programmierer ausgebildet?". Das wäre ein totes Werbegeschenk, wenn sie dort zögern.
Das ist meine Meinung.
quelle
Ein Freund von mir arbeitet in einem Unternehmen, in dem er einen weiteren Schritt im Einstellungsprozess hat: Nach dem ersten Screening und dem Vorstellungsgespräch muss ein Bewerber einige Tage lang seine Arbeit "testen". Er sagte mir , dass , obwohl ein Kandidat jedes Können und Talent benötigt hat, haben sie ihn nicht anstellen , weil er
eine einnicht eine nette Person , mit zu arbeiten.quelle
Es ist sehr schwer, einen Programmierer allein anhand eines Vorstellungsgesprächs zu erkennen.
Einige Dinge, die entscheiden, dass jemand ein guter Programmierer ist, sind:
Sie haben also ein paar kleine Hinweise, die Sie in einem Interview erfahren können:
quelle
Sie könnten einen Test im Interview durchführen.
Oft gibt es aber auch ein Problem mit der Arbeitsumgebung. Sicherlich ist dies in Ihrem Unternehmen nicht der Fall, aber im Bereich der Softwareindustrie ist es durchaus üblich, dass die technologische Verschuldung zu hoch wird. Dann, wenn Sie neue Leute einstellen, hilft es nicht viel, wenn sie gut sind oder nicht, wegen der Schulden. Das Maximieren der Lesbarkeit und Verständlichkeit Ihres Programmcodes hilft den Neulingen, sich an die Arbeit zu machen.
Auch viele Menschen sind so beschaffen, dass sie zusammenarbeiten können, aber manchmal gibt es keine Möglichkeit zur Zusammenarbeit. Wenn zum Beispiel alle Leute Entwickler sind, sollen sie ihren Job machen. Nun, das tun sie. Aber haben Sie einen Architekten, der das Entwicklungsprojekt steuert und Besprechungen und ähnliches führt? Normale Entwickler haben möglicherweise das Gefühl, dass sie nicht über das erforderliche Mandat verfügen, um Meetings zu starten, und denken, dass es nicht der richtige Weg ist, ab und zu andere zu unterbrechen.
Kommunikation untereinander sollte nicht das Endziel sein. Je weniger Kommunikation benötigt wird, desto besser, aber nur wenn weniger möglich ist. Weniger wird möglich, wenn Sie einen Architekten haben. Die Gesamtkommunikationsmenge bleibt möglicherweise auf einem guten Niveau, aber Sie erhalten mehr Ergebnisse für dieselbe Kommunikationsmenge.
quelle
Zuerst beginne ich mit den üblichen Interview-Sachen. Ich halte es für sehr wichtig, zu sehen, ob die Person vor mir etwas wert ist, und ihre Fähigkeiten und Kenntnisse zu bestimmen.
Danach setze ich einige Techniken im Bereich Java ein, um einige Prinzipien zu diskutieren, die hauptsächlich aus Effective Java stammen.
In diesem Stadium, wenn ich denke, dass ich einen guten Programmierer vor mir habe, gebe ich ihm einen Code, um ihn zu überprüfen. Was ich sehen möchte, ist, dass er die gefährlichen Teile des Codes lokalisieren, einige Hinweise auf Verbesserungen geben, Fallstricke auf die Leistung eines Multithreadings finden und dass er zwischen wichtigen Bemerkungen und "Geschmacksbemerkungen" unterscheiden kann. All dies hilft mir, einen kompetenteren Mitarbeiter zu finden.
Aber am Ende erinnere ich mich immer daran, dass Einstellungen eine Art Glücksspiel sind ... sehr, sehr schwer vorhersehbar ...
quelle
Ich weiß, dass dies nicht die Antwort auf Ihre Frage ist, aber ich empfehle, sofern dies gesetzlich zulässig ist, zunächst immer eine befristete Anstellung (zwei Wochen oder einen Monat, je nach Job). Wenn der Mensch sein Salz wert ist, wird er nichts dagegen haben, außerdem ist es ein Schutz für Sie beide (Sie können ihn gehen lassen und er könnte am Ende den Job nicht mögen und gehen).
quelle