Wie führe ich ein Vorstellungsgespräch zu einem Thema, in dem ich nicht wirklich gut bin?

Ich arbeite derzeit für eine kleine Firma als Website-/Softwareentwickler. Ich schreibe hauptsächlich den serverseitigen Code; Die Schnittstellen, die ich für die Website erstelle, sind langweilig und interagieren nicht wirklich mit dem Benutzer.

Ich habe versucht, JavaScript, J-Query und Ajax zu lernen, aber es schien mir zu viel, weil ich selten Zeit für etwas anderes hatte.

Mein Unternehmen hat beschlossen, ein paar clientseitige Entwickler einzustellen, die den clientseitigen Code schreiben können. Wir werden in etwa 3 Tagen ein persönliches Interview mit den Interviewpartnern führen.

Das Problem ist, dass es niemanden gibt, der darin gut ist, also baten sie mich, die technischen Fähigkeiten der Befragten zu testen.

Das Einzige, was ich gut kann, sind die Grundlagen von JavaScript. Ich glaube nicht, dass die Interviewpartner Probleme haben werden, die Fragen zu beantworten, die ich ihnen gestellt habe, da es sich um grundlegendes Skripting handelt.

Wie kann ich Leute am besten interviewen, wenn ich nicht über die notwendigen Fähigkeiten verfüge, um festzustellen, ob sie in der Lage sein werden, den Job auszuführen?

Antworten (5)

Ich wurde manchmal zu Vorstellungsgesprächen für Positionen gezogen, in denen ich nicht besonders qualifiziert bin, und als Spezialist wurde ich oft von Leuten interviewt, die sich in meinem Bereich nicht sehr gut auskennen. Hier sind Dinge, die ich gesehen habe:

  • Bevor Sie jemanden interviewen, versuchen Sie, das "101"-Zeug in dem relevanten Bereich zu lernen. Für Javascript gibt es online verschiedene Ressourcen. Hinweis: Dies ist nicht so, dass Sie gute Fragen stellen können; wirst du wahrscheinlich nicht. Der Zweck davon ist, dass Sie BS erkennen können.

  • Stellen Sie Verhaltensfragen, die sie dazu bringen, über die technischen Probleme zu sprechen. "Was war der schwierigste Fehler, den Sie lösen mussten?" ist gut; Sie können sie bitten, zu erklären, was das Problem war, welche Ansätze sie gewählt haben, was sie letztendlich getan haben und so weiter. Dies kann Ihnen direkt etwas über die Qualität ihres Codes sagen oder auch nicht, aber es wird Ihnen viel darüber sagen, wie sie Probleme analysieren, aufschlüsseln und letztendlich lösen. Und wenn sie Details zur Implementierung verlieren, können Sie sich Notizen machen und später vielleicht eine Plausibilitätsprüfung durchführen.

  • Bitten Sie sie, ausführlich über ein wichtiges Projekt zu sprechen – Architektur, Design, UX-Überlegungen, Tests, Bereitstellung, Wartung usw. Für die meisten davon spielt es fast keine Rolle, in welcher Sprache der Code vorliegt. Sie versuchen, die tiefere Frage zu beantworten: "Kann diese Person Software schreiben, mit der wir leben wollen?".

  • Fordern Sie eine Demo an. Suchen Sie sich etwas Interessantes aus und fragen Sie nach einem Walk-Through des Codes dahinter. Während der Kandidat erklärt, was es tut, sollten Sie auf die üblichen Code-Hygiene-Dinge achten – Kommentare, klare Organisation, verständliche Namen und so weiter. Wenn er Schwierigkeiten hat, es zu erklären, ist das ein Grund zur Sorge. (Ein kurzer Blick auf den Code und "Oh ja, da habe ich das hingeschrieben" ist in Ordnung; ich meine, wenn er ratlos ist.)

  • Holen Sie unbedingt technische Referenzen ein, nicht nur Führungszeugnisse, und fragen Sie nach den fachlichen Stärken und Schwächen des Kandidaten.

