Ich habe mehr als hundert Interviews geführt, sowohl einerseits als auch andererseits. In diesem Artikel möchte ich meine Erfahrungen, Beobachtungen und interessanten Punkte teilen. Vielleicht erspart dies jemandem Fehler, falsche Schlussfolgerungen und verlorene Zeit.
Was für ein Vogel ist Senior?
Senior Software Developer (auch bekannt als Senior Developer) ist ein Entwickler mit bedeutender Erfahrung (ab 5 Jahren) und tiefem Wissen in der kommerziellen Softwareentwicklung. Berufserfahrung in der Entwicklung für Geld ist eine notwendige, aber nicht ausreichende Voraussetzung. Stellen Sie sicher, dass Sie an jedem Projekt auf Unternehmensebene teilnehmen. Wenn es auch von Anfang an perfekt ist, bietet es ein unvergessliches Erlebnis und einen umfassenden Ausblick. Senior unterscheidet sich von Middle vor allem dadurch, dass es jede Aufgabe produktionsbereit machen kann. Er weiß genau, was getan werden kann und was nicht. Es ist in der Lage, den Moment zu erfassen, in dem es Zeit ist, die Software umzugestalten oder sie einfach von Grund auf neu zu schreiben. Schreibt einen qualitativ hochwertigen Code ohne kritische und architektonische Fehler.
Es ist ein Fehler anzunehmen, dass Senior schneller als Middle ist. In meiner Praxis gab es viele Fälle, in denen Middle einfache Aufgaben schneller erledigte. Senior arbeitet jedoch fast immer besser und schneller bei komplexen Aufgaben, wenn Sie die gesammelten Erfahrungen anwenden, Fehler vermeiden und Zeit in der Phase der Entwicklung, Wartung und Entwicklung verschwenden können.
Der Hauptzweck des Interviews
Seltsamerweise folgen die Interviewer manchmal nicht dem Hauptzweck des Interviews - um festzustellen, ob der Entwickler für das Team nützlich ist und inwieweit dieser Vorteil mit den Kosten dieses Entwicklers zusammenhängt. Stattdessen enthüllt der Interviewer oft, was der Entwickler nicht weiß, anstatt herauszufinden, was er weiß und kann. Infolgedessen kommt er zu falschen Schlussfolgerungen mit allen sich daraus ergebenden Konsequenzen.
Wer sollte interviewen?
Hier ist die einzig richtige Antwort der unmittelbare zukünftige Leiter von aka Team Lead. Ein häufiger Fehler besteht darin, 2-3 Personen seitens des Befragten zu befragen und dabei übergreifende und inkonsistente Fragen zu stellen. Dies alles schafft unnötigen Stress für den Befragten und verhindert die Herstellung eines psychologischen Kontakts.
Atmosphäre
Das Interviewen ist immer ein Stress für den Entwickler, für jemanden mehr, für jemanden weniger. Viele von ihnen wissen nicht, wie sie sich qualitativ "verkaufen" sollen. Daher ist es äußerst wichtig, einen Entwickler zu gewinnen und das Interview auf eine freundliche Kommunikation zwischen zwei Kollegen zu übertragen. In einem freundlichen Gespräch können Sie in der Tat herausfinden, wie Sie Ihren vorherigen Job verlassen und welche Fähigkeiten die befragte Person ohne Verschönerung besitzt.
Kompetenzen lernen
Wie ich bereits in "Ziele" geschrieben habe, ist es wichtig, die Stärken des Befragten herauszufinden, mit was er früher gearbeitet hat, woran er den Hund gefressen hat, welche Ansätze er verwendet hat, welche Zahnräder er unterwegs getroffen hat.
Schlüsselkompetenzen für einen Senior-Entwickler:
- Algorithmen
- Architektur, Designmuster.
- Datenbanken
- Parallele Ausführung und Synchronisation von Prozessen.
- Grundlagen der Softwareleistung.
- Debuggen und Protokollieren.
Eine wichtige Rolle für einen Entwickler ist es, zu verstehen, wie es funktioniert, Konzepte und Funktionen zu kennen, anstatt ein bestimmtes Tool zu kennen. Wenn er beispielsweise MySQL gründlich verstanden hätte, wäre es für ihn nicht schwierig, mit Postgres umzugehen. In den meisten Fällen ist es für einen erfahrenen Entwickler nicht schwierig, schnell ein Tool zu erlernen.
Sehr oft wechseln die Befragten zu einigen ihnen vertrauten Angaben. Hier sind die Fälle aus der Praxis:
- Wie lösche ich mit SQL eine Zeile, wenn mehr als eine unter die Auswahlkriterien fällt?
- Welcher git-Befehl setzt das letzte Commit zurück?
- Welche Methoden eines Objektobjekts in Java kennen Sie? Möglicherweise gibt es andere Optionen in anderen Sprachen - etwas, das der Interviewer gut kennt.
Diese Fragen stammen ebenfalls aus der Kategorie „eine Münze in die Luft werfen“. Ihr Wissen oder ihre Unwissenheit lassen keine objektiven Schlussfolgerungen über die Erfahrung des Entwicklers zu.
Es gibt auch eine separate Kategorie von "witzigen" Liebhabern dummer Fragen und Aufgaben zur Überprüfung der "Verständlichkeit", echte Beispiele:
- Warum ist die Luke rund?
- Wie man genau 4 Liter Wasser in einen Eimer gießt, wenn es zwei Eimer gibt - 3 und 5 Liter?
- Löse ein Rätsel, sammle zum Beispiel einen Zauberwürfel.
Das Problem bei solchen Fragen ist, dass nicht nur Menschen mit niedrigem IQ herausgefiltert werden, sondern auch ein erheblicher Teil der klugen Kerle, die einfach nicht bereit für solche Fragen sind oder unter Stress stehen. Anstelle von klugen Jungs gehen hier oft diejenigen weiter, die bereits die Antworten und Lösungen für Standardfragen und -aufgaben kennen.
Auf der Suche nach Motivation
Es gibt eine so häufig gestellte Frage seitens des Befragten: „Warum möchten Sie mit uns zusammenarbeiten?“ Es versteht sich, dass der Befragte seine Motivation ehrlich und offen offenbaren wird - "Ich will mehr Geld" oder "Alles ist besser als jetzt." Für den Befragten kann eine solche Frage jedoch zu buchstäblichen Missverständnissen führen, und er antwortet selten offen. Daher ist es besser, sich bei indirekten Fragen über die Motivation zu informieren.
Was sind die Motivationen:
- Das Geld . Die beliebteste Motivation, aber es wird oft nicht akzeptiert, sie zuzugeben. Es funktioniert gut für Familien und diejenigen, die es gewohnt sind, viel auszugeben oder wirklich sparen wollen.
- Interessante Aufgaben . Wenn die Leute ihre Arbeit wirklich mögen und bereit sind, Überstunden und am Wochenende zu leisten, ohne zusätzliche Bezahlung zu benötigen.
- Verbessere neue Fähigkeiten . Die Industrie steht nicht still und muss sie ständig pumpen, um auf dem Arbeitsmarkt gefragt zu bleiben.
- Karrierewachstum . Eine der Hauptmotivationen für die Arbeit in einem Startup.
- Bekanntes oder Hype-Unternehmen . Die Gelegenheit, ein Teil von ihr zu sein und die Vorteile ihres Ruhms zu nutzen.
Was Sie Senior Developer nicht fragen sollten
- Wie der selten benötigte XXX-Algorithmus funktioniert (z. B. Quicksort). Warum fragen, was in der täglichen Arbeit des Entwicklers nicht benötigt wird, aber Google in 5 Sekunden?
- Besitzen Sie ein einfaches JJJ-Werkzeug (z. B. Git)? Ich habe noch keinen Entwickler getroffen, der die grundlegenden Git-Funktionen, die für die tägliche Arbeit benötigt werden, in ein oder zwei Tagen nicht beherrscht hätte.
- Wissen Sie, wie man Tests schreibt? Frage mit einem Sternchen. Das Schreiben von Tests ist einfach, aber zu lernen, zu verstehen, was und in welchem Umfang getestet werden muss, erfordert eine lange Übung. Tatsächlich reicht nur ein erfahrener Testautor in einem Team aus, der diesen Prozess effektiv steuern kann.
- Was ist Agile / Kanban / Scrum? Die Methodik, wie die Entwicklung durchgeführt wird, wird vom Teamleiter ausgewählt, dementsprechend müssen gewöhnliche Darsteller sie nicht gründlich kennen, und die Grundprinzipien werden innerhalb weniger Tage verstanden.
Arten von Senior-Entwicklern
Um die Motivation und die Fähigkeiten eines bestimmten Entwicklers zu verstehen, müssen die ihm innewohnenden Typen hervorgehoben werden. Ich habe die folgenden gebräuchlichen Typen identifiziert:
- Schöpfer oder Leidenschaft . Er eilt von der Arbeit selbst, nicht trivialen Aufgaben, bei denen man etwas erfinden muss. Manchmal werden Fahrräder beschafft, aber mit dem Wachstum der Kompetenzen werden sehr hochwertige Produkte hergestellt. Die Hauptmotivation sind interessante Projekte und Aufgaben.
- Die Routine . Kann sehr routinemäßige Arbeiten ausführen, ohne die Produktivität im Laufe der Zeit zu beeinträchtigen und ohne Motivation zu erfordern.
- Superheld . Erledige die Aufgabe um jeden Preis, auch wenn nicht genügend Kompetenz und Zeit vorhanden sind. Es formt sich oft aus Scheiße und Stöcken, aber mit dem Anwachsen von Kompetenzen wird etwas mehr oder weniger Anständiges erreicht. Sehr wertvoll für Startups und anspruchsvolle Chefs.
- Kompetent . Man kann ihn nicht auf der Spreu täuschen, man kann ihn nicht mit Hype täuschen, er versucht immer, die Essenz von Technologie und Aufgaben zu verstehen, er denkt tief und strukturell. Wertvoller Mitarbeiter in jedem Projekt.
- Oberflächlich . Sie greifen nach klugen Worten, Ansätzen, studieren (oberflächlich) Hype-Technologien und -Tools und versuchen, all dies im Projekt anzuwenden, indem sie große Handvoll einschenken, auch wenn es möglich ist, kleine zu verwalten. Typischerweise zu Beginn einer Karriere und einfach getriebene und beeindruckbare Kameraden.
- Geiselstimmung . Es gibt eine Stimmung - die Arbeit ist in vollem Gange, so dass nur Muscheln gebracht werden, es gibt keine Stimmung - sie wird nachdenklich aussehen und mehr philosophieren als die Arbeit.
- Karrierist . Klar auf Karrierewachstum ausgerichtet. Seit mehr als einem Jahr kein Wachstum - ein potenzieller Kandidat für die Abreise.
- Konservativ . Ein Liebhaber von Stabilität und Traditionen bezieht sich negativ auf all diese neuen kleinen Dinge, Werkzeuge und Ansätze.
- Manimen . Es funktioniert dort, wo sie mehr bezahlen, daher ist die Loyalität gegenüber dem Unternehmen recht gering. Er liebt Boni, Boni, kostenlose Nishtyaki und andere finanzielle Motivationen.
Oft kombiniert eine bestimmte Person mehrere Typen in unterschiedlichen Proportionen. Im Laufe der Zeit ändern sich die Typen und ihre Proportionen beim Menschen, und es gibt auch Personen, die sich an Aufgaben anpassen können (typisch für Superhelden). Es wird angemerkt, dass mit zunehmendem Alter der Anteil des Konservativen in vielen wächst, der Schöpfer ausbrennen kann und das Oberflächliche zu einem Kompetenten heranwachsen kann.
Psychologischer Zustand
Leider entwickeln ältere Entwickler manchmal die falschen Fähigkeiten und ihr Charakter kann sich verschlechtern, was das gegenseitige Verständnis und die effektive Teamarbeit erheblich erschwert.
Oft gibt es solche Bedingungen:
- Das Leben ist Verfall . Manchmal kommt es vor, dass der geschriebene Code aus irgendeinem Grund nicht in die Produktion geht (z. B. für Geschäftsentscheidungen) oder nicht lange lebt (Start oder unfähige Verwaltung). Dies ist ernsthaft demoralisierend mit allen Konsequenzen. Dies sollte nicht mit einem gesunden gewöhnlichen Zynismus aufgrund von Berufserfahrung verwechselt werden.
- Zen verstanden . Im Laufe der Jahre studiert ein Entwickler in einem statischen Enterprise-Projekt es auf und ab und hat das Gefühl, dass er jetzt ein seltener Spezialist ist. In der Tat kosten seine Fähigkeiten außerhalb dieses Projekts fast nichts, es gibt eine Neubewertung seiner Fähigkeiten durch den Entwickler.
- Unterschätzt und unsicher . Eine Reihe erfolgloser Projekte, schlechtes Management und andere Risiken lassen den Entwickler an seinen Fähigkeiten und Fertigkeiten zweifeln, obwohl er sich in Wirklichkeit als sehr fähiger und wertvoller Mitarbeiter erweisen kann. Unterschätzt sich oft in Bezug auf Gehalt und / oder Position.
- Überbewertet . Im Gegensatz zu den unterschätzten und unsicheren Personen hat diese Person ein erfolgreiches Projekt oder eine erfolgreiche Serie gefangen, die äußerst erfolgreich war und auf dieser Welle seine Fähigkeiten und Fertigkeiten stark überschätzt.
Aber was ist mit der Testaufgabe?
Das Problem bei der kurzen Testaufgabe (2-3 Stunden) ist, dass es nach den Ergebnissen unmöglich ist, endgültige Schlussfolgerungen zu ziehen, ob der Autor Erfahrung in der Entwicklung des Senior-Levels hat oder nicht. Mit dem gleichen Erfolg können Sie einfach eine Münze in die Luft werfen.
Schlussfolgerungen
Nach den Ergebnissen des Interviews sollte ein objektiver Eindruck des Entwicklers entstehen:
- Was sind seine Stärken?
- Wie kann er das Team stärken?
- Wie viel Zeit braucht er, um "Reisegeschwindigkeit" zu erreichen.
- Wie viel das gewünschte sn den obigen Punkten entspricht.
- Gibt es psychologischen Kontakt und Kompatibilität mit dem Team?
Wenn es aus irgendeinem Grund nicht möglich ist, alle diese Fragen sicher zu beantworten, können Sie eine weitere Interviewrunde durchführen oder den Kandidaten ablehnen. Die nächste Runde kann aus einer bestimmten Aufgabe bestehen, die beispielsweise die fehlenden Informationen aufdeckt - einen halben Tag Codierung direkt an Unternehmen, die durchschnittlich bezahlt werden.
PS Alle Punkte in einem Artikel können nicht beschrieben werden. Wenn Sie also Fragen haben oder etwas diskutieren möchten, schreiben Sie in die Kommentare oder
E-Mail .