Nachwuchsentwickler einstellen, was soll ich fragen? [geschlossen]

56

Zur Zeit stellen wir einen Nachwuchsentwickler ein, der mir hilft, da ich mehr Projekte habe, als ich derzeit verwalten kann. Ich habe noch nie jemanden eingestellt, der kein Freund oder zumindest ein Bekannter war. Ich habe ein Telefoninterview mit dem einzigen Bewerber, der mir tatsächlich aufgefallen ist (auf Papier), aber das habe ich noch nie gemacht.

Unsere Projekte sind allesamt datenintensive Webanwendungen mit hoher Skalierbarkeit, die Millionen von Transaktionen pro Stunde auf mehreren Servern und Clients verarbeiten. Um sprach- / stapelspezifisch zu sein, verwenden wir ASP.Net MVC2, WebForms und C # 4, MSSQL 2008 R2, die alle auf Windows Server 2008 R2 ausgeführt werden

Was soll ich ihn fragen? Wie soll ich das Telefonat strukturieren?

Jeremy Boyd
quelle
5
Warum ein Junior-Entwickler und kein Senior-Entwickler?
Job
10
Kosten; Unternehmen wurde gerade in diesem Quartal profitabel ... und mein Ego ist zerbrechlich;)
Jeremy Boyd
48
In vielerlei Hinsicht kann ein "billiger" Entwickler teurer sein als ein erfahrener / teurer Entwickler. Der fragile Ego-Kommentar ist geradezu beängstigend. Wenn Sie niemals Leute einstellen, die schlauer sind als Sie, dann sind Sie immer der Lehrer und niemals der Schüler. Auf diese Weise bleiben Sie im Staub.
JohnFx
6
Es gibt einige falsche Junioren (<3 Jahre Erfahrung, aber viele Fähigkeiten). Ist das Alter wichtig?
James P.
2
Wenn Sie Junior-Entwickler einstellen, bedeutet dies, dass Sie deren Erfahrung nicht bewerten können. Weil sie in ihrer kurzen Karriere nicht viel Erfahrung haben. Auf der anderen Seite können Sie ihre Programmierkenntnisse bewerten und auch sehen, wie sie Code schreiben. Der erste Schritt kann also ein Fähigkeitstest sein, wie zum Beispiel http://tests4geeks.com. Im zweiten Schritt können Sie sie bitten, zu Hause einfache Programme zu schreiben. In Ihrem Fall kann es sich um eine MVC-Anwendung handeln, die eine Liste einiger Daten mit JSON und AJAX anzeigt. Die Liste wird automatisch durch einen Timer aktualisiert, sodass der veröffentlichte Artikel ohne Verweis angezeigt werden kann.
harsh

Antworten:

49

Fragen Sie, welche Tech-Blogs sie lesen, was der Bewerber an der aktuellen Technologie interessiert und warum.

Grundsätzlich möchten Sie für ein Telefoninterview herausfinden, ob dies jemand ist, der von Technologie und Programmierung begeistert ist und Interesse daran hat, mehr zu lernen und zu wissen.

Da dies ein Junior ist, können Sie nicht erwarten, dass er viele fortgeschrittene Themen kennt, aber Sie möchten sicher sein, dass er wie ein Programmierer denken kann - geben Sie ihm ein einfaches Problem und lassen Sie sich von ihm erklären, wie er es lösen würde. Es wird Ihnen einen Einblick geben, wie sie denken und Probleme lösen.

Oded
quelle
Ich wünschte, ich könnte zwei Antworten wählen, denn sowohl Ihre als auch die von Peter K. sind eine großartige Kombination.
Jeremy Boyd
5
Diese Antwort ist begrenzt und wird Menschen schaden, die nur diesen Rat befolgen . Folgen Sie für den Telefonbildschirm den Anweisungen von Steve Yegge . Haben Sie für eine Person Herausforderungen beim Programmieren und folgen Sie Joels Guerilla-Leitfaden für Interviews . Haben Sie eine Designfrage - "Welche Schritte sind erforderlich, um <gemeinsame, nicht triviale Software einzufügen>?" Sie werden feststellen, dass alle guten Mitarbeiter unabhängig von ihrer Erfahrung gute und schnelle Antworten auf diese Probleme haben.
Robert P
Ich wünschte, ich könnte +3 @RobertP-Blogs von Branchenkollegen wie Yegge, Joel und Atwood lesen. oder irgendjemand in der Branche, vor allem aber, wenn Sie in der Lage sind, andere Ingenieure anzuleiten oder einzuschätzen.
Jimmy Hoffa
26

