
Die Bewerbung für bei Yandex läuft weiter. Es erstreckt sich über fünf Bereiche: Backend, ML, mobile Entwicklung, Frontend und Analytics. In diesem Blog, sowie in anderen Blogs auf Habr und darüber hinaus, findet man viele Einblicke, wie das Praktikum abläuft. Doch vieles in diesem Prozess bleibt ein Rätsel für diejenigen, die nicht im Unternehmen tätig sind. Aus der Sicht der Entwicklungsleiter 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 weitere Arbeit erforderlich ist?
Wir haben diesen Artikel zu fünft vorbereitet. Lassen Sie uns vorstellen: Ihnat Kolesnichenko aus der Abteilung für verteiltes Rechnen, Misha Levin aus der Abteilung für maschinelles Lernen, Denis Malykh aus der Anwendungsentwicklung, Serjozha Berezhnoi aus der Entwicklung von Suchschnittstellen und Dima Cherkasov aus der Antifraud-Entwicklungsgruppe. Jeder von uns repräsentiert ein eigenes Praktikumsfeld. Wir alle sind Führungskräfte, brauchen Praktikanten und haben einige Erfahrungen mit ihnen. Lassen Sie uns einige dieser Erfahrungen teilen.
Das Vorstellungsgespräch vor dem Praktikum
Die Kandidaten erwarten mehrere technische Vorstellungsgespräche. Der Erfolg im Gespräch hängt weniger von den Soft Skills (der Fähigkeit zur effektiven Kommunikation) und mehr von den Hard Skills (Fähigkeiten in Mathematik und Programmierung) ab. Dennoch bewerten die Führungskräfte sowohl das eine als auch das andere.
Ihnat:
Selbst wenn jemand äußerst talentiert ist, aber völlig unkommunikativ, wird er seine Fähigkeiten nicht einsetzen können. Das beachten wir natürlich, aber es ist kein Grund, jemanden nicht für ein Praktikum zu nehmen. Innerhalb von drei Monaten kann sich viel ändern, außerdem kann dein erster Eindruck falsch sein. Und wenn alles stimmt, müssen wir demjenigen erklären, dass er nach anderen Teams suchen kann. Für Praktikanten ist Kommunikationsfähigkeit definitiv kein entscheidender Faktor. Letztlich sind professionelle Fähigkeiten viel wichtiger.
Denis:
Ich mag Menschen, die Geschichten erzählen – im positiven Sinne. Jemand, der erzählen kann, wie er und sein Team heldenhaft mit einem Problem umgegangen sind, ist interessant. Ich beginne, zusätzliche Fragen zu stellen, wenn so eine Geschichte auftaucht. Aber das passiert selten, wenn man einfach nur bittet, "etwas Interessantes über deine Projekte zu erzählen."
Ein Kandidat sagte einmal einen bemerkenswerten Satz, den ich sogar aufgeschrieben habe: "Ich habe erfolgreich die Lösung langweiligen Aufgaben vermieden."

