
Die Anmeldung für bei Yandex läuft weiter. Es gibt fünf Richtungen: Backend, ML, mobile Entwicklung, Frontend und Analyse. In diesem Blog und in anderen Blogs auf Habré und darüber hinaus gibt es viele Einblicke, wie das Praktikum abläuft. Aber vieles in diesem Prozess bleibt ein Rätsel für diejenigen, die nicht im Unternehmen arbeiten. Und wenn man sich die Sache aus der Perspektive der Entwicklungsleiter ansieht, ergeben sich noch mehr Fragen. Wie führt man ein Praktikum richtig durch, wie maximiert man den gegenseitigen Nutzen mit dem Praktikanten, wie kann man ihn in drei Monaten kennenlernen und ihm alles beibringen, was für die Fortsetzung der Arbeit erforderlich ist?
Wir haben diesen Artikel zu fünft vorbereitet. Lassen Sie uns vorstellen: Ihnat Kolesnichenko aus der Abteilung für Technologien verteilter Berechnungen, Misha Levin aus der Abteilung für maschinelle Intelligenz des Marktes, Denis Malykh aus der Anwendungentwicklungsabteilung, Sergey Berezhnoi aus der Abteilung für die Entwicklung von Suchoberflächen und Dima Cherkasov aus der Gruppe für die Entwicklung von Anti-Betrugsmaßnahmen. Jeder von uns repräsentiert seine eigene Richtung des Praktikums. Wir sind alle Führungskräfte, wir brauchen Praktikanten, und wir haben etwas Erfahrung in der Zusammenarbeit mit ihnen. Lassen Sie uns einige dieser Erfahrungen mitteilen.
Das Vorstellungsgespräch vor dem Praktikum
Auf die Kandidaten warten mehrere technische Vorstellungsgespräche. Der Erfolg bei den Vorstellungsgesprächen hängt weniger von Soft Skills (der Fähigkeit, effektiv zu kommunizieren) und mehr von Hard Skills (Fähigkeiten in Mathematik und Programmierung) ab. Die Leiter bewerten jedoch beides.
Ihnat:
Selbst wenn jemand sehr talentiert ist, aber absolut nicht kommunikationsfähig — kann er seine Fähigkeiten nicht vollumfänglich einbringen. Natürlich achten wir darauf, aber das ist kein Grund, jemanden nicht für das Praktikum auszuwählen. In drei Monaten kann sich alles ändern, und zudem kann der erste Eindruck falsch sein. Wenn alles richtig ist, muss man der Person möglicherweise erklären, dass sie in anderen Teams suchen sollte. Für Praktikanten ist Kommunikationsfähigkeit definitiv kein Schlüsselpunkt. Letztendlich sind professionelle Fähigkeiten viel wichtiger.
Denis:
Ich mag Menschen, die Geschichten erzählen – im positiven Sinne. Eine Person, die erzählen kann, wie sie mit ihrem Team heroisch eine Panne gemeistert hat, ist interessant. Ich beginne zusätzliche Fragen zu stellen, wenn so eine Geschichte auftaucht. Aber das passiert selten, wenn man einfach um „eine interessante Geschichte aus deinen Projekten“ bittet.
Ein Kandidat äußerte einmal einen bemerkenswerten Satz, den ich sogar festgehalten habe: „Ich habe erfolgreich vermieden, langweilige Aufgaben zu lösen.“

