Wie gelangt man als Junior in ein groĂes Unternehmen? Wie stellt man einen wĂŒrdigen Junior ein, wenn man ein groĂes Unternehmen ist? Im Folgenden erzĂ€hle ich unsere Geschichte ĂŒber die Einstellung von AnfĂ€ngern im Frontend: wie wir Testaufgaben ausgearbeitet, uns auf Interviews vorbereitet und ein Mentorenprogramm zur Entwicklung und Einarbeitung neuer Mitarbeiter aufgebaut haben sowie warum Standardfragen fĂŒr VorstellungsgesprĂ€che nicht funktionieren.

Ich versuche, einen Junior zu trainieren.
Hallo! Mein Name ist Pavel, ich mache Frontend in einem Team bei Wrike. Wir entwickeln ein System fĂŒr Projektmanagement und Zusammenarbeit. Ich beschĂ€ftige mich seit 2010 mit dem Web, habe 3 Jahre im internationalen Remote-Bereich gearbeitet, an mehreren Startups teilgenommen und einen Kurs ĂŒber Web-Technologien an der UniversitĂ€t gehalten. In der Firma engagiere ich mich in der Entwicklung technischer Kurse und des Mentorenprogramms von Wrike fĂŒr Juniors sowie in deren Rekrutierung.
Warum wir ĂŒberhaupt ĂŒber die Einstellung von Juniors nachgedacht haben.
Bis vor kurzem haben wir Frontend-Entwickler auf mittlerem oder seniorem Niveau eingestellt â also solche, die selbststĂ€ndig genug sind, um nach der Einarbeitung produktive Aufgaben zu ĂŒbernehmen. Anfang dieses Jahres haben wir erkannt, dass wir diese Politik Ă€ndern möchten: Innerhalb eines Jahres hat sich die Anzahl unserer Produktteams fast verdoppelt, die Zahl der Frontend-Entwickler war fast bei hundert, und in naher Zukunft wird sich das noch einmal verdoppeln mĂŒssen. Es gibt viel zu tun, wenig freie HĂ€nde, und auf dem Markt sind es noch weniger, also haben wir beschlossen, uns an diejenigen zu wenden, die gerade erst ihren Weg im Frontend beginnen, und haben verstanden, dass wir bereit sind, in ihre Entwicklung zu investieren.
Was ist ein Junior?
Das ist die erste Frage, die wir uns gestellt haben. Es gibt verschiedene Kriterien, aber das einfachste und verstÀndlichste Prinzip lautet:
Einem Junior muss erklÀrt werden, welche FunktionalitÀt und wie sie umgesetzt werden soll. Einem Mid-Level-Entwickler muss erklÀrt werden, welche FunktionalitÀt benötigt wird, und er kann selbst herausfinden, wie es umgesetzt wird. Ein Senior wird dir selbst erklÀren, warum diese FunktionalitÀt nicht umgesetzt werden sollte.
So oder so ist ein Junior der Entwickler, der Beratung benötigt, wie er eine bestimmte Lösung umsetzen kann. Worauf wir uns gestĂŒtzt haben:
- Ein Junior ist jemand, der sich entwickeln will und bereit ist, dafĂŒr viel zu arbeiten;
- Er weià nicht immer, in welche Richtung er sich entwickeln möchte;
- Er benötigt Rat und sucht UnterstĂŒtzung von auĂen â bei seinem Teamleiter, Mentor oder in der Community.
Wir hatten auch mehrere Hypothesen:
- Auf die Junior-Stelle wird es einen Sturm an Bewerbungen geben. Man muss zufÀllige Bewerbungen bereits beim Versand von LebenslÀufen filtern;
- Der erste Filter wird nicht helfen â es werden noch Testaufgaben benötigt;
- Testaufgaben werden alle abschrecken â sie sind nicht notwendig.
Nun, natĂŒrlich hatten wir ein Ziel: 4 Junioren in 3 Wochen.
Mit diesem Bewusstsein begannen wir zu experimentieren. Der Plan war einfach: mit einem möglichst breiten Trichter zu beginnen und ihn schrittweise so zu verengen, dass wir den Strom bearbeiten konnten, ohne ihn auf 1 Kandidaten pro Woche zu reduzieren.
Wir veröffentlichen die Stellenanzeige
FĂŒr das Unternehmen: Es wird Hunderte von Bewerbungen geben! Denken Sie an den Filter.
FĂŒr Junioren: Haben Sie keine Angst vor dem Fragebogen vor dem Versand des Lebenslaufs und der Testaufgabe â das ist ein Zeichen dafĂŒr, dass das Unternehmen sich um Sie kĂŒmmert und den Prozess gut eingestellt hat.
Am ersten Tag erhielten wir etwa 70 LebenslĂ€ufe von Kandidaten mit 'JavaScript-Kenntnissen'. Und dann noch mehr. Wir konnten physisch nicht alle zum Interview ins BĂŒro einladen und wĂ€hlten aus ihnen die besten mit den coolsten Pet-Projekten, einem aktiven GitHub oder zumindest etwas Erfahrung.
Aber die wichtigste Erkenntnis, die wir am ersten Tag gewannen â der Sturm hatte begonnen. Es war an der Zeit, ein Formular fĂŒr den Fragebogen vor dem Versand des Lebenslaufs hinzuzufĂŒgen. Seine Aufgabe war es, Kandidaten auszusondern, die nicht bereit waren, minimalen Aufwand fĂŒr den Versand des Lebenslaufs zu betreiben, und jene, die ĂŒber kein Wissen und keinen Kontext verfĂŒgten, um wenigstens so viele Informationen zu haben, dass sie die richtigen Antworten googeln konnten.
Es gab Standardfragen zu JS, Layout, Web, Informatik â sie kennt jeder, der weiĂ, was bei einem VorstellungsgesprĂ€ch im Frontend gefragt wird. Was ist der Unterschied zwischen let/var/const? Wie wendet man Styles nur fĂŒr Bildschirme mit einer Breite von weniger als 600px an? Wir wollten diese Fragen nicht im technischen Interview stellen â die Praxis hat gezeigt, dass man darauf nach 2-3 Interviews antworten kann, ohne wirklich mit der Entwicklung vertraut zu sein. Aber sie konnten uns zunĂ€chst zeigen, ob der Kandidat grundsĂ€tzlich den Kontext versteht.
FĂŒr jede Kategorie hatten wir 3-5 Fragen vorbereitet und Ă€nderten Tag fĂŒr Tag die Auswahl im Antwortformular, bis wir die einfachsten und die schwierigsten ausgeschlossen hatten. Das ermöglichte es uns, den Strom zu reduzieren â in 3 Wochen haben wir 122 Kandidaten erhalten, mit denen man weiterarbeiten konnte. Es waren Studenten aus dem IT-Bereich; Jungs, die von Backend auf Frontend umsteigen wollten; Arbeiter oder Ingenieure im Alter von 25-35 Jahren, die ihren Beruf radikal Ă€ndern und unterschiedlich viel MĂŒhe in Selbstbildung, Kurse und Praktika gesteckt haben.
Lernen wir uns besser kennen
FĂŒr das Unternehmen: Die Testaufgabe schreckt die Kandidaten nicht ab, sondern hilft, den Auswahlprozess zu straffen.
FĂŒr Junioren: Kopiert keine Testaufgaben â das ist deutlich zu erkennen. Und haltet euren GitHub in Ordnung!
Wenn wir alle zu technischen Interviews eingeladen hĂ€tten, mĂŒssten wir ungefĂ€hr 40 Interviews pro Woche nur fĂŒr Junioren und nur im Frontend fĂŒhren. Daher haben wir uns entschieden, die zweite Hypothese ĂŒber die Testaufgabe zu prĂŒfen.
Was uns bei der Testaufgabe wichtig war:
- Eine gute, skalierbare Architektur zu schaffen, aber ohne Ăberengineering;
- Es ist besser, es lĂ€nger zu machen, aber gut zu machen, als ĂŒber Nacht eine schnelle Lösung zusammenzuwerfen und mit dem Kommentar "Ich werde es auf jeden Fall zu Ende bringen" zu senden;
- Die Entwicklungsgeschichte in Git â Ingenieurkultur, iterative Entwicklung und dass die Lösung nicht plump kopiert wurde.
Wir sind zu dem Schluss gekommen, dass wir eine algorithmische Aufgabe und eine kleine Webanwendung sehen wollen. Die Algorithmen waren auf dem Niveau von Laborarbeiten fĂŒr Grundkurse â binĂ€re Suche, Sortierung, ĂberprĂŒfung auf Anagramme, Arbeiten mit Listen und BĂ€umen. Letztendlich haben wir uns fĂŒr die binĂ€re Suche als erste Testoption entschieden. Die Webanwendung sollte ein Tic-Tac-Toe sein, unter Verwendung irgendeines Frameworks (oder ohne).
Die Testaufgabe wurde von fast der HĂ€lfte der verbleibenden Kandidaten absolviert â uns wurden Lösungen eingereicht 54 Kandidaten. Unglaubliche Einsicht â wie viele umsetzbare Varianten von Tic-Tac-Toe denkt ihr, gibt es im Internet?
Wie viele?TatsĂ€chlich scheinen es nur 3 zu sein. Und in den ĂŒberwiegenden Mehrzahl der Lösungen waren genau diese 3 Varianten zu finden.
Was uns nicht gefallen hat:
- Kopieren von Code oder Entwicklung nach demselben Tutorial ohne eigene Architektur;
- Beide Aufgaben im selben Repository in verschiedenen Ordnern, wobei es natĂŒrlich keine Commit-Historie gibt;
- Schmutziger Code, Verletzung des DRY-Prinzips, Mangel an Formatierung;
- Mischung aus Model, View und Controller in einer Klasse mit hunderten von Codezeilen;
- Mangelndes VerstĂ€ndnis fĂŒr Unit-Tests;
- Die Lösung âeindimensionalâ â ein Hardcodieren der Gewinnkombinationen fĂŒr 3x3, was ziemlich schwer auf 10x10, zum Beispiel, zu erweitern sein wird.
Und wir haben auch auf benachbarte Repositories geachtet â coole Pet-Projekte liefen im Plus, wĂ€hrend eine ganze Reihe von Testaufgaben anderer Unternehmen eher ein Alarmsignal war: Warum konnte der Kandidat dort nicht bestehen?
Letztendlich fanden wir groĂartige Optionen in React, Angular, Vanilla JS â es gab insgesamt 29. Und einen anderen Kandidaten luden wir ohne Test aufgrund seiner wirklich groĂartigen Pet-Projekte ein. Unsere Hypothese ĂŒber den Nutzen von Testaufgaben wurde bestĂ€tigt.
Technisches Interview
FĂŒr das Unternehmen: Bei Ihnen sind keine Mid-Levels/Senioren gekommen! Es ist ein individuellerer Ansatz nötig.
FĂŒr Junioren: Denken Sie daran, dass dies keine PrĂŒfung ist â versuchen Sie nicht, bei einer Drei zu schweigen oder den Professor mit dem ganzen Wissen, das Sie haben, zu ĂŒberfluten, sodass er verwirrt ist und eine âeinsâ gibt.
Was wollen wir im technischen Interview verstehen? Eine einfache Sache â wie der Kandidat denkt. Wahrscheinlich hat er einige Hard Skills, wenn er die ersten Auswahlphasen bestanden hat â es bleibt zu klĂ€ren, ob er in der Lage ist, sie anzuwenden. Wir einigten uns auf 3 Aufgaben.
Die erste â ĂŒber Algorithmen und Datenstrukturen. Mit Stift, auf Blatt Papier, in einer Pseudoprogrammiersprache und mit Hilfe von Zeichnungen diskutierten wir, wie man einen Baum kopiert oder ein Element aus einer einfach verketteten Liste entfernt. Eine unangenehme Entdeckung war, dass nicht alle Rekursion und die Funktionsweise von Verweisen verstehen.
Die zweite â Live-Coding. Wir gingen auf , wĂ€hlten einfache Aufgaben wie das Sortieren eines Arrays von Wörtern nach dem letzten Buchstaben aus und versuchten zusammen mit dem Kandidaten, alle Tests in 30-40 Minuten zu bestehen. Es schien, als sollte es keine Ăberraschungen von den Leuten geben, die Tic Tac Toe bewĂ€ltigt hatten â aber in der Praxis konnten nicht alle verstehen, dass der Wert in einer Variablen gespeichert werden musste und die Funktion etwas ĂŒber return zurĂŒckgeben sollte. Obwohl ich aufrichtig hoffe, dass es nur ein Nervenkitzel war und die Leute in einer entspannteren Umgebung diese Aufgaben bewĂ€ltigen konnten.
SchlieĂlich die dritte â ein wenig ĂŒber Architektur. Wir diskutierten, wie man eine Suchleiste machen kann, wie dabei Debouncing funktioniert, wie man verschiedene Widgets in den Suchhinweisen rendert und wie das Frontend mit dem Backend interagieren kann. Es gab einige interessante Lösungen, auch ĂŒber Server-Side-Rendering und Web-Sockets.
Wir haben 21 Interviews nach diesem Schema durchgefĂŒhrt. Das Publikum war völlig gemischt â lassen Sie uns das an Comics verdeutlichen:
- âRaketaâ. Sie beruhigt sich nie, mischt sich ĂŒberall ein und bei Interviews wird sie Sie mit einem Gedankenstrom ĂŒberschĂŒtten, der direkt nicht mit der gestellten Frage zusammenhĂ€ngt. Wenn es sich um eine UniversitĂ€t handeln wĂŒrde, wĂ€re das fĂŒr viele eine bekannte Versuch, all ihr Wissen zu demonstrieren, wenn man sich nur daran erinnert, dass man das Ticket, das man bekommen hat, gestern Abend nicht lernen wollte â es ist so oder so nicht mehr zu retten.
- âGrootâ. Es ist ziemlich schwierig, mit ihm in Kontakt zu treten, weil er Groot ist. Man muss bei den Interviews lange auf ihn einreden und die Antworten Wort fĂŒr Wort hervorholen. Es ist gut, wenn es nur ein Stocken ist â sonst wird es spĂ€ter in der tĂ€glichen Arbeit sehr schwer fĂŒr Sie.
- âDraxâ. FrĂŒher war er im GĂŒtertransport tĂ€tig und hat nur JS ĂŒber Stackoverflow gelernt, deshalb versteht er nicht immer, worĂŒber beim Interview gesprochen wird. Dabei ist er ein guter Mensch, hat die besten Absichten und möchte ein groĂartiger Frontend-Entwickler werden.
- Und wahrscheinlich, âStar-Lordâ. Insgesamt ein ordentlicher Kandidat, mit dem man verhandeln und einen Dialog aufbauen kann.
Am Ende unserer Recherchen 7 Kandidaten haben es ins Finale geschafft, indem sie ihre Hard Skills mit einer groĂartigen Testaufgabe und guten Antworten im Interview unter Beweis stellten.
Cultural Fit
FĂŒr das Unternehmen: Sie werden mit ihm arbeiten! Ist der Kandidat bereit, extrem viel fĂŒr seine Entwicklung zu arbeiten? Passt er wirklich ins Team?
FĂŒr Junioren: Sie werden mit ihnen arbeiten! Ist das Unternehmen wirklich bereit, in das Wachstum von Juniors zu investieren, oder wird es Ihnen nur die gesamte Drecksarbeit fĂŒr ein niedriges Gehalt aufhelfen?
Jeder Junior kommt â neben dem Produktteam, dessen Leiter zustimmen muss, ihn aufzunehmen â zu einem Mentor. Die Aufgabe des Mentors ist es, ihn durch einen dreimonatigen Onboarding- und Hard-Skill-Entwicklungsprozess zu fĂŒhren. Daher kamen wir zu jedem Cultural Fit als Mentoren und stellten uns die Frage: âWerde ich die Verantwortung ĂŒbernehmen, den Kandidaten in 3 Monaten nach unserem Plan zu entwickeln?â
Dieser Schritt verlief ohne Besonderheiten und brachte uns schlieĂlich 4 Angebote, von denen 3 angenommen wurden, und die Jungs traten den Teams bei.
Leben nach dem Angebot
FĂŒr das Unternehmen: KĂŒmmere dich um deine Juniors oder es werden es andere tun!
FĂŒr Junioren: AAAAAAAAAAAAAAA!!!
Wenn ein neuer Mitarbeiter eingestellt wird, muss er onboarding â in die Prozesse eingewiesen werden, erklĂ€rt bekommen, wie alles im Unternehmen und im Team funktioniert und wie er allgemein arbeiten soll. Wenn ein Junior eintritt, muss man verstehen, wie man ihn weiterentwickeln kann.
Als wir darĂŒber nachdachten, haben wir eine Liste von 26 FĂ€higkeiten erstellt, die, unserer Meinung nach, ein Junior bis zum Ende der dreimonatigen Onboarding-Phase besitzen sollte. Darunter fallen Hard-Skills (basierend auf unserem Stack), Kenntnisse ĂŒber unsere Prozesse, Scrum, Infrastruktur und Projektarchitektur. Wir haben sie in einem Zeitplan zusammengefasst, der sich ĂŒber 3 Monate erstreckt.

