Welche Techniken verwenden Sie bei der Befragung von Entwicklern? [geschlossen]

28

Mir ist klar, dass es viele Diskussionen über diese Art von Dingen gegeben hat, und sie drehen sich oft um das Dogma, ob man dem Typ "100 logische Piraten" Fragen stellt oder ob man sie dazu bringt, "Fizz Buzz" zu schreiben.

Ich bin daran interessiert, welche Techniken und Fragen für Sie bei der Befragung potenzieller Entwickler für Jobs effektiv waren .

Eine Technik pro Antwort, damit wir darüber abstimmen können.

Paddyslacker
quelle

Antworten:

21

Neben echten technischen Fragen versuche ich, am Ende des Interviews ein Bild von ihrem Interesse an der Branche und ihrer Kultur zu bekommen, und zwar mit Fragen wie:

  • Haben Sie in letzter Zeit etwas gesehen, was Sie im Zusammenhang mit der Programmierung interessant fanden und das Sie anderen Programmiererkollegen empfehlen möchten? Eine neue Sprache, ein neues Tool, eine neue Plattform, eine neue Technik, eine neue Website?

  • Können Sie eine bekannte Person in unserer Branche nennen, deren Arbeit Sie mögen oder die Sie inspiriert und warum? (Entwickler, Website-Gründer, Autor, Sprecher usw.)

  • Was liest du gerade oder was war das letzte softwarebezogene Buch, das du gelesen hast?

  • Welche programmbezogenen Sites besuchen Sie?

Die Beantwortung dieser Fragen überhaupt nicht (was leider sehr häufig vorkommt) bedeutet für mich nicht, dass ich nicht eingestellt werde. Sie sagen jedoch viel darüber aus, wie sich eine Person dem Softwareentwicklungsberuf nähert.