Da die Zeit für Gespräche begrenzt ist, versucht der Interviewer jede Minute des Treffens, nützliche Informationen über den Kandidaten zu erhalten. Es ist großartig, wenn der Praktikant im Voraus überlegt hat, welche Aspekte seiner Erfahrung (außer dem Lebenslauf) er teilen könnte. Dies sollte eine kurze, sachliche Erzählung sein.
Denis:
Ich achte darauf, ob jemand erzählt, dass er viele Programmiersprachen und Ansätze ausprobiert hat. Menschen mit einem breiteren Horizont entwickeln in der Praxis elegantere Lösungen. Doch das ist ein zweischneidiges Schwert. Man kann an der Oberfläche kratzen, ohne wirklich etwas zu lernen.
Die Zeit für Geschichten, die Denis erzählt, bleibt normalerweise nur für das abschließende Interview. Bis dahin muss man die grundlegenden und praktischen Kenntnisse zeigen, die die Basis für die zukünftige Arbeit bilden. Und natürlich wird man Code an der Tafel oder auf einem Blatt Papier schreiben müssen.
Misha:
Wir prüfen das Wissen über Wahrscheinlichkeitstheorie und mathematische Statistik. Wir schauen, ob die Person Erfahrung im Umgang mit Metriken, Algorithmen für maschinelles Lernen, deren Parametereinstellungen, Überanpassung usw. hat. Wir erwarten, dass die Person in der Lage ist, Code zu schreiben, um als Analyst arbeiten zu können.
Denis:
Diejenigen, die zum Vorstellungsgespräch kommen, kennen meist die Programmiersprachen: in Jekaterinburg haben wir eine gute Ausbildung in den grundlegenden Sprachen und gute Hochschulen. Aber ehrlich gesagt sind Kandidaten für Praktika mit soliden Fachkenntnissen selten, zumindest in unserer Umgebung. Zum Beispiel Swift. In Swift ist die Arbeit mit Strings sehr komplex, und es gibt nur wenige Menschen, die dies spontan und aus dem Kopf heraus erledigen können. Solche Talente fallen sofort ins Auge. Ich gebe häufig Aufgaben, die genau mit der Verarbeitung von Strings verbunden sind. Und bisher gab es nur eine Person, die sofort, auf einem Blatt Papier, in der Lage war, solchen Swift-Code zu schreiben. Danach bin ich herumgegangen und habe allen erzählt, dass jemand endlich diese Aufgabe auf Swift auf einem Blatt Papier gelöst hat.
Überprüfung von Algorithmen im Vorstellungsgespräch
Das ist ein eigenes Thema, da die Bewerber oft fragen, warum wir stets das Wissen über Algorithmen und Datenstrukturen bewerten. Selbst zukünftige mobile Entwickler und Frontend-Entwickler müssen sich solchen Tests unterziehen.
Misha:
Im Vorstellungsgespräch geben wir immer eine algorithmische Aufgabe. Der Kandidat muss überlegen, wie er diese in Python umsetzen kann, idealerweise fehlerfrei. Es ist wichtig zu erkennen, wie man sein Programm testet und selbstständig anpasst.

Erfahrungen mit Algorithmen sind aus drei Gründen sofort von Nutzen. Erstens wird sie offensichtlich bei algorithmischen Aufgaben benötigt – die zwar nicht häufig vorkommen, aber dennoch auftreten. Zweitens kann ein Entwickler Probleme effizienter lösen, die sich auf Algorithmen beziehen, auch wenn diese nicht erfordern, tief in die Algorithmen selbst einzutauchen (und davon gibt es bereits viele). Drittens, wenn Ihnen Algorithmen in der Hochschule nicht beigebracht wurden, Sie aber trotzdem damit umgehen können, zeigt das, dass Sie wissbegierig sind und steigert Ihr Ansehen in den Augen des Interviewers.
Denis:
Ein Großteil der mobilen Entwicklung besteht darin, JSON zu verarbeiten. Doch alle sechs Monate gibt es Situationen, in denen Algorithmen gefragt sind. Momentan entwickle ich ansprechende Karten für Yandex.Wetter. Innerhalb einer Woche musste ich einen Glättungsalgorithmus, den Sutherland-Hodgman-Algorithmus und den Martinez-Algorithmus implementieren. Wenn jemand nicht weiß, was ein Hashmap oder eine Prioritätswarteschlange ist, würde er sich dabei lange schwer tun und es könnte unklar sein, ob er ohne fremde Hilfe zurechtkommt.
Algorithmen sind das Fundament der Entwicklung. Sie sind es, die einen Entwickler zum Entwickler machen. Egal, womit Sie sich beschäftigen. Sie sind auch in einfachen Projekten erforderlich, die hauptsächlich aus der Verarbeitung von JSON bestehen. Selbst wenn Sie die Algorithmen nicht selbst schreiben, aber implizit Datenstrukturen verwenden, ist es besser, sie zu verstehen. Ansonsten werden Sie Anwendungen entwickeln, die langsam oder fehlerhaft arbeiten.
Es gibt Programmierer, die akademisch in die Entwicklung gekommen sind: Sie haben sich an einer Universität eingeschrieben, fünf Jahre lang ernsthaft studiert und einen Abschluss erworben. Sie kennen Algorithmen, weil man sie ihnen beigebracht hat. Das Wissen über Algorithmen allein sagt jedoch nichts über den Horizont einer Person aus; diesen sollte man auf andere Weise überprüfen.
Es gibt auch Autodidakten, zu denen ich mich zähle. Ja, formal habe ich eine IT-Ausbildung, ein Diplom als Ingenieur für Programmierung. Aber Autodidakten haben das Programmieren "trotz allem" gelernt. Sie hatten kein Universitätsprogramm. Oftmals sind sie mit Algorithmen nicht vertraut, weil sie nie die Notwendigkeit hatten, sich damit auseinanderzusetzen. Wenn so jemand die Algorithmen versteht, bedeutet das, dass er Zeit investiert hat, um sie zu durchdringen. Nach dem Uniabschluss wurde mir klar, dass mir grundlegende Algorithmen fehlen – denn der Studiengang war anwendungsorientiert. Also habe ich die Online-Kurse der Princeton University, die von dem bekannten Robert Sedgewick geleitet werden, studiert. Ich habe alles verstanden und alle Hausarbeiten gemacht. Und wenn jemand im Vorstellungsgespräch eine ähnliche Geschichte erzählt, wird mein Interesse sofort geweckt, und ich habe den Wunsch, mit ihm zu arbeiten oder zumindest das Gespräch fortzusetzen.