Da die Zeit für Gespräche knapp ist, versucht der Interviewer in jeder Minute des Gesprächs, nützliche Informationen über den Kandidaten zu erhalten. Es ist großartig, wenn der Praktikant im Voraus darüber nachgedacht hat, welche Details seiner Erfahrungen (nicht aus dem Lebenslauf) er teilen könnte. Das sollte eine kurze Geschichte sein, die strikt zur Sache kommt.
Denis:
Ich achte darauf, wenn jemand erzählt, dass er viele Sprachen und Ansätze ausprobiert hat. Menschen mit einem breiteren Horizont entwickeln im Gefecht elegantere Lösungen. Aber das ist ein uneindeutiger Vorteil. Man kann an der Oberfläche kratzen und ernsthaft nichts lernen.
Zeit für die Geschichten, die Denis beschreibt, bleibt normalerweise nur beim finalen Interview. Bis dahin müssen die grundlegenden und praktischen Kenntnisse demonstriert werden, die die Basis für die zukünftige Arbeit bilden. Und natürlich ist es erforderlich, Code an der Tafel oder auf einem Blatt Papier zu schreiben.
Misha:
Wir überprüfen das Wissen in Wahrscheinlichkeitstheorie und mathematischer Statistik. Wir schauen, ob die Person Erfahrung mit Metriken, mit Algorithmen des maschinellen Lernens, mit der Anpassung ihrer Parameter, mit Überanpassung usw. hat. Wir erwarten, dass die Person in der Lage ist, ausreichend Code zu schreiben, um Analyst zu sein.
Denis:
Diejenigen, die zu Vorstellungsgesprächen kommen, wissen meistens Bescheid über Programmiersprachen: In Jekaterinburg gibt es eine gute Schule für grundlegende Sprachen und gute Institute. Aber ehrlich gesagt, ein Praktikant mit soliden Hard Skills ist eine seltene Ausnahme, zumindest in unserer Epsilon-Umgebung. Zum Beispiel Swift. In dieser Sprache ist die Arbeit mit Strings sehr komplex, und es gibt nur wenige, die das spontan aus dem Kopf machen können. Solche Leute fallen sofort auf. Ich stelle bei Vorstellungsgesprächen oft eine Aufgabe, die genau mit der Verarbeitung von Strings zu tun hat. Und in all der Zeit gab es nur eine Person, die es schaffte, diesen Swift-Code spontan auf einem Blatt Papier zu schreiben. Danach bin ich herumgegangen und habe allen erzählt, dass jemand endlich diese Aufgabe auf Swift auf einem Blatt Papier lösen konnte.
Überprüfung von Algorithmen im Vorstellungsgespräch
Das ist ein eigenes Thema, da die Kandidaten immer noch fragen, warum wir das Wissen über Algorithmen und Datenstrukturen immer bewerten? Selbst zukünftige mobile Entwickler und Frontend-Entwickler müssen sich dieser Überprüfung unterziehen.
Misha:
Im Vorstellungsgespräch geben wir auf jeden Fall eine algorithmische Aufgabe. Der Kandidat muss sich überlegen, wie er sie auf Python umsetzen kann, idealerweise ohne Fehler. Es ist wichtig, zu verstehen, wie man sein Programm überprüft und es selbst debuggt.