Ich mache so ziemlich das Gleiche – eine andere, die ich für fast ein Muss halte, ist, sie zu bitten, etwas zu erklären, das ich nicht weiß – „erkläre einfach die Grundlagen dessen, was X-Technologie ist und wann sie am nützlichsten ist“ – wenn sie es nicht können dies in kurzer Zeit und nachvollziehbar tun, das passt nicht. Besonders dort, wo Ihr Team noch keinen Experten hat – jeder „Experte“, den Sie einstellen, sollte besser in der Lage sein, Nicht-Experten einige einfache Konzepte zu erklären, damit Sie erfolgreich interagieren können.
@bethlakshmi, das ist ein ausgezeichneter Punkt; Wer auch immer für diese Position eingestellt wird, muss in der Lage sein, seine Entwurfs-/Implementierungsentscheidungen so zu erklären, dass alle anderen sie verstehen können, so gut, dass sie relevante Fragen stellen und Antworten erhalten können.
ja. Der schlimmste Fehler, den ich je gemacht habe, war, einen Mann einzustellen, der für andere Experten Sinn zu machen schien , aber für mich, den Nicht-Experten, keinen Sinn machte. Wie sich herausstellte, war der Typ klug, aber sehr schlecht im Kommunizieren – also machte er komplizierte Dinge, die keinen Nutzen hatten, aber innerhalb ihrer eigenen fehlerhaften Annahmen perfekt funktionierten
Jetzt versuche ich mich immer noch daran zu erinnern, welches der schlimmste Fehler war, auf den ich gestoßen bin ... die, die durch das berüchtigte PHP #29992 verursacht wurden , könnten gewinnen, aber ich bin mir nicht sicher.
Gute Antwort. Ich wünschte nur, du wärst noch da, um meine positive Bewertung zu schätzen :-/

Ich würde Ihnen empfehlen, die Grundlagen der Softwareentwicklung in Ihre Interviewstrategie einzubeziehen. Als Disziplin gibt es unabhängig von der Sprache mehrere Bedenken, die sich über die Softwareentwicklung / das Engineering erstrecken:

  • Entwurfsmuster : Ein anständiges Projekt verwendet eine Art Entwurfsmuster. Ein anständiger Entwickler sollte in der Lage sein, ein bestimmtes Muster zu identifizieren und muss es zu einem späteren Zeitpunkt in der Vergangenheit implementiert haben. Ich bin selbst kein Javascript-Ninja, aber ich kann vermuten, dass ein erfahrener Javascript-Entwickler mit Frameworks wie Node.js ein Verständnis für die grundlegenden Prinzipien des Softwaredesigns haben würde

  • Leistung : Unabhängig von der Sprache/Plattform gibt es normalerweise einen effizienten Weg, Dinge zu erledigen, und einen verschwenderischen Weg, etwas zu tun. In Java gibt es eine BufferedXXXFamilie von Klassen, die für eine bessere E/A-Programmierung gedacht sind, und jeder Java-Entwickler mit 6 Monaten Erfahrung wird dies wissen. Suchen Sie nach solchen grundlegenden Leistungsprinzipien in JavaScript, die ein erfahrener Entwickler kennen sollte. Schauen Sie sich diesen Artikel an, um sich zu orientieren

  • Frameworks : Als logische Konsequenz aus dem ersten Punkt könnten Sie ein oder zwei Javascript-Frameworks nachschlagen und die Einführung überfliegen (insbesondere, was diese Frameworks leisten können). Entwerfen Sie jetzt ein oder zwei Interviewfragen um diese herum. Das Ziel hier ist einfach: Entweder hat der Befragte diese Frameworks zuvor verwendet und kann ein Maß an Komfort nachweisen, das Ihren eigenen übertrifft, ODER, hat das fragliche Framework nicht verwendet, ABER die Person sollte in der Lage sein, Alternativen zu den Frameworks und was sie bieten erreichen können

  • Arbeitsproblem : Recherchieren Sie gründlich ein bestimmtes Problem in Javascript (Sie können damit beginnen, eine der am häufigsten bewerteten Javascript-Fragen zu SO durchzusehen), verstehen Sie die Lösung und präsentieren Sie dieses Problem dem Befragten. Es könnte sich um eine grundlegende Frage zum Programmieren oder um eine eher konzeptionelle Frage zu Best Practices handeln. Die Quintessenz ist, dass Sie die Antwort kennen sollten und warum es die Antwort ist (falls der Befragte falsch liegt oder einen alternativen Ansatz vorschlägt).

Letztendlich erwarten Sie von einem Entwickler Flexibilität und Intelligenz, Nebenprodukte eines soliden Verständnisses der Grundlagen der Softwareentwicklung

Es ist wahrscheinlich eine gute Idee, sie einige der 101-Sachen zu fragen und zu sehen, wie sie damit umgehen - Sie würden erwarten, dass sie ziemlich selbstbewusst antworten, aber ich bin sicher, einige werden es nicht tun.

