Das Unternehmen, für das ich arbeite, sucht einen Senior-Entwickler mit mehr Erfahrung als ich und erwartet, dass ich den technischen Teil des Interviews mache. Ich habe nur ein paar Jahre programmiert und bin mir nicht sicher, ob ich die Kenntnisse habe, die erforderlich sind, um die Codierungsfähigkeiten von jemandem zu bewerten, der ein besseres Verständnis / mehr Erfahrung als ich hat.
Kann jemand technische Interviewfragen empfehlen, die ein gutes Mittel zur Bewertung von Programmierkenntnissen auf höherer Ebene sind, die ich aber dennoch verstehen kann?
Ich würde sagen, ich bin hinter dem jr. Programmierer-Level, aber bei weitem nicht älter. Das meiste, was ich getan habe, sind kleine Apps (Web und Desktop), von denen einige ziemlich kompliziert sind, aber alle sind dazu gedacht, von nicht mehr als einer Handvoll Benutzern verwendet zu werden. Ich habe das Gefühl, dass ich die meisten Programmierkonzepte gut verstehe und in der Lage bin, so gut wie alles selbst zu lernen / zu lehren, aber es fehlt mir an Erfahrung. Mein Chef sagt mir gern: "Du weißt nicht, was du nicht weißt."
Insbesondere möchten wir, dass die Person, mit der wir Erfahrung haben (die ich nicht habe), Folgendes tut: Mehrschichtige Entwicklung, Mehrbenutzerumgebung, umfangreiche Anwendungsentwicklung, bidirektionales Messaging, gemeinsame Sitzungen, und Multi-Threading / BackgroundWorkers.
AKTUALISIEREN:
Als Reaktion auf Thors Kommentar unten haben wir vor ein paar Monaten jemanden eingestellt, und ich denke, es hat großartig geklappt. Ich lerne viel, nicht nur über das Codieren, sondern auch über Dinge wie Entwurfsmuster, Softwarearchitektur, Dokumentation und wie andere größere Programmierteams Dinge erledigen. Es ist nicht immer einfach, jemanden dazu zu bringen, auf bessere Arten Dinge zu tun, die Sie getan haben, aber wenn Sie Ihren Stolz schlucken und bereit sind, neue Dinge auszuprobieren, können Sie viel lernen.
Der Interviewprozess verlief besser als erwartet. Ich fing an, Fragen zu Dingen zu stellen, mit denen ich vertraut war, und stellte dann einige Fragen zu Dingen, mit denen ich zu kämpfen hatte. Wenn der Befragte etwas sagte, das ich nicht verstand, bat ich ihn, es mir zu erklären und dann aufzuschreiben, damit ich es später nachschlagen konnte. Insgesamt fühlte ich mich in der Lage, eine ziemlich gute Vorstellung von den Fähigkeiten, der Intelligenz und der Art und Weise zu bekommen, mit der die Bewerber arbeiten würden.
Antworten:
Das kannst du nicht.
Stattdessen würde ich vorschlagen, dass Sie im Interview eine Liste der Probleme vorlegen, die Sie heute haben , und ihn fragen, wie er sie lösen würde .
Dies ist aus den folgenden zwei Gründen eine sehr interessante Methode:
Es ist eine kostenlose Beratung . Auch wenn Sie den Typen nicht einstellen, schlägt er möglicherweise nette Lösungen für Ihre Probleme vor .
Wenn er interessante Lösungen findet , ist er ein Problemlöser . Der Typ, den Sie einstellen möchten.
quelle
Nutze dein Alter als Vorteil.
Ich habe eine Menge Leute interviewt, die älter sind als ich. Ich wähle eine Technologie aus, die ich ziemlich gut kenne, und sage ihnen, dass ich von Technologie X gehört habe, sie aber nie verwendet habe. Ich bitte den Kandidaten, mir einen Überblick über die Technologie und deren Verwendung in einem Projekt zu geben.
Das funktioniert überraschend gut. Erstens, wenn der Kandidat diese Technologie X nur als Modewort in seinem Lebenslauf verwendet, ist ihre Erklärung nicht sinnvoll. Auch wenn sie Ihnen kein gutes, konkretes Beispiel dafür geben können, wie sie diese Technologie in ihren vergangenen Projekten eingesetzt haben, haben Sie genau dort eine große rote Fahne.
Ich interviewte jemanden, der Java Spring Erfahrung hatte. Ich hatte Spring in meinem vorherigen Job benutzt und eines der großen Merkmale von Spring ist Dependency Injection. Ich erzählte dem Kandidaten, den ich interviewt hatte, dass ich von Spring gehört und ihn nie benutzt habe. Er fing an, immer weiter zu plaudern, konnte mir aber nicht sagen, wo er Spring AOP verwendet hatte und konnte mir Dependency Injection nicht erklären, selbst nachdem ich explizit gefragt hatte, nachdem ich die Dinge gesehen hatte, die in seinem Lebenslauf stehen. Er hat mir nur gesagt, dass sie wirklich cool sind und es so viel zu lernen gibt, etc, etc. Es hat sich herausgestellt, dass er Jack nicht kannte ... und ich war der einzige, der herausgefunden hat, dass ich es war Ein jüngeres Mitglied des Entwicklerteams.
Nutzen Sie also Ihr Alter als Vorteil! Gehen Sie hinein, seien Sie zuversichtlich und stellen Sie einige Fragen zu Technologien, die Sie gut kennen.
quelle
Denken Sie daran, dass sie möglicherweise kein besserer Entwickler sind als Sie, nur weil sie mehr Erfahrung haben als Sie. Der Satz "Ein Jahr Erfahrung, n- mal wiederholt ." kommt, weil Sie sehen, dass dies in der Industrie passiert. Daher sollte Ihre erste Aufgabe während des Interviews sein, festzustellen, dass sie tatsächlich über die entsprechende Erfahrung verfügen und sich als jemand präsentieren können, der weiß, was sie tun. Nur weil jemand über n Jahre Erfahrung in der Industrie verfügt, bedeutet dies nicht, dass er über eine Menge Erfahrung in einer bestimmten Sprache, Bibliothek oder einem bestimmten Framework verfügt, sodass er von Zeit zu Zeit zu Ihnen kommen kann, um Fragen zu stellen, während er in der Industrie ist etwas lernen.
Denken Sie als nächstes daran, dass ein guter leitender Entwickler jemand ist, mit dem Sie sich an etwas wenden und nachfragen können, mit dem Sie Probleme haben. Dies ist ein guter Zeitpunkt, um ihnen einige Designfragen zu stellen, bei denen Sie Probleme hatten, und um zu sehen, wie sie reagieren und was ihre Argumentation in ihrer Erklärung ist. Haben sie etwas Ähnliches schon einmal gesehen, machen sie eine fundierte Vermutung basierend auf ihrer Erfahrung, haben sie einen Artikel online oder in einem Tagebuch gelesen?
Schließlich ist eine andere Sache zu betrachten, wie sie sich dem Debuggen von Code nähern. Aus eigener Erfahrung habe ich festgestellt, dass unabhängig von der Sprache bestimmte Debugging-Techniken in der Regel universell angewendet werden. Geben Sie dem Kandidaten ein Beispiel für einen der esoterischeren Fehler, auf die Sie gestoßen sind, und lassen Sie sich zeigen, wie er sich dem Fehler nähern würde. Haben sie einen Einblick in das Problem, der nicht sofort offensichtlich ist?
Zusammenfassend lässt sich sagen, dass das Befragen eines Kandidaten mit einem beeindruckenden Interview einschüchternd sein kann, aber es gibt etwas, das Sie behandeln müssen, unabhängig davon, auf welchem Niveau sie sich befinden (dh wissen sie tatsächlich, was sie tun), und sobald dies abgeschlossen ist, können Sie mit der Prüfung beginnen sie zu sehen, wie sie ihre Erfahrungen anwenden. Wie die Kandidaten ihre bisherigen Arbeitserfahrungen anwenden, wird einen Kandidaten mehr hervorheben als einen anderen.
quelle
Ich mag die Antwort " Nutze dein Alter als Vorteil" sehr, und ich würde etwas Ähnliches vorschlagen:
Nutzen Sie Ihre geringere Erfahrung als Vorteil
Diese Person wird wahrscheinlich Ihr Chef oder Mentor sein. Stellen Sie also Fragen so, dass Sie herausfinden, ob diese Person Sie tatsächlich als Mentor unterstützen kann.
Stellen Sie komplizierte Fragen, die viel einfacher sein könnten oder die überkomplizierte Probleme beinhalten. Wenn er / sie etwas Gutes ist, wird er / sie nicht nur versuchen, die Frage zu beantworten / das Problem zu lösen, sondern tatsächlich zum eigentlichen Problem gelangen und Ihnen die Fehler in Ihrer Frage zeigen. Wenn er das höflich schafft, ohne Sie einzuschüchtern, ist er ein Bewahrer.
quelle
Die wirklich bedeutende Sache ist , dass Sie sicherstellen , dass er die richtige Art von erfahrenen Entwicklern für das, was Sie brauchen.
Während Menschen ihre Karriere fortsetzen, tendieren sie dazu, in Bezug auf das, was sie tun, unterschiedliche Richtungen einzuschlagen. Möglicherweise interviewen Sie Leute, die Experten sind, wenn es darum geht, große Teams von Programmierern zu leiten oder mit verwickeltem Legacy-Code zu arbeiten. Machen Sie sich also vorab ein Bild davon, wonach Sie genau suchen, und überlegen Sie sich Fragen, die genau die Art von Entwickler für Ihren Job von anderen unterscheiden.
quelle
Ich musste das mehrmals machen. Ich habe gelernt, es schrittweise zu tun.
Mein größtes Problem bei der Befragung von Senior-Kandidaten war, dass sie oft sehr nervös wurden, von einer Junior-Person befragt zu werden, insbesondere von denen, die meine grundlegenden Codierungstests nicht bewältigen konnten. Versuchen Sie, in allen Fähigkeiten, die Sie während des Interviews zeigen, nicht bedrohlich zu wirken - konzentrieren Sie sich darauf, auch wenn sie Ihre Fragen nicht gut beantworten können. Versuchen Sie, das Interview auf Fragen zu verstellen, die beantwortet werden können, wenn die Grundlagen nicht zutreffen.
quelle
Im Hinblick auf den eigentlichen Interviewprozess behandeln Sie sie grundsätzlich genauso wie jede andere Person, die Sie einstellen. Es sollte einen ähnlichen Einstellungsprozess geben:
Es gibt viele andere Beiträge auf dieser Website, die allgemeine Diskussionsthemen behandeln, die Sie im Interviewprozess behandeln sollten - hier ist meine Antwort auf einen von ihnen .
An allen Punkten des Interviewprozesses sollte eine erfahrene Person ein exzellentes Verständnis für ihre beworbenen Spezialitäten nachweisen. Sie können sie zu jedem Thema, das Sie während der Diskussionen behandeln, eingehend untersuchen. Stellen Sie Fragen an die Grenzen Ihrer Erfahrung / Ihres Komforts und prüfen Sie, ob diese ohne Probleme fortgesetzt werden können. Wenn Sie mit etwas anfangen müssen, mit dem Sie nicht viel Erfahrung haben, suchen Sie im Internet nach Beispielfragen (wählen Sie sie aus), lesen und verstehen Sie die Antworten vor dem Interview und stellen Sie dann die Bewerben Sie sich um eine dieser Fragen. Erwarten Sie nicht, dass sie alle Antworten kennen, also haben Sie eine Auswahl an Fragen.
Es gibt zwei Arten von erfahrenen Ingenieuren, die Sie einstellen können:
1) Relevante Branchenerfahrung
Dies ist die Person, mit der Sie Ihre Liste der aktuellen Probleme zusammenstellen und besprechen können, wie sie diese Probleme angehen könnte. Sie sollten den Grad ihres Verständnisses für jedes der domänenspezifischen Themen in Ihrer Branche einschätzen. Wenn Sie in dieser Branche tätig sind, können Sie eine "dumme" Antwort von einer "guten" Antwort unterscheiden und wahrscheinlich auch eine "erfahrene" Antwort erkennen. Im Gegensatz zu anderen Antworten würde ich nicht erwarten, dass sie Ihre aktuellen Probleme tatsächlich lösen - das passiert, wenn Sie sie einstellen -, aber Sie müssen sich davon überzeugen, dass sie es können, wenn sie erst einmal angefangen haben.
2) Keine relevanten Branchenerfahrungen
Dieser Kandidat verändert möglicherweise die Branche, verfügt jedoch über gute Erfahrungen mit den von Ihnen benötigten Grundlagentechnologien / -plattformen / -fähigkeiten. Erwarten Sie jedoch nicht, dass sie in der Lage sind, Lösungen für domänenspezifische Probleme zu finden, auch wenn Sie nur darüber reden können. Wenn Ihr Unternehmen beispielsweise Facebook ist und die Person, die Sie interviewen, mit PHP und C ++ vertraut ist, ist es unrealistisch, von ihnen zu erwarten, dass sie alle Fallstricke massiver Serverfarmen kennen (es sei denn, sie geben dies in ihrem Lebenslauf an).
quelle
Eine Sache, auf die ich nicht ausdrücklich hingewiesen habe, ist: "Sie kennen die Technologie X sehr gut und sie klingt sehr interessant. Können Sie sie mir bitte in fünf Minuten erklären?"
Da Sie höchstwahrscheinlich in der Lage sein werden, den Code zu verwalten, der eventuell aus der neuen Person kommt, ist es entscheidend, dass er oder sie es anderen Programmierern effizient und gut erklären kann. Betrachten Sie es als Kommunikationsfähigkeit.
Ein gründliches Verständnis ist notwendig, um mit jedem anderen Entwickler auf seinem Fachniveau zusammenzutreffen und Gedanken und Ideen auf seinem Niveau zu kommunizieren.
Wenn die Person nicht mündlich kommunizieren kann, schreibt sie höchstwahrscheinlich nur den Code für den Compiler, nicht für den Betreuer.
quelle
Ich stimme Steven in Bezug auf den Mentoring-Teil zu. Tatsächlich würde ich sagen, dass Sie ihm Fragen dazu stellen können, was er / sie von Mentoring hält und wie er / sie in verschiedenen Szenarien vorgeht. Bewerten Sie anschließend anhand der Antwort (Sie können Feedback von Ihrem Chef erhalten, wenn Sie dies wünschen, oder die tatsächlichen Antworten in der Nachbesprechung besprechen).
Sie können auch Fragen stellen, die Sie einem Kollegen stellen würden, da der Kandidat wahrscheinlich in der Lage sein sollte, Ihre Arbeit zu lösen oder zumindest zu verstehen.
quelle
Wählen Sie auf jeden Fall sein Gehirn im Interview zu realen Problemen und Technologien, die Sie derzeit haben oder zu verwenden beabsichtigen
Nehmen Sie an, dass er ein kompetenter und einfallsreicher Senior-Entwickler ist, und entscheiden Sie sich, ob Sie etwas von ihm lernen und gut mit ihm zusammenarbeiten möchten oder nicht
Sie interviewen nicht Ihren zukünftigen Chef, sondern Ihren zukünftigen Mentor. Suchen Sie sich niemanden aus, der alle Antworten kennt, aber nicht unterrichten kann
quelle
Nehmen Sie einige der Probleme, die Sie bereits gelöst haben. Beschreiben Sie ihm, was getan wurde, um das Problem zu lösen (lassen Sie es bei der dritten Person; Sie möchten hier nicht Ihr persönliches Ego aufs Spiel setzen). Fragen Sie ihn, was er "anders" gemacht hätte. Sie sollten in der Lage sein, basierend auf dem, was er vorschlägt, herauszufinden, ob das konzeptionell besser oder schlechter gewesen wäre als das, was Sie getan haben.
quelle
Ich empfehle Ihnen ernsthaft, das Buch "Smart and Gets Things Done: Joel Spolskys Kurzanleitung zur Suche nach dem besten technischen Talent" zu lesen .
Ich habe nie jemanden eingestellt, aber manchmal, als ich der Befragte war, wünschte ich mir ein paar Idioten, die nur über Modewörter Bescheid wissen und mich interviewen und die Argumentation in diesem Buch offenlegen. Der Text ist sehr flüssig und angenehm zu lesen.
Und nein, ich mache keine Werbung, nur weil diese Seite vom Autor des Buches ist. Das Buch ist wirklich großartig und ich kann es jedem empfehlen, der IT-Leute anstellt, insbesondere solchen, die die Technologie nicht verstehen. Heutzutage ist es sehr verbreitet, einen nicht-technischen Projektmanager oder Chef zu haben.
quelle