Erfahrung mit Algorithmen ist aus drei Gründen nützlich. Erstens wird sie offensichtlich bei algorithmischen Aufgaben benötigt – die kommen zwar nicht oft vor, aber sie kommen vor. Zweitens wird der Entwickler in der Lage sein, Aufgaben effektiver zu lösen, die Algorithmen betreffen, auch wenn sie nicht erfordern, dass man sich mit den Algorithmen selbst beschäftigt (und davon gibt es bereits ziemlich viele). Drittens, wenn Ihnen in der Uni keine Algorithmen beigebracht wurden, Sie aber dennoch wissen, wie man mit ihnen arbeitet, zeichnet das ein Bild von Ihnen als wissbegieriger Person und steigert Ihre Autorität in den Augen des Interviewers.
Denis:
Der Großteil der mobilen Entwicklung besteht im Wesentlichen aus 'JSON umlegen'. Aber alle sechs Monate gibt es Fälle, in denen Algorithmen benötigt werden. Ich zeichne gerade schöne Karten für Yandex.Wetter. Und ich musste innerhalb einer Woche Algorithmen für Glättung, den Sutherland-Hodgman-Algorithmus und den Martinez-Algorithmus implementieren. Wenn jemand nicht wüsste, was ein Hashmap oder eine Prioritätswarteschlange ist, würde er damit lange beschäftigt sein, und es wäre unklar, ob er ohne fremde Hilfe das Problem gelöst hätte.
Algorithmen sind die Grundlage der Entwicklung. Sie helfen Entwicklern, Entwickler zu sein, unabhängig davon, was sie tun. Sie sind auch in einfachen Projekten erforderlich, bei denen die Hauptarbeit darin besteht, "JSON zu übertragen". Selbst wenn Sie die Algorithmen nicht selbst schreiben, ist es besser, sie zu verstehen, auch wenn Sie implizit einige Datenstrukturen verwenden. Andernfalls werden Ihre Anwendungen langsam oder fehlerhaft arbeiten.
Es gibt Programmierer, die akademisch in die Entwicklung eingestiegen sind: Sie haben an der Universität studiert, fünf Jahre lang ernsthaft gelernt und einen Abschluss erhalten. Sie kennen Algorithmen, weil sie beigebracht wurden. Doch das Wissen um Algorithmen sagt nichts über den Horizont einer Person aus; diesen Horizont sollte man auf andere Weise überprüfen.
Und es gibt Autodidakten, zu denen ich auch mich zähle. Ja, formal habe ich eine IT-Ausbildung, ein Diplom als Ingenieur-Programmierer. Aber Autodidakten haben das Programmieren "trotz allem" gelernt. Sie hatten kein universitäres Programm. Normalerweise sind sie mit Algorithmen nicht vertraut, weil sie nie in die Notwendigkeit kamen, sie zu lernen. Und wenn so eine Person Algorithmen versteht, heißt das, sie hat Zeit investiert und sich damit auseinandergesetzt. Nach dem Abschluss der Universität erkannte ich, dass ich Lücken im Verständnis grundlegender Algorithmen hatte – das liegt daran, dass das Studium anwendungsorientiert war. Ich ging und belegte Online-Kurse an der Princeton University, die von Robert Sedgewick gut bekannt sind. Ich verstand es, machte alle Hausarbeiten. Und wenn jemand im Vorstellungsgespräch eine ähnliche Geschichte erzählt, finde ich das sofort interessant und wünsche mir, mit ihm zu arbeiten oder zumindest das Gespräch fortzusetzen.

Ihnat:
Wenn du einen Praktikanten interviewst, erwartest du in gewisser Weise sogar mehr als von einem erfahrenen Entwickler. Es geht darum, algorithmische Probleme zu lösen und schnell irgendwie korrekten Code zu schreiben. Ein Praktikantenkandidat ist schließlich noch an der Universität. Vor einem Jahr wurden ihm alle Details zu Algorithmen erklärt. Es wird erwartet, dass er sie reproduzieren kann. Wenn die Person vernünftig ist und aufmerksam den Vorlesungen zugehört hat, wird sie einfach alles wissen, wie aus dem Gedächtnis abrufen.
Welche Aufgaben löst ein Praktikant?
Normalerweise kann das Praktikumsprogramm während der Abschlussgespräche geplant und diskutiert werden. Zu Beginn der Arbeit kann der Praktikant lediglich mit Trainingsaufgaben betraut werden, deren Ergebnisse nicht in der Produktion verwendet werden. Darüber hinaus ist die Wahrscheinlichkeit, solche Aufgaben zu bekommen, gering. Meistens werden praktische Projekte aus dem Backlog zugewiesen, das heißt, sie sind als wertvoll erachtet, sind aber nicht priorisiert und "abtrennbar" – so dass die Umsetzung nicht von anderen Komponenten abhängt. Die Teamleiter versuchen, die Aufgaben so zu verteilen, dass der Praktikant mit verschiedenen Teilen des Services in Kontakt kommt und im gleichen Umfeld wie andere Teammitglieder arbeitet.
Ihnat:
Das sind äußerst nützliche Aufgaben. Vielleicht tragen sie nicht dazu bei, die Cluster-Auslastung um 10 % zu erhöhen, sparen kein Million Dollar für das Unternehmen, aber sie machen Hunderte von Menschen glücklich. Zum Beispiel haben wir derzeit einen Praktikanten, der für unseren Kunden verantwortlich ist, um Operationen in unseren Clustern zu starten. Vor dem Start muss die Operation einige Daten in den Cluster hochladen. Normalerweise dauert dies 20 bis 40 Sekunden, und früher geschah dies stillschweigend: du hast es in der Konsole gestartet und saßt einfach vor dem schwarzen Bildschirm. Der Praktikant kam und hat in zwei Wochen eine Funktion erstellt: jetzt sieht man, wie die Dateien hochgeladen werden und was passiert. Die Aufgabe ist auf der einen Seite nicht kompliziert zu beschreiben, auf der anderen Seite gibt es vieles, was man sich ansehen kann, welche Bibliotheken es gibt. Am schönsten ist es, dass du das gemacht hast, eine Woche vergangen ist, es auf den Clustern läuft und die Leute es bereits nutzen. Du schreibst einen Post in das interne Netzwerk – und die Leute sagen dir danke.