Ihnat:
Wenn Sie ein Praktikumsgespräch führen, erwarten Sie in gewissem Maße sogar mehr als von einem erfahrenen Entwickler. Es geht um die Fähigkeit, algorithmische Probleme zu lösen und schnell zumindest einen funktionierenden Code zu schreiben. Ein Praktikumsbewerber ist schließlich noch an der Universität. Vor einem Jahr wurde ihm alles über Algorithmen im Detail erklärt. Es wird erwartet, dass er in der Lage ist, dieses Wissen abzurufen. Wenn die Person vernünftig ist und aufmerksam zugehört hat, wird sie es einfach wissen und aus dem Gedächtnis abrufen.
Welche Aufgaben löst der Praktikant?
Normalerweise kann das Praktikumsprogramm zu den abschließenden Vorstellungsgesprächen skizziert und besprochen werden. Zu Beginn seiner Arbeit könnte der Praktikant einfache Aufgaben zugeteilt bekommen, deren Ergebnisse nicht in der Produktion verwendet werden. Darüber hinaus ist die Wahrscheinlichkeit, solche Aufgaben zu erhalten, gering. Meistens werden ihm praktische Projekte aus dem Backlog gegeben, also Projekte, die als erwähnenswert erachtet werden, jedoch nicht prioritär und "trennbar" sind – sodass die Durchführung dieser Aufgaben nicht von anderen Komponenten abhängt. Die Vorgesetzten bemühen sich, diese so zu verteilen, dass der Praktikant verschiedene Teile des Dienstes kennelernt und in derselben Umgebung wie andere Teammitglieder arbeitet.
Ihnat:
Dies sind äußerst nützliche Aufgaben. Sie werden vielleicht die Auslastung des Clusters nicht um 10 % steigern oder dem Unternehmen eine Million Dollar sparen, aber sie werden Hunderte von Menschen glücklich machen. Zum Beispiel haben wir derzeit einen Praktikanten, der für unseren Kunden tätig ist, um Operationen auf unseren Clustern zu starten. Vor dem Start muss die Operation bestimmte Daten in den Cluster hochladen. Normalerweise dauert das 20 bis 40 Sekunden, und früher geschah das stillschweigend: Man hat es in der Konsole gestartet und sitzt nur da und sieht auf den schwarzen Bildschirm. Der Praktikant kam und hat in zwei Wochen eine Funktion entwickelt: Jetzt sieht man, wie die Dateien hochgeladen werden und was passiert. Die Aufgabe ist auf der einen Seite in der Beschreibung nicht schwierig, auf der anderen Seite gibt es genug, woran man arbeiten kann und welche Bibliotheken man sich ansehen kann. Das Schönste daran ist, dass du es gemacht hast, eine Woche vergangen ist, es auf den Clustern läuft und die Leute es bereits nutzen. Du schreibst einen Beitrag im internen Netzwerk – und dir wird gedankt.

