Jeder in England ist vom Fußball besessen. Viele Amateurmannschaften und jede Menge Stadien. Und durch einige Bekannte kam ein Engländer auf mich zu, der eine Idee und etwas Geld hatte - er bat mich, einen Antrag zu stellen, in dem die Leute ihre Amateur-Fußballmannschaft leiten könnten. Platzieren Sie Leute auf dem Spielfeld, nehmen Sie Auswechslungen vor, suchen Sie nach Spielern, buchen Sie Stadien und chatten Sie.
Zu dieser Zeit hatte ich eine seltsame Zeit in meinem Leben - und ich weiß nicht, wie ich überhaupt überlebt habe. Universität während des Tages, nachts arbeiten als Backend im Dienst bis zum Morgen und irgendwo zwischen Kursen der Android-Entwicklung. Außerdem hatte ich genug Energie und Begeisterung, um nicht zur Show dorthin zu gehen, sondern um wirklich Feuer zu fangen.
Also stimmte ich zu arbeiten. Und es war nur ein Outlet nach dem, was ich in der Backend-Entwicklung durchgemacht habe.
In meiner Schule, im Mathematikunterricht, gab es ein Schild mit einer Inschrift, das mich sofort faszinierte. Dann war ich mehr als einmal von der Richtigkeit dieser Worte überzeugt:
Das Programm macht nicht was Sie wollen, sondern was geschrieben steht
Als ich an einem Treffen mit den Lehrern an die Universität kam, sagte ich, ich möchte Programmierer werden. Mir wurde versichert - Sie werden. Sie fügten hinzu, dass man sein ganzes Leben lang studieren muss, um Programmierer zu werden. Nachdem ich das irgendwie auf meine eigene Weise interpretiert hatte, habe ich das Training ein Leben lang nicht verlängert und mich voll angehäuft: Paare an der Universität, Kurse am Abend, freiberuflich in der Nacht.
Die Suche nach einem Teilzeitjob führte mich zu einem interessanten Projekt: der Entwicklung einer Spracherkennungs-Engine auf der positiven Seite. Gemeinsam mit dem Team haben wir um den Prozentsatz der Anerkennung gekämpft: Ich hatte wirklich gehofft, das Auto auf 100% des Ergebnisses zu bringen!
Es war der wahre Schmerz eines Perfektionisten. Ich entwickelte meine eigenen Lösungen, nahm die Open-Source-Engines anderer Leute, zerlegte sie in Zahnräder und baute sie wieder zusammen. Ich habe den Code angepasst, nachts nicht geschlafen, paarweise gepickt. Ich habe Kilometer Code an der Ziellinie für ein paar Prozent abgewickelt.
Es wurde nichts daraus. Erst ein paar Jahre später stellte ich fest, dass dies unerreichbar war. Ich habe die Nachricht erhalten, dass das neuronale Netzwerk von Facebook Gesichter mit einer Wahrscheinlichkeit von nicht mehr als 95% erkennt. Ich sympathisierte mit Facebook: Selbst ein so großes Unternehmen erreichte nicht hundert. Und auch in dem Artikel gab es ein ausgezeichnetes Postskriptum, dass eine Person Gesichter mit einer Wahrscheinlichkeit von 93% erkennt. Ernsthaft?
Zum ersten Mal war ich von der Entwicklung etwas enttäuscht
Ich habe das Frontend ausprobiert, aber alles, was ich über sie wusste, lag im Bereich des Stereotyps „Sie machen Websites“. Es klang schon damals langweilig. Ich wollte etwas interessanteres. Um ein neues Gebiet zu finden, bin ich nach Skolkovo gezogen.
Die Magistratur von Skolkovo zahlte ein gutes Stipendium. Aber wenn Sie im großen Stil in Moskau leben möchten, nageln Sie ein bisschen mehr. Ich bin auf eine Stelle für ein Unternehmen aus dem Finanzsektor gestoßen. Es war notwendig, in Python zurückzuschreiben und manchmal nachts Dienst zu haben.
Während des Interviews wurde ich gründlich von Multithreading und Pluspunkten auf einem Blatt Papier angetrieben (es war schwierig, Code von Hand zu schreiben). Sie fragten nach einigen grundlegenden Dingen über Python und am Ende nahmen sie es.
Vor dieser Firma habe ich nur in kleinen Teams gearbeitet. Bei der Spracherkennung haben wir fünf gearbeitet, aber hier konnte der Apfel von den Entwicklern nirgends fallen. Und sie alle wussten mehr als ich. Ich wurde mit Fragen bombardiert und war glücklich, als meine Arbeit Feedback bekam. Die ersten drei Wochen habe ich das Handwerk gemeistert. Jede Codeüberprüfung endete mit einer „schlechten“ Antwort. Ich habe alles überarbeitet, aber es wurde nicht besser. Mein Code musste von mindestens 4 Personen genehmigt werden. Manchmal sagten drei "Normen", und der vierte fand immer noch etwas, worüber er sich beschweren konnte.
Sie zeigten mir auch eine interessante Art der Überprüfung - ich gebe den Code an die Spitze, er markiert einige Stellen, sagt aber nicht, was das Problem ist, ich muss versuchen, es selbst herauszufinden. Und du fängst wirklich an zu denken - es ist sehr pumpend.
Aber auch eine derart strenge Qualitätskontrolle hat uns nicht vor Ärger bewahrt.
Die Arbeit bezog sich auf Datenbanken. Auf den Servern des Unternehmens wurden Tonnen von Finanzinformationen der Kunden (Bankkarten, Transaktionsverlauf) gespeichert. Einmal alle 5 Tage gab es eine Nacht, die ich bei der Arbeit verbringen musste. Ich stellte sicher, dass alles funktionierte, beantwortete E-Mails und Anrufe. Ich mochte die Nachtschichten. Für den Ausstieg zahlten sie nicht einmal einen doppelten, sondern einen dreifachen Satz. Ich saß von 21 bis 6 Uhr auf der Hut - ich wurde für 3 Tage bezahlt. Was braucht ein Student noch?
Zusätzlich zum Geld muss der Schüler genügend Schlaf bekommen
In unserem Unternehmen wurden alle Arbeitsprozesse fehlerfrei aufgebaut. Überprüfungen, Tests, Bewertungen. Wieder Checks, Tests und Reviews. Aber auch ein solches System kann ausfallen, und Sie müssen darauf vorbereitet sein, dass Sie wie ein Wehrpflichtiger am Morgen alarmiert auferweckt werden.
Eines schönen Tages kehrte ich vom Dienst zurück. Ich bin einfach von den Füßen gefallen. Ich ging zur Universität - porträtierte einen Studenten. Abends wurde ich tot ohnmächtig und es war noch nicht einmal acht Uhr. Ich wollte für die Ewigkeit schlafen, nicht weniger.
Aber um 4 Uhr morgens wurde ich von der Person geweckt, die für die gesamte Unterstützung in der Firma verantwortlich war - er rief mich zum ersten Mal an.
- Hast du gestern etwas mit der Basis gemacht?
- Nein, nichts Besonderes.
- Stehen Sie auf und gehen Sie dringend zu Ihrem Computer.
Ich bin natürlich ein Morgenmensch, aber ich bin immer noch verrückt nach dem Anruf. Meine Uhr war am Vorabend des Unfalls.
Der erste Gedanke ist natürlich, dass ich alles kaputt gemacht habe
Es stellte sich heraus, dass eine ganze Gruppe von Benutzern einfach abgeschnitten worden war. Sie war nicht im Laden. Aber sie existierte immer hier, wo ist sie hingefallen? Ich fing an zu suchen. Sah sich die Protokolle an, die gestartet wurden. Ich fing an, diese Protokolle zu rauchen (die erste halbe Stunde wurde für das Aufwachen aufgewendet, eine weitere halbe Stunde - um die Protokolle aufzuwärmen und zu verstehen, welche Skripte gestartet wurden). Ich lud die Skripte für mich herunter, schaute mir an, was sie taten, und grub aus, welcher von ihnen an diesen bestimmten Ort geklettert war. Und ich habe einen Fehler gefunden.
Startete es in einer Testumgebung - Testbenutzer haben es herausgesägt. Hmm, sah aus, wie dieses Ding getestet wurde. Aus irgendeinem Grund wurden diesmal, obwohl wir drei Devstends haben, der erste und der zweite verpasst, und der dritte fiel nicht einmal. Niemand hat einen Test dafür geschrieben (ich habe mich selbst angekreuzt, damit dies nicht wieder vorkommt).
Parallel zu mir saßen viele Leute und suchten nach einem Problem und riefen ständig an. Schließlich stellten wir um 6 Uhr morgens fest, dass jemand ein Skript geschrieben, es bei einem Test überprüft, aber einen wichtigen Fall nicht berücksichtigt hatte. Infolgedessen fielen Benutzer unter diejenigen, die entfernt werden mussten.
Also haben wir über Nacht ungefähr eine Million Benutzer verprügelt
Wir haben die Datenbank wiederhergestellt und ein Backup erstellt. Bis wir über das Problem Bescheid wussten, gaben die Benutzer im Laufe der Nacht immer mehr Daten ein. Wir haben allen über ein technisches Problem geschrieben und den Eingang geschlossen, damit es keinen Strom neuer Informationen gab. Es war notwendig, die Datenbank in 7 Stunden einzufrieren, auf die Null zu verschieben und alle Benutzer zurückzugeben. Für diejenigen, die versuchten einzutreten, dies aber nicht konnten, schrieb das Unternehmen eine separate Entschuldigung ab, die mit Boni beladen war.
Wir haben alles bis 7 Uhr morgens repariert. Um 8 Uhr entließ die Firma den Mann, der alles gebraut hatte.
Der Typ hat gut gearbeitet, er hat immer alles überprüft. Ein paar Mal hat er mich sogar überprüft und wirklich coole Dinge vorgeschlagen. Aber es ist wie fahren. Im ersten Jahr hinter dem Lenkrad haben Sie Angst vor allem und stapfen auf die richtige Spur. Dann entspannen Sie sich ein wenig und haben in diesem Moment einen Unfall!
Würde ich eine Person wegen eines Fehlers entlassen? "Das Programm macht das, was Sie geschrieben haben." Aber wir sind entwickelt, wir machen ständig Fehler. Stellen Sie sich vor, wie schlimm dieser Kerl an diesem Morgen war. Und warum eine Person aufstellen, die jetzt jedes Zeichen in ihrem Code überprüft? Aber das Management wollte Blut, und in den nächsten Wochen flogen mehrere weitere, die an diesem Fall beteiligt waren, heraus.
Ich habe dort noch ein paar Wochen gearbeitet, aber mir wurde bereits klar, dass ich das Backend verlassen wollte.
In Skolkovo habe ich festgestellt, wie interessiert ich an einem Projekt mit Android-Entwicklung bin. Wir haben eine Anwendung entwickelt und mit Arduino verknüpft. Die Aufgabe war ganz einfach: Sie mussten über Bluetooth oder WLAN von Ihrem Telefon aus eine Verbindung zum Arduino herstellen und den Befehl senden. Die App hatte ein paar Bildschirme mit Schaltflächen. Wie gedacht, war das Arduino mit dem Layout eines Smart Homes verbunden und diese Tasten sollten Fenster öffnen und schließen.
Es gab mehr als genug Gründe, sich auf den ersten Blick in einen Android zu verlieben
Mir hat sehr gut gefallen, dass es eine Benutzeroberfläche gibt. Ich mochte die Fähigkeit, Animationen zu machen (jetzt in der Android-Entwicklung liebe ich das am meisten). Die Dokumentation von Google war viel besser als das, was ich zuvor gesehen hatte. Java hat mehr Python und C ++. Während ich Kurse über Android auf dem Cursor belegte, wurde mir eines klar:
Es ist wichtig, dass ich das Ergebnis sofort sehe.
Es machte es auch einfacher zu erklären, was ich tue. Versuchen Sie der Person zu sagen, was Backend-Arbeit ist. Warum wird das benötigt und so weiter. Mit einem Android nehmen Sie einfach Ihr Handy heraus und sagen - ich habe diese Anwendung gemacht.
Dieser Fall mit Fußball - mir wurde ein Entwurf von Indianern gegeben. Um ehrlich zu sein, haben sie es nicht sehr gut gemacht. Anstatt Code in eine Funktion zu extrahieren, kopierten sie erneut 700 Zeilen. Das Refactoring dauerte zwei Wochen.
Und ich habe es trotzdem beendet und bin gerade wild hoch gekommen. Ich erkannte, dass ich dies fortsetzen wollte und suchte nach einem Unternehmen, mit dem ich zusammenarbeiten konnte. Ich habe die E-Legion der Android-Schule durchlaufen, einen Test gemacht, einen Job bekommen - und jetzt leite ich hier die Android-Entwicklung.
Und ich bin unglaublich froh, dass sie mich um vier Uhr morgens nicht hochheben, um die brennenden Basen zu retten, und mich dann nicht zwingen, Hinrichtungslisten zu erstellen.