Misha:
Praktikanten bereiten Modelle vor, sammeln Daten dafür, denken sich Metriken aus und führen Experimente durch. Nach und nach geben wir ihnen einfach mehr Freiheit und Verantwortung – wir prüfen, ob sie damit zurechtkommen. Wenn ja, steigen sie auf die nächste Stufe auf. Wir gehen nicht davon aus, dass der Praktikant, wenn er kommt, all das kann. Der Teamleiter hilft ihm, sich zurechtzufinden, gibt einen Link zu einer internen Ressource oder einem Online-Kurs.
Wenn sich der Praktikant bewährt – kann ihm etwas Prioritäres, wichtig für die Abteilung oder andere Services, anvertraut werden.
Dima:
Unser Praktikant beschäftigt sich gerade mit der harten Weiterentwicklung des Antifraud-Systems. Es handelt sich um ein System, das gegen verschiedene Missbräuche und Betrügereien auf Yandex-Diensten kämpft. Zunächst dachten wir, wir würden ihm nicht allzu komplexe und nicht besonders wichtige Aufgaben für die Produktion geben. Wir versuchen im Voraus, die Aufgaben des Praktikanten durchzudenken, aber hier haben wir gesehen, dass die Person "läuft", schnell und gut die Aufgaben löst. Am Ende haben wir ihm den Start des Antifraud-Systems für neue Dienste anvertraut.
Darüber hinaus gibt es eine kleine Chance, eine Aufgabe zu erhalten, an die sich Kolleg*innen aufgrund ihres Umfangs zuvor nicht gewagt haben.
Dima:
Es gibt ein altes System und ein neues, das noch nicht fertiggestellt ist. Es ist notwendig, den Umstieg von dem einen auf das andere System zu vollziehen. Perspektivisch ist das ein wichtiges Projekt, obwohl mit hoher Ungewissheit verbunden: Es ist viel Kommunikation nötig, das Verstehen von unverständlich altem Code. Wir haben im Abschlussgespräch ehrlich gesagt, dass die Aufgabe schwierig ist. Er antwortete, dass er bereit sei, und kam in unser Team, und es hat geklappt. Es stellte sich heraus, dass er nicht nur die Eigenschaften eines Entwicklers, sondern auch eines Managers hat. Er war bereit, selbst zu gehen, Informationen einzuholen und nachzufragen.
Mentoring des Praktikanten
Der Praktikant benötigt einen Mentor, um sich in die Prozesse einzuarbeiten. Dies ist eine Person, die über ihre eigenen Aufgaben, aber auch über die Aufgaben des Praktikanten informiert ist. Mit dem Mentor ist eine regelmäßige Kommunikation etabliert, an den man sich immer für Rat wenden kann. Der Mentor kann entweder der Gruppenleiter (wenn es sich um eine kleine Gruppe handelt) oder jemand aus den Kolleg*innen, ständige Teilnehmer des Teams, sein.
Ihnat:
Ich versuche, mindestens jeden zweiten Tag nachzufragen, wie es dem Praktikanten geht. Wenn ich sehe, dass er in Probleme verwickelt ist, versuche ich, ihm zu helfen, zu fragen, wo das Problem liegt, und zusammen mit ihm die Situation zu klären. Es ist klar, dass dies meine Kräfte beansprucht und die Arbeit des Praktikanten nicht so effektiv macht – ich verbringe schließlich auch meine Zeit damit. Aber es ermöglicht ihm, nicht in Schwierigkeiten zu geraten und Ergebnisse zu erzielen. Und es ist trotzdem schneller, als wenn ich es selbst machen würde. Für mich dauern die Aufgaben in der Regel etwa 5 Stunden. Der Praktikant wird dafür 5 Tage brauchen. Und ja, ich werde während dieser 5 Tage etwa 2 Stunden damit verbringen, mit dem Praktikanten zu kommunizieren und zu helfen. Aber mindestens 3 Stunden werde ich einsparen, und der Praktikant wird sich freuen, dass ihm Tipps gegeben und geholfen wurde. Insgesamt ist es wichtig, einfach eng zu kommunizieren, zu beobachten, was die Person tut, und den Kontakt nicht zu verlieren.