Hier ist zum Beispiel der Zeitplan meines Juniors.
Jeden Junior weisen wir einen Mentor zu, der individuell mit ihm arbeitet. AbhÀngig vom Mentor und dem aktuellen Niveau des Kandidaten können die Treffen 1 bis 5 Mal pro Woche je 1 Stunde stattfinden. Mentoren sind freiwillige, engagierte Frontend-Entwickler, die mehr machen wollen, als nur Code zu schreiben.
Ein Teil der Last wird von den Kursen zu unserem Stack â Dart, Angular â von den Mentoren genommen. Die Kurse finden regelmĂ€Ăig fĂŒr kleine Gruppen von 4-6 Personen statt, wo die Teilnehmer ohne Unterbrechung von der Arbeit lernen.
Ăber die 3 Monate hinweg sammeln wir regelmĂ€Ăig Feedback von den Juniors, deren Mentoren und den Leads und passen den Prozess individuell an. 1-2 Mal wĂ€hrend des gesamten Zeitraums findet eine ĂberprĂŒfung der erworbenen FĂ€higkeiten statt, die am Ende ebenfalls durchgefĂŒhrt wird â auf deren Basis werden Empfehlungen erstellt, welche Bereiche verbessert werden sollten.
Fazit
FĂŒr das Unternehmen: Sollte man in Juniors investieren? Ja!
FĂŒr Junioren: Suchen Sie Unternehmen, die sorgfĂ€ltig Kandidaten auswĂ€hlen und wissen, wie man sie entwickelt.
In 3 Monaten haben wir 122 Umfragen, 54 Testaufgaben durchgesehen und 21 technische Interviews durchgefĂŒhrt. Das fĂŒhrte uns zu 3 groĂartigen Juniors, die mittlerweile die HĂ€lfte ihrer Onboarding- und BeschleunigungsplĂ€ne erfolgreich bewĂ€ltigt haben. Sie lösen bereits echte Produktaufgaben in unserem Projekt, wo allein im Frontend mehr als 2.000.000 Codezeilen und ĂŒber 400 Repositories vorhanden sind.
Wir haben festgestellt, dass der Auswahlprozess fĂŒr Juniors durchaus anspruchsvoll sein kann und sollte, aber letztendlich sind es nur die Kandidaten, die wirklich bereit sind, sehr hart zu arbeiten und in ihre Entwicklung zu investieren.
Derzeit besteht unsere Hauptaufgabe darin, die dreimonatigen Roadmaps zur Entwicklung fĂŒr jeden Junior in individueller Zusammenarbeit mit einem Mentor und gemeinsamen Kursen abzuschlieĂen, Metriken zu sammeln, Feedback von Teamleitern, Mentoren und den Teilnehmern selbst einzuholen. Damit kann das erste Experiment als abgeschlossen betrachtet werden, um daraus SchlĂŒsse zu ziehen, den Prozess zu verbessern und ihn erneut zu starten, um neue Kandidaten auszuwĂ€hlen.
Quelle: habr.com