Ich verfolge einen offenen Ansatz für Telefoninterviews, aber um dies zu strukturieren, bitte ich die Person normalerweise, den von ihnen eingereichten Lebenslauf durchzusprechen. Die Art und Weise, wie sie ihren Lebenslauf durchgehen, wird oft andere Fragen aufwerfen und Sie werden ein besseres Verständnis dafür bekommen, wie sie sind.

Das andere, woran Sie während des Telefoninterviews denken sollten, ist die Frage: Kann ich mit dieser Person zusammenarbeiten? Sind sie energisch? Nervig? Präzise?

Peter K.
quelle
20

Code mit ihnen.

Sie sollten auf jeden Fall die üblichen Interview-Sachen machen. Aber ich stelle niemanden ein, ohne eine Paarprogrammierungssitzung mit ihnen zu machen.

Mein Ansatz: Ich nehme mir 2-3 Stunden Zeit für ein Spielzeugproblem (z. B. "Lassen Sie uns Twitter v 0.1 erstellen" für einen Full-Stack-Entwickler oder "Lassen Sie uns eine Liste von Grundelementen implementieren" für eine Back-End-Person). Wir setzen uns an denselben Computer und besprechen, wie wir das angehen können. Ich schreibe den ersten Komponententest und sage: "Mach den Durchgang". Vielleicht schreibe ich die nächsten paar Tests, um ihnen den Start zu erleichtern. Und dann lasse ich sie meistens rennen und springe nur gelegentlich ein. Wenn die Zeit knapp wird, werde ich sie anhalten und fragen, wohin sie es als nächstes bringen und was sie tun möchten, bevor sie es live übertragen.

Dinge, die ich suche:

  • Können sie gut zusammenarbeiten?
  • Verstehen sie die Grundlagen?
  • Können sie ein Problem in Teile zerlegen?
  • Schätzen sie sauberen Code?
  • Fangen sie ihre eigenen Käfer?
  • Versuchen sie, Mist zu bauen, wenn sie etwas nicht wissen?
  • Lieben sie es zu programmieren?
William Pietri
quelle
17
Ich bezweifle ernsthaft, dass ein Junior bei einer Paar-Programmiersitzung mit TDD-Stil oder bei Unit-Tests im Allgemeinen gut abschneiden wird.
Martin Blore
3
Hängt vom Hintergrund des Junior-Programmierers ab. Ich habe gerade eine letzte Woche angeheuert, die großartig darin war. Im weiteren Sinne ist dies jedoch ein Teil dessen, was ich beim Vorstellungsgespräch herausfinden möchte. Wenn sie im Testteil nicht gut sind, schreibe ich die Tests einfach selbst oder lasse sie ohne Tests aufladen. In beiden Fällen kann ich sehen, wo ihre Stärken und Schwächen liegen.
William Pietri
2
Ich würde das jetzt nicht gerne tun, nach 10 Jahren Erfahrung, egal als ich ein Junior war. Ein schrecklicher Gedanke!
AnthonyBlake
3
Ich würde mich als Junior-Programmierer bezeichnen und würde diesen Ansatz begrüßen, um zu zeigen, wie und was ich tun kann. Allzu oft stoße ich auf Fragen, die wörterbuchgetreue Definitionen erfordern, ohne Rücksicht auf ihre Verwendung und die Gesamtimplementierung. Möchten Sie lieber eine auswendig gelernte Liste der Verwendungen des staticSchlüsselworts aus Wikipedia zitieren oder zeigen, wie ich es in einem tragfähigen und anwendbaren Kontext verwenden kann?
amcc
7

What's your Stack Overflow account name?

Eine der besten Möglichkeiten, um herauszufinden, wie der Code eines anderen aussehen wird, besteht darin, ihn aus erster Hand zu sehen. Eine der besten Möglichkeiten, dies zu tun, ist über SO.

Ansonsten gelten Standardfragen. Fragen Sie nach schwierigen Situationen und wie sie diese überwunden haben. Fragen Sie, welche neuen Sprachen sie lernen oder überlegen und warum. Fragen Sie sie, welche IDE sie verwenden und warum sie sich dafür entschieden haben. Welche Quellcodeverwaltung?