Sergej:
Der Praktikant steht ständig in Kontakt mit seinem Mentor und kommuniziert mehrmals täglich mit ihm. Der Mentor überprüft den Code, führt Pair Programming mit dem Praktikanten durch und hilft, wenn es Probleme gibt. Auf diese Weise, kombiniert mit der Unterstützung des Mentors und realen Herausforderungen, bilden wir Frontend-Entwickler aus.
Dima:
Damit der Praktikant sich nicht allein gelassen fühlt, besprechen wir bereits vor der Einstellung, wer ihn mentorieren wird. Das ist auch eine große Weiterentwicklung für den Mentor selbst: die Vorbereitung auf die Rolle des Teamleiters und die Überprüfung seiner Fähigkeit, sowohl die eigene Aufgabe als auch die des Praktikanten im Kopf zu behalten. Es gibt regelmäßige Treffen, an denen manchmal auch ich teilnehme, um auf dem Laufenden zu bleiben. Aber der Mentor kommuniziert ganz regelmäßig mit dem Praktikanten. Zu Beginn investiert er sehr viel Zeit, aber das zahlt sich aus.
Die Anwesenheit eines Mentors bedeutet jedoch nicht, dass alle auftretenden Fragen über ihn gelöst werden.
Misha:
Bei uns ist es üblich, dass diejenigen, die auf ein Problem stoßen, Nachbarn, Kollegen um Rat fragen und schnell Hilfe finden. Je schneller jemand wächst, desto mehr muss er zu seinen Kollegen gehen, um etwas zu erfahren. Es ist sogar nützlich, einfach über die Aufgaben anderer Menschen Bescheid zu wissen, um neue Aufgaben zu entwickeln. Wenn der Praktikant selbst in der Lage ist, Gespräche zu führen, zu verstehen, was der anderen Seite wichtig ist, und ein Ergebnis im Team zu erzielen, wird er viel schneller wachsen als jemand, für den dies alles der Vorgesetzte erledigen muss.
Sergej:
Es gibt Dokumentationen, aber der größte Teil der Informationen ist in der Luft verstreut. Wenn du diese zu Beginn deiner Karriere aufschnappst, ist das ein zusätzlicher Vorteil, und wir können die Person darauf fokussieren, was sie lernen muss.
Ein idealer Praktikant ist jemand, der mehrere Monate Praktikum macht, dann Junior Entwickler wird, dann Entwickler und später Gruppenleiter usw. Dafür braucht man das Archetyp eines Schülers, der nicht zögert zu fragen, wenn ihm etwas unklar ist, aber gleichzeitig in der Lage ist, selbstständig zu arbeiten. Wenn er gesagt bekommt, dass man darüber dort lesen kann, geht er, liest und kommt tatsächlich mit neuem Wissen zurück. Er kann Fehler machen, aber er sollte nicht mehr als einmal, höchstens zweimal am gleichen Ort Fehler machen. Ein idealer Praktikant sollte sich entwickeln, alles wie ein Schwamm aufsaugen, lernen und wachsen. Wer sitzt, versucht alles selbst zu klären, gräbt lange herum und stellt keine Fragen, wird kaum einen dauerhaften Platz finden.
Ende des Praktikums
Vor Beginn der Arbeit unterschreiben wir mit jedem Praktikanten einen befristeten Vertrag. Selbstverständlich ist das Praktikum vergütet, wird nach dem Arbeitsrecht der Russischen Föderation оформлено, und der Praktikant hat die gleichen Vorteile wie jeder andere Mitarbeiter von Yandex. Nach drei Monaten endet das Programm – viele Praktikanten übernehmen wir dann in eine Festanstellung (unbefristeten Vertrag).