Sergio Acosta
quelle
4
Ich würde wahrscheinlich sogar sagen, dass dies das Wichtigste ist, was in einem Software-Interview zu beurteilen ist. Man könnte argumentieren, dass das Schreiben von Code wichtiger ist, aber Leute, die sich in letzter Zeit oder an der Universität mit etwas Ähnlichem befasst haben, können ihren Weg erraten, während es sehr schwer ist, echtes, echtes Interesse vorzutäuschen.
Mike B
5
Ich bin nicht überrascht, dass dies eine beliebte Antwort auf dieser Website ist. Das Publikum hier ist per Definition eines, das die "Programmiererkultur" schätzt. (Ich stimme der Antwort zu, habe aber mehrere hervorragende Programmierer getroffen, die diesen Test nicht bestehen würden, insbesondere diejenigen in der über 40-
köpfigen
2
@ Ashelly: Ja, ich stimme zu. Aus diesem Grund halte ich diese Frage nicht für wesentlich, um einen Programmierer abzulehnen oder zu akzeptieren. Es ist nur eine andere Technik, die Sie beim Vorstellungsgespräch anwenden können.
Sergio Acosta,
16

Lassen Sie sie Code schreiben, echten Code.

Der Interviewer lässt Sie möglicherweise die Programmiersprache auswählen, mit der Sie am besten vertraut sind, sei es C ++, Java, C # oder was auch immer, und bittet Sie, ein einfaches Problem zu lösen, z. Wenn Sie Probleme haben, Ihre beste Sprache zu verwenden, um ein einfaches Problem zu lösen, liegt ein Problem vor. Bitte beachten Sie Steve Yegge Blog - Post und insbesondere den Abschnitt „Mental Prep“.

grokus
quelle
6
Ja, aber nicht zu viel.
Damovisa
Indem Sie echten Code schreiben, können Sie die Türen von Elite-Software-Unternehmen (Google, Amazon, Microsoft, ...) öffnen und den Rest selbst auswählen.
Grokus
3
Bitte erläutern Sie Ihre Antwort. Was meinst du mit "echtem" Code? Welcher Code ist nicht "echt"?
MAK,
+1 @MAK: Einverstanden, was ist echter Code? Wenn es Code ist, den Sie in Ihrer Produktionssoftware verwenden möchten ...
Steven Evers
1
Ich würde "echten Code" in etwa als Aufforderung an den Befragten betrachten, eine "strdup ()" - Funktion zu schreiben. Es hat reale Verwendung und setzt ihre Erfahrung und Einstellungen zu Dingen wie Speicherverwaltung und Fehlerbehandlung aus.
JBRWilkinson,
11

Lassen Sie sie von mehreren Mitarbeitern Ihres Teams unabhängig voneinander interviewen. Teilen Sie Ihre Gedanken danach mit, sprechen Sie nicht dazwischen, bevor Sie sie interviewen. Dazwischen zu reden wird Ihr Urteil beeinflussen und Sie werden keine unabhängigen Beurteilungen haben.

Für die technischen Leute, die sie interviewen, schreiben sie Code. Versuchen Sie nicht, technische Fragen zu stellen, mit denen Sie nicht vertraut sind. Stellen Sie jedoch sicher, dass mindestens einige Techniker ein Interview führen.

Interviews sollten nicht nur von Managern geführt werden, sondern für jeden Arbeitnehmer, mit dem er in Zukunft zusammenarbeiten wird, von größter Bedeutung sein.

Brian R. Bondy
quelle
2
+1 für "Interviews sollten nicht nur von Managern durchgeführt werden". Wenn der neue Mitarbeiter den Code nicht so gut schneiden kann wie seine Kollegen, kommt es zu Unruhen im Team.
JBRWilkinson
7

Ich möchte von einem Interviewpartner erklären lassen, welche Projekte er zuvor durchgeführt hat und was er getan hat. Aus dieser Antwort kann ich folgende Fragen haben: Warum haben sie Dinge auf eine bestimmte Weise getan, wie haben sie ein bestimmtes Problem gelöst, wenn sie eines erwähnt haben, aber am wichtigsten ist, was der Zweck des Projekts war und welches Geschäftsproblem dies löste.

Ich mache das, um zu sehen, ob sie so artikulieren können, dass ich verstehe, was sie getan haben, und um zu sehen, ob sie verstanden haben, was sie auch getan haben.

Es ist überraschend, dass die letzte Frage über den Zweck des Projekts und das Geschäftsproblem viele Leute aufregt. Sie haben keine Ahnung, WARUM das Projekt, an dem sie gearbeitet haben, überhaupt durchgeführt wurde. Wenn Sie nicht wissen, warum Ihr Projekt überhaupt existiert, frage ich mich, ob Sie Lösungen beisteuern oder einfach das tun, was Ihnen gesagt wurde.

(Ich habe mir gedacht, dass ich diese hier reinwerfe, da alle anderen Antworten in der Regel technisch sind. Ich möchte, dass die Leute wissen, warum sie die Probleme lösen, die sie auch lösen. Andernfalls neigen sie dazu, die falschen Probleme zu lösen, die der Endbenutzer nicht tut. ' ist mir egal :)

Jay
quelle
6

Fragen Sie nach einer wichtigen architektonischen Entscheidung

Beispielsweise. Hier ist das Programm x, das y Teilaufgaben gleichzeitig ausführt. Welche würden Sie wählen, eine Multi-Prozess- oder Threading-Struktur.

Was sind die Vor- / Nachteile von beiden? Wie gut würden sie funktionieren und wie könnten sie verwendet werden, um eine Multi-Core-, Multi-Prozessor-Plattform zu nutzen, was ist Ihre persönliche Präferenz? Persönliche Vorurteile können dabei helfen, herauszufinden, ob sie das Wissen jemals anwenden mussten, und ihnen einen Sprungpunkt geben, um ihre Erfahrungen auszutauschen?

Es gibt Unmengen von Fragen, die sich ein Interviewer stellen könnte:

  • TCP oder UDP?
  • Dynamische oder statisch getippte Sprache?
  • Monolithische Anwendung oder mehrere kleinere Anwendungen?
  • Was würden Sie für die Interprozesskommunikation verwenden?
  • Gespeicherte Prozeduren oder ORM?

Bei den meisten dieser Themen handelt es sich um die Typen, die eine genaue Kenntnis darüber beinhalten, wie / warum ein Computersystem so funktioniert, wie es funktioniert. Sie alle sind Probleme / Lösungen für Probleme, für die es keine eindeutige Antwort gibt. Sie geben einen Eindruck davon, wie gut diese Person in der Lage ist, sich den jeweiligen Herausforderungen anzupassen oder sie zu bewältigen. Nicht die Art von Konzepten, die ohne praktische Erfahrung leicht aufgegriffen werden können.

Hinweis: Es ist auch ein Muss, dass der Antragsteller einen Pesudo-Code schreibt, aber diese Antwort ist bereits vergeben.

Evan Scholle
quelle
Die einzige Einschränkung, die ich hinzufügen möchte, besteht darin, sicherzustellen, dass die Frage nicht domänenspezifisch für das Unternehmen ist, das die Befragung durchführt.
JBRWilkinson
1

Geben Sie ihnen einfach einen grundlegenden Code, den Sie auf dem Whiteboard ausführen können - z. B. Implementierung einer verknüpften Liste, Sortieren oder ähnliches.

Sie können beurteilen, wie gut sie mit ihrer Sprache ohne Hilfe des Compilers umgehen können, und Sie können ihren Denkprozess beurteilen (insbesondere, wenn sie so etwas nie implementiert haben - die meisten "neuen" Programmierer haben es nie getan).

Josip Medved
quelle
8
Ich stimme dir nicht zu. Verknüpfte Listen und Sortieren sind bekannte Probleme, die häufig auftreten. Jeder, der eines geschrieben hat, weiß, wie es funktioniert, aber die meisten Leute machen sich nichts daraus, weil die meisten Sprachen bereits gute Arbeit leisten.
Evan Plaice,
Ich stimme Evan zu. In der Praxis ist es oft ausreichend, die Leistung verschiedener Sortier- / Suchalgorithmen und grundlegender Datenstrukturen zu kennen. Zu wissen, wie man sie implementiert, ist ordentlich, aber letztendlich nutzlos. Außerdem ist es in den meisten Programmierjobs wichtiger zu wissen, wie das richtige Framework / die richtige Bibliothek für die Aufgabe ausgewählt wird, als QuickSort in weniger als drei Zeilen zu implementieren.
Alan Plum
0

Unterhalten Sie sich, lassen Sie sich auf dem technischen und professionellen Weg treiben und suchen Sie auf dem Weg nach aufschlussreichen oder dummen Kommentaren. Auf diese Weise erhalten Sie 3/4 Ihrer Anforderungen aus einem Interview, einer Einschätzung der Fähigkeiten und der Persönlichkeit der Mitarbeiter, der allgemeinen Intelligenz und einer groben Einschätzung der technischen Fähigkeiten.

Verwenden Sie die "Fragen" Ihres Interviews als Themenstarter und um die Konversation mit technischen Themen in Einklang zu bringen. Möglicherweise müssen Sie die Konversation von Zeit zu Zeit zurücksetzen (z. B. eine Codierungsübung durchführen), um Problembereiche / Interessenbereiche angemessen zu untersuchen.

Der eigentliche Trick bei dieser Technik besteht darin, sicherzustellen, dass sie alle Gespräche führen. Andernfalls riskieren Sie eine positive Bewertung, da Sie sich dadurch schlau fühlen, wenn Sie auf alles hören, was Sie gesagt haben, oder dem zustimmen.

Mark Brackett
quelle