Sie können viel lernen, indem Sie offene Fragen stellen, die sich möglicherweise nicht auf ein bestimmtes Projekt beziehen, sondern es ihnen ermöglichen, ihren Gedankenprozess mit Ihnen durchzuarbeiten.

EricBoersma
quelle
Besser nach ihrem Github-Konto fragen, obwohl sie diese Informationen wahrscheinlich geteilt hätten, wenn sie ein Konto hätten.
Job
7
Diesmal loggte ich mich in SO ein und erkannte, dass 90% der Leute dort sich nur um die Webentwicklung kümmern ... dann ging ich ... so sehr für meinen Repräsentanten.
Pemdas
3
Dies kann zwar funktionieren, ist jedoch nicht unbedingt korrekt. Man kann erhebliche Anstrengungen in ihre bezahlte Arbeit als in die beiläufige Beratung, die beigetragen wird, investieren.
NoChance
5
Für das, was es wert ist, haben einige der besten Entwickler in meinem Unternehmen entweder kein SO-Konto oder einen Ruf <100. Natürlich ist es großartig, wenn sie ein Konto mit einem hohen Wiederholungsgehalt haben, aber man kann nicht viel darüber lesen sie haben keine hohe.
Jeremy Wiggins
Wenn der Kandidat in SO etwas aktiv ist (oder in der Vergangenheit manchmal aktiv war), finden Sie den Link wahrscheinlich in seinem Lebenslauf. Andererseits haben Interviewer selten die Zeit, sich so etwas anzuschauen. Was in manchen Fällen gut für Sie sein kann, weil ich zum Beispiel nicht auf jede Frage / Antwort stolz bin, die ich auf SO gepostet habe.
Radu Murzea
6

Eine Sache, die ich hier in meinem schnellen Lesen nicht gesehen habe, ist die Notwendigkeit, sie zu fragen:

1 - Lernbereitschaft

2 - Fähigkeit zum Autodidakt vs. formale Ausbildung

3 - Beispiel für etwas, das sie selbst in der Vergangenheit gelernt haben

4 - Ein Beispiel für Bereiche, in denen sie sich nicht wohl fühlen

5 - Allgemeine Frage auf hoher Ebene wie "Wenn Sie mit dem Erstellen einer Webanwendung beauftragt sind, ... welche Aufgaben auftreten müssen und wer sie ausführen soll" - Diese Frage soll Ihnen eine Vorstellung von ihrem aktuellen Wissen über den Entwicklungsprozess vermitteln muss nicht genau sein, aber zumindest lernst du ihre Sichtweise so kennen, wie sie heute ist.

Keine Chance
quelle
4

Sprechen Sie mit mir über ein Projekt, an dem Sie in der Vergangenheit gearbeitet haben

  • Beschreiben Sie die Gesamtarchitektur des Projekts. High Level ist in Ordnung.
  • Was hat Ihnen an dem Projekt gefallen ?
  • Was haben Sie an dem Projekt nicht gemocht ?
  • Was hätten Sie im Nachhinein anders gemacht?

Dies ist meiner Meinung nach eine gute Frage für Interviews, telefonisch oder auf andere Weise. Wenn sie intelligent über ein Projekt sprechen können, an dem sie gearbeitet haben, ist die Wahrscheinlichkeit groß, dass sie es "verstanden" haben. Sie stellen einen Junior-Entwickler ein, daher ist es noch nicht wichtig, dass er Experte ist, aber er sollte zumindest sein Fachgebiet gut genug verstehen, um darüber zu sprechen. Normalerweise können die Leute, die Sie einstellen möchten, problemlos damit umgehen, während die Leute, von denen Sie sich fernhalten möchten, in wenigen Sätzen oder weniger antworten.

Was tun Sie, um auf dem Laufenden zu bleiben?

  • Welche Blogs liest du?
  • Welche Bücher hast du gelesen / liest du?
  • Noch etwas?

In einer Branche, die sich ständig verändert, denke ich, ist es wichtig, dass sie auf dem Laufenden bleiben. Dies ist nicht die wichtigste Frage, die ich in einem Interview stelle, aber wenn sie nichts zu sagen haben, ist das kein gutes Zeichen.