Ich würde auch versuchen, mir ein reales Szenario auszudenken, an dem sie in Ihrem Unternehmen arbeiten könnten, und sie fragen, welchen Ansatz sie zur Lösung des Problems verfolgen würden. Dann recherchieren Sie das Problem entweder selbst oder stellen Sie dieselbe Frage auf dem Stack oder einem anderen Message Board und sehen, ob ihre Antwort ihre Vorzüge hat.

Denken Sie auch immer daran, Mitarbeiter in der Probezeit zu haben, die Sie auch wieder loswerden können, wenn es gerade nicht passt. Manchmal geht es nicht darum, den absolut besten Programmierer zu haben, sondern jemanden, der bereit ist, mehr zu lernen und gut im Team zu arbeiten.

Ich denke, die meisten Befragten werden nervös sein und denken, dass es einen versteckten Haken in den 101 Fragen gibt. Dann werden sie anfangen, zu viel darüber nachzudenken und ins Stocken geraten :)

Ich bitte Entwickler, vor mir zu programmieren. Idealerweise beherrsche ich die Sprache, aber ich akzeptiere etwas, wo ich es nicht tue. Wenn ich im Voraus weiß, dass ich die Sprache nicht kenne, schaue ich mir die relevanten Details/APIs im Voraus an, um zu wissen, was mich erwartet. Ich werde auch versuchen, Fragen zu den Aspekten der Technologie zu stellen, die ich kenne. Wenn ich im Voraus nicht weiß, was die Sprache sein wird (ein Praktikant kennt ein paar Sprachen und sie überschneiden sich nicht mit meinen), ist das in Ordnung. Ich kann beim Beobachten von Code immer noch nach Logik suchen und sie mir später genauer ansehen, wenn ich möchte.

Für JavaScript könnten Sie den Kandidatencode auf einem Computer vor sich haben. Sie sehen, welche Bibliotheken die Person verwendet, wie sie denkt, recherchiert, nach Anforderungen fragt usw.

Wie Sie sagten, ist es Ihnen wichtig, dass der Kandidat den Job machen kann. Warum geben Sie ihnen also nicht etwas Ähnliches wie den Job? Nicht der eigentliche Job, denn das wäre so, als würde man kostenlose Arbeitskräfte bekommen. Aber ein erfundenes Beispiel, das ähnliche Fähigkeiten verwendet.

Einige mögen denken, dass dies Ihre Frage nicht beantwortet, aber ich denke, es bietet einige Strategien, um das Problem der Einstellung eines qualifizierten Entwicklers auf Kundenseite zu lösen. Gibt es ein Gesetz, das besagt, dass Sie dies selbst tun müssen?

  1. Arbeiten Sie an den Details für diesen Job. Das Schreiben von clientseitigem Code und UX sind nicht dasselbe. Sie möchten vielleicht etwas von beidem, aber entscheiden Sie das Verhältnis. Dies ist der erste Schritt, um die richtige Person für den Job zu finden. Es gibt viele Entwickler, die Javascript, CSS und HTML lernen, aber keine Eingabeaufforderung entwerfen konnten.
  2. Holen Sie sich Beispiele ihrer Arbeit.
  3. Stellen Sie einen Auftragnehmer auf Teilzeitbasis ein. Wenn Sie einen Einstellungsfehler machen, können Sie ihn leicht korrigieren, indem Sie die Person für viel weniger als einen Vollzeitbeschäftigten loswerden.
  4. Verwenden Sie als Option zu Nr. 3 eine Personalvermittlung. Sie können eine Zeitarbeitssituation schaffen, wenn Sie ein wenig Freiheit gewinnen möchten. Viele Menschen stellen möglicherweise die Fähigkeit dieser Agenturen in Frage, technische Talente zu identifizieren. Manche besser als andere.
  5. Wenden Sie sich an Personen in Ihrer Technik. Community und versuchen Sie, einige Empfehlungen zu erhalten. Warum nur abwarten, wer sich bewirbt.

Konzentrieren Sie im Rahmen des Vorstellungsgesprächs einige der Fragen auf die Problembereiche, die Sie hatten. Legen Sie sie entweder auf die Tafel, um einige Diagramme und Code zu verspotten, aber stellen Sie sie idealerweise vor eine Tastatur und sehen Sie, was sie haben. Können sie Code schreiben? Sehen Sie, welche Tools sie verwenden. Bringen sie Probleme mit der Browserkompatibilität mit sich? Haben sie ähnliche Probleme gesehen. Ich versuchte mich an einem Webfront-End und traf jemanden in einem Café, der mich in weniger als 15 Minuten verblüffen konnte. Ich würde diese Person sofort einstellen.