Misha:
Praktikanten erstellen Modelle, sammeln Daten dafür, entwickeln Metriken und führen Experimente durch. Nach und nach gewähren wir ihnen mehr Freiheit und Verantwortung – wir testen, ob sie damit umgehen können. Wenn ja, steigen sie in die nächste Stufe auf. Wir gehen nicht davon aus, dass ein Praktikant zu uns kommt und all dies bereits kann. Der Vorgesetzte hilft ihm, sich zurechtzufinden, gibt einen Link zu internen Ressourcen oder einem Online-Kurs.
Wenn sich der Praktikant als hervorragend erweist, kann ihm eine priorisierte, für die Abteilung oder andere Services wichtige Aufgabe anvertraut werden.
Dima:
Unser Praktikant beschäftigt sich derzeit mit anspruchsvollen Verbesserungen des Antifraud-Systems. Dieses System bekämpft verschiedene Arten von Missbrauch und Betrug auf den Yandex-Services. Zuerst dachten wir, ihm weniger komplexe und weniger wichtige Aufgaben im Produktionsumfeld zu geben. Wir versuchen im Voraus, die Aufgaben des Praktikanten zu planen, aber wir haben gesehen, dass die Person schnell und gut Probleme löst. Schließlich haben wir ihm die Verantwortung für den Start des Antifraud-Systems für neue Services übertragen.
Außerdem gibt es eine kleine Chance, eine Aufgabe zu erhalten, an die sich die Kollegen zuvor wegen ihres Umfangs nicht herangetraut haben.
Dima:
Es gibt ein altes System und ein neues, das noch nicht fertiggestellt ist. Der Umstieg von einem auf das andere muss durchgeführt werden. In Zukunft ist dies ein wichtiges Projekt, obwohl eine hohe Unsicherheit besteht: Es ist viel Kommunikation erforderlich, und wir müssen unverständlichen Legacy-Code lesen. Wir haben dem Praktikanten im finalen Interview ehrlich gesagt, dass die Aufgabe komplex ist. Er antwortete, dass er bereit ist, kam in unser Team, und er hat es geschafft. Es stellte sich heraus, dass er nicht nur die Eigenschaften eines Entwicklers, sondern auch eines Managers hat. Er war bereit, selbst zu fragen, Informationen einzuholen und zu pingen.
Mentoring des Praktikanten
Der Praktikant benötigt einen Mentor, um sich in die Prozesse einzuarbeiten. Dies ist eine Person, die nicht nur über ihre eigenen Aufgaben informiert ist, sondern auch über die Aufgaben des Praktikanten. Mit dem Mentor besteht eine regelmäßige Kommunikation, und man kann sich jederzeit mit Fragen an ihn wenden. Der Mentor kann entweder der Gruppenleiter sein (wenn es sich um eine kleine Gruppe handelt) oder jemand aus den Kollegen, die ständige Mitglieder des Teams sind.
Ihnat:
Ich versuche, mindestens jeden zweiten Tag vorbeizuschauen und zu fragen, wie es dem Praktikanten geht. Wenn ich sehe, dass er sich in etwas vertieft hat, bemühe ich mich, ihm zu helfen, nachzufragen, wo das Problem liegt, und es gemeinsam mit ihm zu lösen. Es ist klar, dass das meine Kräfte beansprucht und die Effizienz der Arbeit des Praktikanten insgesamt verringert — schließlich investiere ich auch meine Zeit. Dennoch ermöglicht es ihm, nicht stecken zu bleiben und Ergebnisse zu erzielen. Letztendlich ist es schneller, als wenn ich es selbst machen würde. Ich benötige für die Aufgabe ungefähr 5 Stunden. Der Praktikant benötigt dafür 5 Tage. Ja, ich werde in diesen 5 Tagen etwa 2 Stunden darauf verwenden, um mit dem Praktikanten zu kommunizieren und zu helfen. Aber mindestens 3 Stunden spare ich, und der Praktikant freut sich, dass ihm Hinweise gegeben und geholfen wurde. Insgesamt ist es wichtig, einen engen Kontakt zu halten, 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, praktiziert das Pair Programming mit dem Praktikanten und hilft, wenn es problematische Stellen gibt. Auf diese Weise, durch die Kombination aus Unterstützung des Mentors und realen Aufgaben, bilden wir Frontend-Entwickler aus.
Dima:
Um sicherzustellen, dass der Praktikant nicht im Stich gelassen wird, besprechen wir bereits vor der Einstellung, wer ihn betreuen wird. Das ist auch eine große Weiterentwicklung für den Mentor selbst: die Vorbereitung auf die Rolle eines Teamleiters und die Fähigkeit, sowohl die eigenen Aufgaben als auch die des Praktikanten im Kopf zu behalten. Es gibt regelmäßige Treffen, bei denen ich manchmal selbst anwesend bin, um informiert zu bleiben. Aber der Mentor ist derjenige, der regelmäßig mit dem Praktikanten kommuniziert. Zunächst investiert er sehr viel Zeit, aber das zahlt sich aus.
Das Vorhandensein eines Mentors bedeutet jedoch nicht, dass alle auftretenden Fragen über ihn gelöst werden.
Misha:
Bei uns ist es üblich, dass Personen, die auf ein Problem stoßen, Nachbarn, Kollegen um Rat fragen und schnell Hilfe finden. Je schneller eine Person wächst, desto öfter muss sie zu Kollegen gehen, um etwas herauszufinden. Es ist sogar nützlich, einfach über die Aufgaben anderer Leute Bescheid zu wissen, um neue Aufgaben zu entwickeln. Wenn der Praktikant in der Lage ist, selbst zu verhandeln, zu verstehen, was für die andere Seite wichtig ist, und im Team zu einem Ergebnis zu kommen, wird er viel schneller wachsen als jemand, für den das alles der Vorgesetzte erledigen muss.
Sergej:
Es gibt zwar Dokumentationen, aber die meisten Informationen sind schwer zu finden. Wenn Sie diese am Anfang Ihrer Karriere aufnehmen, ist das ein zusätzlicher Vorteil. Wir können den Menschen auf das konzentrieren, was er lernen muss.
Der ideale Praktikant ist jemand, der mehrere Monate ein Praktikum macht, dann Junior-Entwickler wird, anschließend Entwickler und schließlich Teamleiter. Dafür braucht es einen archetypischen Schüler, der keine Scheu hat zu fragen, wenn ihm etwas unklar ist, gleichzeitig aber auch selbstständig arbeiten kann. Wenn ihm gesagt wird, dass er dort etwas nachlesen kann, wird er dort hingehen, es lesen und tatsächlich mit neuem Wissen zurückkommen. Fehler sind erlaubt, aber er sollte nicht mehr als einmal oder zweimal am selben Punkt scheitern. Der ideale Praktikant sollte sich entwickeln, alles wie ein Schwamm aufsaugen, lernen und wachsen. Wer allein versucht, alles herauszufinden und keine Fragen stellt, wird wahrscheinlich nicht lange bleiben.
Ende des Praktikums
Bevor wir mit der Arbeit beginnen, schließen wir mit jedem Praktikanten einen befristeten Vertrag ab. Selbstverständlich wird das Praktikum bezahlt, es wird gemäß dem Arbeitsrecht in Russland оформлено, und der Praktikant genießt die gleichen Vorteile wie jeder andere Mitarbeiter von Яндекс. Nach drei Monaten endet das Programm — viele Praktikanten werden dann in eine Festanstellung übernommen.