Einerseits ist es für den Leiter wichtig, dass der Entwickler sein Praktikumsminimum erfüllt. Genau darauf zielt das Praktikum ab, beginnend mit dem Interview. Doch das ist nur der Anfang der Geschichte. Ein Praktikant ist für uns immer ein potenzieller Kandidat für eine Festanstellung. Das minimale Ziel für den Leiter ist es, schon zu Beginn eine solche Person zu erkennen, die man nach drei Monaten ohne Scham in andere Abteilungen empfehlen kann. Das maximal erreichbare Ziel besteht darin, ihn im selben Team zu behalten und in die Festanstellung zu übernehmen. Dabei berücksichtigen wir, dass ein Student im zweiten oder dritten Jahr – selbst wenn er Praktikant geworden ist – zu Beginn des Studienjahres weiterhin an der Hochschule lernen muss.
Sergej:
Für uns sind Praktikanten in erster Linie ein Personalpotential. Wir versuchen, Menschen innerhalb von Yandex zu entwickeln, damit sie perfekt zu unseren Aufgaben passen. Wir bieten ihnen alles, von der Kommunikations- und Interaktionskultur in Teams bis hin zu enzyklopädischem Wissen über all unsere Systeme.
Ihnat:
Wenn wir einen Praktikanten einstellen, prüfen wir sofort, ob er in unser Team passt. Und normalerweise ist das einzige Hindernis das Fehlen einer freien Stelle. Wir versuchen, hauptsächlich junge Leute als Praktikanten zu nehmen. Wenn jemand fünf Jahre Erfahrung in der Softwareentwicklung hat, aber bei Yandex als Praktikant einsteigt, bedeutet das leider für uns, dass er — auch wenn er talentiert ist und es mit fünf Jahren Erfahrung zu Yandex geschafft hat — nicht in der Lage sein wird, zum Senior Entwickler aufzusteigen. In der Regel liegt das an der Geschwindigkeit: ein langsames Wachstum in der Vergangenheit wird langsames Wachstum bei uns bedeuten. Ja, manchmal wird das Verständnis, dass jemand nicht mithalten kann, erst nach drei Monaten deutlich. Aber das kommt ziemlich selten vor. In mehr als der Hälfte der Fälle sind wir bereit, Menschen fest anzustellen. In meiner Erinnerung gab es keinen Fall, in dem jemand erfolgreich ein Praktikum absolviert hat, aber die Vorstellungsgespräche für eine Festanstellung nicht bestanden hat.
Misha:
Allen erfolgreichen Praktikanten bieten wir an, im Unternehmen zu bleiben. Nach dem Praktikum stellen wir in der Regel mehr als die Hälfte fest ein. Bei Sommerpraktika ist es schwieriger, da oft Studenten, zum Beispiel im dritten Jahr, zu uns kommen und es ihnen schwerfällt, Arbeit mit dem Studium zu vereinbaren.
Dima:
Nehmen wir an, der Praktikant meistert die Aufgaben hervorragend und hat viele Perspektiven, sich zu einem guten Entwickler zu entwickeln — auch wenn er momentan nicht genügend Erfahrung hat. Und nehmen wir an, es gibt keine Stellenangebote für einen unbefristeten Vertrag. Dann ist alles einfach: Ich muss zu meinem Vorgesetzten gehen und ihm sagen — das ist eine sehr talentierte Person, die müssen wir mit allen Mitteln halten, lasst uns ihm etwas anbieten, finden wir einen Platz für ihn.
Geschichten über Praktikanten
Denis:
Das Mädchen, das 2017 ein Praktikum bei uns begonnen hat, stammt aus Perm. Das liegt etwa 400 Kilometer westlich von Jekaterinburg. Und jede Woche kam sie mit dem Zug von Perm zur Schule für mobile Entwicklung. Tagsüber kam sie an, abends lernte sie und spätabends fuhr sie zurück. Angesichts dieses Eifers luden wir sie ein, bei uns zu arbeiten, und das hat sich ausgezahlt.
Ihnat:
Vor einigen Jahren haben wir an einem Austauschprogramm für Praktikanten teilgenommen. Es war interessant, mit ausländischen Kollegen zu arbeiten. Aber die Praktikanten dort sind nicht stärker als zum Beispiel aus dem SHAD oder von FCN. Man könnte denken, die EPFL gehört zu den besten 20 Universitäten Europas. In diesem Moment hatte ich — wie auch viele andere unerfahrene Interviewer — die Erwartung: Unglaublich, wir interviewen Leute von der EPFL, sie müssen super sein. Aber die Leute, die bei uns eine Grundausbildung in Programmierung erhalten haben — auch an den wichtigen regionalen Universitäten — sind durchaus auf einem ähnlichen Niveau.
Oder eine andere Geschichte. Momentan habe ich einen jungen Kerl in meinem Team, gerade etwa 20 Jahre alt. Er arbeitet in St. Petersburg und kam für ein Praktikum zu uns. Er ist wirklich talentiert. Du gibst ihm, wie gewohnt, Aufgaben, er löst sie, und nach einem Monat kommt er und sagt: Ich habe das gelöst; ich schaue mir eure Architektur an und sehe, dass sie schlecht aufgebaut ist. Lass uns das neu machen. Der Code könnte einfacher und verständlicher werden. Ich habe ihn natürlich davon abgehalten: Der Arbeitsaufwand ist groß, es bringt den Nutzern keinen Nutzen, aber die Idee klingt absolut vernünftig. Er hat sich in einen komplizierten multithreaded Prozess eingearbeitet und Verbesserungsvorschläge gemacht — vielleicht unzeitgemäß, Refactoring zum Spaß. Aber wenn wir den Code komplizierter machen wollen, können wir dieses Refactoring dennoch durchführen. Tatsächlich sind ein paar Monate vergangen, und wir haben uns dieser Aufgabe gewidmet. Ich habe ihn mit Freude in mein Team aufgenommen. Wir sind alle keine Genies. Man kann kommen, sich in etwas einarbeiten und uns auf unsere Probleme hinweisen. Das wird geschätzt.
Misha:
Wir haben manchmal solche idealen Praktikanten. Trotz fehlender Erfahrung sehen sie Aufgaben nicht nur auf technischer, sondern auch auf globaler Ebene. Sie schlagen grundlegende Verbesserungen vor. Sie verstehen, wie man Aufgaben aus der realen Welt in technische umsetzt, ohne den Sinn zu verlieren. Sie denken darüber nach, was das letztendliche Ziel ist, ob es sinnvoll ist, sich jetzt in Details zu vertiefen, oder ob man den Ansatz zur Aufgabe oder sogar die Aufgabenstellung vollständig ändern kann. Das bedeutet, sie haben das Potenzial, mehrere Ebenen höher zu gelangen. Um diesen Weg zu gehen, müssen sie einfach einige Fähigkeiten und innere Werkzeuge entwickeln. Außerdem müssen sie mehrere erfolgreiche Projekte umsetzen.

Quelle: habr.com