Sag mir, wie du einen Fahrradkurs schreiben würdest

Vielleicht eine bessere Frage für ein persönliches Interview, damit sie tatsächlich einen Pseudocode schreiben können, aber ich denke, es könnte auch für ein Telefoninterview funktionieren ... Beschreiben Sie ein Fahrrad (es hat Lenker, Räder usw.), das jemand fährt. ) und lassen Sie sie beschreiben, wie sie die Klasse (n) modellieren würden. Nichts bahnbrechendes hier, aber wenn sie mit dieser Frage kämpfen, sind sie wahrscheinlich immer noch zu jünger, um ein Aktivposten zu sein.

Jeremy Wiggins
quelle
2

Es gibt bereits viele gute Interviewtipps, aber ich glaube nicht, dass Sie diese Position besetzen können, bevor Sie nicht genau wissen, was sie täglich tun werden. Wenn Ihr erster Gedanke war: "Was immer ich von ihnen brauche." Hör einfach auf. Suchen Sie einen bestimmten Codeabschnitt, den sie überprüfen können. Wählen Sie den besten und den schlechtesten Code aus, um festzustellen, ob sie den Unterschied kennen. Geben Sie ihnen Bereiche, an denen sie für ein erstes schnelles Projekt arbeiten können, das möglicherweise vernachlässigt wurde.

Hoffentlich haben Sie den besten Programmierer eingestellt, aber jeder hat Bereiche, in denen er besser / erfahrener ist als andere. Nutzen Sie es und definieren Sie ihre Rolle entsprechend.

Oh, und stellen Sie jemanden ein, der Erfahrung darin hat, Dinge zu erledigen.

JeffO
quelle
0

Wenn Sie ein Einzelgespräch mit dem Entwickler führen, können Sie ihn kennenlernen und dann überprüfen, ob er mit Ihnen ehrlich ist.

Dazu können Sie ihm die folgende Frage stellen, um zu erfahren, wie ehrlich er wirklich ist

  1. Wenn sie Zertifizierungen durchgeführt haben, wie z. B. eine Microsoft-Zertifizierung, überprüfen Sie mit ihnen, ob sie wirklich dafür studiert haben, und löschen Sie sie.

  2. Einige Nachwuchsentwickler, die ihre Projekte im letzten Jahr durchgeführt haben, hätten das Projekt nicht selbst durchgeführt, dh ihre Freunde müssen es für sie getan haben usw.

Ehrlichkeit spielt eine sehr wichtige Rolle, wenn dem Nachwuchsentwickler vertrauliche Projekte anvertraut werden.

Wenn Sie der Meinung sind, dass Sie ihnen vertrauen können, können Sie einen Fragebogen zu den angeworbenen Technologien und anschließend einen praktischen Text mit einem Beispielszenario erstellen, um zu überprüfen, ob sie die logische Fähigkeit haben, dh zu überprüfen, ob sie bei der Programmierung ständig auf dem neuesten Stand sind.

Karthik Sreenivasan
quelle
1
das Schlimmste von Menschen annehmen?
tp1
+1 für die Annahme. @ tp1 Alle Optionen offen lassen. : D
Karthik Sreenivasan
0

Nada Aldahleh, CEO von Sandglaz, hat kürzlich einen Blogbeitrag dazu geschrieben, der auf ihren eigenen Erfahrungen mit der Einstellung von Entwicklern für ihr Startup basiert. Hier sind einige der Dinge, nach denen sie sucht:

  • Problemlösung Denkweise
  • starke Kommunikationsfähigkeiten
  • Architektur- und Algorithmusfragen stellen; Ein Nachwuchsentwickler sollte in der Lage sein, neue kleine Features zu entwickeln, und Algorithmusfragen können Aufschluss über die Denkweise zur Problemlösung und die Art ihrer Grundlage geben
  • Rätsel, um analytische Fähigkeiten zu isolieren

Und natürlich der Programmiertest, der allerdings nicht aus der Fizz-Buzz-Frage bestehen sollte. Ein realer Auftrag, der innerhalb weniger Stunden in Ihrem Büro erledigt werden kann, ist die beste Art von Test.

Sie können mehr von ihrem Rat hier lesen: http://blog.sandglaz.com/how-to-interview-and-hire-junior-developers/

user104460
quelle