Einerseits ist es für den Vorgesetzten wichtig, dass der Entwickler sein Praktikantenminimum erfüllt. Genau darauf zielt das Praktikum ab, beginnend mit dem Vorstellungsgespräch. Doch das ist nur der Anfang der Geschichte. Ein Praktikant ist für uns immer ein potenzieller Kandidat für eine Festanstellung. Das Minimum-Programm für den Vorgesetzten ist es, schon zu Beginn jemanden zu erkennen, den man nach drei Monaten anderen Abteilungen empfehlen kann. Das Maximum-Programm ist es, ihn im gleichen Team zu halten und ihn fest anzustellen. Dabei berücksichtigen wir, dass ein Student im zweiten oder dritten Jahr — selbst wenn er Praktikant geworden ist — mit Beginn des Studienjahres weiterhin seine Ausbildung an der Universität fortsetzen muss.
Sergej:
In erster Linie betrachten wir Praktikanten als wertvolles Potenzial für unser Unternehmen. Unser Ziel ist es, Talente innerhalb von Yandex zu entwickeln, damit sie ideal zu unseren Anforderungen passen. Wir bieten ihnen alles, von der Unternehmenskultur bis hin zu umfassenden Kenntnissen über unsere Systeme.
Ihnat:
Wenn wir einen Praktikanten einstellen, prüfen wir sofort, ob er zu unserem Team passt. Das einzige Hindernis ist meistens das Fehlen einer offenen Stelle. Wir versuchen, relativ junge Talente einzustellen. Wenn jemand fünf Jahre Entwicklungserfahrung hat, aber bei uns als Praktikant anfängt, bedeutet das leider, dass er – obwohl er bemerkenswerte Qualifikationen mitbringt – nicht als erfahrener Entwickler bei uns wachsen kann. In der Regel liegt es an der Geschwindigkeit: Ein langsames Wachstum in der Vergangenheit führt auch bei uns zu langsamerem Wachstum. Ja, manchmal merken wir erst nach drei Monaten, dass eine Person nicht mithalten kann, aber das kommt eher selten vor. In mehr als der Hälfte der Fälle sind wir bereit, Menschen in die Festanstellung zu übernehmen. Mir ist kein Fall bekannt, in dem jemand erfolgreich als Praktikant gearbeitet hat, aber dann die Interviews für eine feste Position nicht bestanden hat.
Misha:
Wir bieten allen erfolgreichen Praktikanten an, im Unternehmen zu bleiben. Nach dem Praktikum übernehmen wir in der Regel mehr als die Hälfte in Vollzeit. Bei Sommerpraktika ist es schwieriger, da oft Studenten zu uns kommen, zum Beispiel im dritten Studienjahr, und es ihnen schwerfällt, Arbeit und Studium zu vereinbaren.
Dima:
Angenommen, der Praktikant macht seine Aufgaben hervorragend und hat viel Potenzial, sich zu einem guten Entwickler zu entwickeln – auch wenn er momentan nicht ausreichend Erfahrung hat. Und nehmen wir an, es gibt keine unbefristete Stellenanzeige. Dann ist es einfach: Ich muss zu meinem Vorgesetzten gehen und ihm sagen – das ist eine großartige Person, die müssen wir um jeden Preis halten, lasst uns ihm ein Angebot machen und schauen, wo wir ihn unterbringen können.
Geschichten von Praktikanten
Denis:
Das Mädchen, das 2017 bei uns ein Praktikum gemacht hat, stammte aus Perm. Das sind etwa 400 Kilometer westlich von Jekaterinburg. Und jede Woche reiste sie mit dem Zug zu uns in die Schule für mobile Entwicklung. Tagsüber kam sie, abends lernte sie und fuhr spätabends wieder zurück. Angesichts dieses Engagements haben wir sie eingeladen, 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 internationalen Kollegen zu arbeiten. Allerdings sind die Praktikanten dort nicht besser als die aus anderen renommierten Institutionen. Man könnte meinen, die EPFL gehört zu den Top 20 Universitäten Europas. Zu der Zeit hatte ich – wie viele unerfahrene Interviewer – die Erwartung: Unglaublich, wir interviewen Leute von der EPFL, sie müssen außergewöhnlich sein. Doch die Personen, die bei uns eine grundlegende Ausbildung im Programmieren erhalten haben – auch in den wichtigsten regionalen Universitäten – sind durchaus auf einem ähnlichen Niveau.
Oder eine andere Geschichte. Momentan haben wir einen jungen Mann im Team, gerade mal etwa 20 Jahre alt. Er arbeitet in St. Petersburg und kam zu uns für ein Praktikum. Er ist wirklich beeindruckend. Wie gewöhnlich gibst du jemandem Aufgaben, er löst sie, und nach einem Monat kommt er zurück und sagt: Ich habe das gemacht, und es scheint, als wäre eure Architektur schlecht aufgebaut. Lass uns das überarbeiten. Der Code wird einfacher und klarer sein. Natürlich habe ich ihn versucht abzubringen: Der Arbeitsaufwand ist groß, der Nutzen für die Nutzer ist minimal, aber die Idee klingt absolut sinnvoll. Er hat sich in einen komplexen, mehrteiligen Prozess eingearbeitet und Verbesserungsvorschläge gemacht – vielleicht nicht zur richtigen Zeit, Refactoring um des Refactorings willen. Aber sobald wir diesen Code komplizierter machen wollen, können wir dieses Refactoring dennoch durchführen. Tatsächlich sind seitdem mehrere Monate vergangen, und wir haben uns dieser Aufgabe gewidmet. Ich habe ihn gerne in unser 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 die Aufgabe 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 übersetzt, ohne den Sinn zu verlieren. Sie denken darüber nach, was das endgültige Ziel ist, ob es sinnvoll ist, sich jetzt in Details zu vertiefen oder ob man den Ansatz oder sogar die Aufgabenstellung komplett ändern kann. Das bedeutet, sie haben das Potenzial, mehrere Stufen höher zu gelangen. Um diesen Weg zu gehen, müssen sie lediglich einige Fähigkeiten und interne Werkzeuge weiterentwickeln. Außerdem sollten sie einige erfolgreiche Projekte starten.

Quelle: habr.com
