Dies ist nicht der erste Hackathon, den ich gewinne, nicht der erste, über den ich schreibe , und dies ist nicht der erste Beitrag auf dem Hub, der dem digitalen Durchbruch gewidmet ist. Aber ich konnte nicht schreiben. Ich halte meine Erfahrung für einzigartig genug, um sie zu teilen. Ich bin wahrscheinlich die einzige Person auf diesem Hackathon, die als Teil verschiedener Teams die regionale Etappe und das Finale gewonnen hat. Möchten Sie wissen, wie das passiert ist? Willkommen bei Katze.
Regionalbühne (Moskau, 27. - 28. Juli 2019).
Ich habe die Digital Breakout-Werbung zum ersten Mal irgendwo im März - April dieses Jahres gesehen. Natürlich konnte ich an einem so großen Hackathon nicht vorbeikommen und mich auf der Seite registrieren. Ich habe auch die Bedingungen und das Programm des Wettbewerbs kennengelernt. Es stellte sich heraus, dass für den Hackathon Online-Tests erforderlich waren, die am 16. Mai begannen. Und vielleicht hätte ich es sicher vergessen, da ein Brief mit einer Erinnerung an den Beginn der Tests nicht kam. Und ich muss sagen, dass in Zukunft ALLE BRIEFE, die von der CPU zu mir kamen, stetig in den Spam-Ordner fielen. Obwohl ich den Knopf gedrückt habe "ist nicht unerwünscht" jedes Mal. Ich weiß nicht, wie sie es geschafft haben, ein solches Ergebnis zu erzielen. Beim Mailing auf MailGun hat es für mich nicht geklappt. Und die Jungs scheinen im Prinzip nichts über die Existenz von Diensten wie isnotspam.com zu wissen. Aber wir sind verirrt.
Ich wurde an den Beginn der Tests bei einem der Treffen des Startup-Clubs erinnert , bei denen wir auch über die Bildung des Teams diskutierten. Nachdem ich die Liste der Tests geöffnet hatte, setzte ich mich zuerst zu einem Test auf Javascript. Im Allgemeinen waren die Aufgaben mehr oder weniger angemessen (z. B. was das Ergebnis wäre, wenn Sie 1 + '1' in der Konsole hinzufügen). Aber aus eigener Erfahrung würde ich solche Tests bei der Auswahl für einen Job oder als Team mit sehr großen Vorbehalten verwenden. Tatsache ist, dass der Programmierer in der realen Arbeit selten auf solche Dinge stößt, da er den Code schnell erledigen kann - dieses Wissen korreliert in keiner Weise, und Sie können solche Dinge ganz einfach für Interviews üben (ich weiß es selbst). Im Allgemeinen habe ich den Test ziemlich schnell angeklickt, in einigen Fällen habe ich mich in der Konsole überprüft. Im Python-Test waren die Aufgaben vom gleichen Typ, ich habe mich auch in der Konsole überprüft, mit Überraschung habe ich mehr Punkte erzielt als in JS, obwohl ich nie professionell in Python programmiert habe. Dann hörte ich im Gespräch mit den Teilnehmern Geschichten darüber, wie starke Programmierer niedrige Testergebnisse erzielten, wie einige Leute Briefe erhielten, in denen sie feststellten, dass sie die Auswahl für die CPU nicht bestanden hatten, und dann wurden sie trotzdem dazu eingeladen. Es ist klar, dass die Entwickler dieser Tests höchstwahrscheinlich nichts über die Testtheorie , ihre Zuverlässigkeit und Gültigkeit oder ihre Testweise gehört haben, und die Idee mit Tests wäre zunächst ein Misserfolg, selbst wenn wir das Hauptziel nicht berücksichtigen würden Hackathon. Und das Hauptziel des Hacks war, wie ich später erfuhr, einen Guinness-Rekord aufzustellen, und die Tests widersprachen ihr.
Irgendwann, nachdem sie die Tests bestanden hatten, riefen sie mich an, fragten, ob ich teilnehmen würde, klärten die Details und erklärten, wie man in den Chat kommt, um ein Team auszuwählen. Bald ging ich in den Chat und schrieb einen kurzen Bericht über mich. Im Chat wurde ein kompletter Papierkorb erstellt, und es wurde der Eindruck erweckt, dass die Organisatoren viele zufällige Personen beworben hatten, die nichts mit IT zu tun hatten. Zahlreiche Produktmanager der Stufe „Steve Jobs“ (ein echter Satz aus der Präsentation eines Teilnehmers) haben Geschichten über sich selbst veröffentlicht, und normale Entwickler waren nicht einmal sichtbar. Aber ich hatte Glück und schloss mich bald drei erfahrenen JS-Programmierern an. Wir haben uns bereits beim Hackathon getroffen und dann ein Mädchen zum Team hinzugefügt, um Inspiration zu finden und Organisationsprobleme zu lösen. Ich weiß nicht mehr warum, aber wir haben das Thema "Cybersecurity Education" aufgegriffen und sind damit in den Track "Science and Education 2" eingestiegen. Das erste Mal war ich in einem Team von 4 starken Programmierern und zum ersten Mal fühlte ich, wie einfach es ist, in einer solchen Komposition zu gewinnen. Wir kamen unvorbereitet und stritten uns vor dem Abendessen und konnten uns nicht entscheiden, was wir tun würden: eine mobile Anwendung oder das Internet. In jeder anderen Situation würde ich denken, dass dies ein Fehler ist. Das Wichtigste für uns war zu verstehen, wie wir besser als die Konkurrenz sein würden, denn es gab viele Teams, die Tests, Cybersicherheitsspiele und dergleichen sägten. Als wir uns das und die Google-Tutorials und -Anwendungen angesehen haben, haben wir beschlossen, dass unser Hauptunterscheidungsmerkmal das Feueralarmtraining ist. Wir haben eine Reihe von Chips ausgewählt, die wir für die Implementierung interessant fanden (Registrierung mit E-Mail- und Passwortüberprüfung auf Hackerbasis, Versenden von Phishing-Briefen (in Form von Briefen bekannter Banken), Social-Engineering-Training im Chat). Nachdem wir uns entschieden hatten, was wir tun, und verstanden hatten, wie wir uns von anderen abheben können, schrieben wir schnell eine vollwertige Webanwendung, und ich fungierte als Entwickler-Backend, das für mich ungewöhnlich war. So haben wir unsere Strecke souverän gewonnen und als Teil von drei weiteren Teams für das Finale in Kasan ausgewählt. Später in Kasan erfuhr ich, dass die Auswahl für das Finale eine Fiktion war. Ich traf viele bekannte Gesichter der Teams, die diese Auswahl nicht bestanden hatten. Wir haben sogar Journalisten von Channel 1 interviewt. Es stimmt, unsere Anwendung wurde nur 1 Sekunde lang in einem Bericht davon gezeigt.

Schneeteam, in dem ich die regionale Etappe gewonnen habe
Finale (Kasan, 27. - 29. September 2019)
Aber weitere Rückschläge begannen. Alle Programmierer des Snowed-Teams berichteten nacheinander etwa einen Monat lang, dass sie nicht zum Finale nach Kasan fahren könnten. Und ich dachte darüber nach, ein neues Team zu finden. Zuerst habe ich im allgemeinen Chat des russischen Hack-Teams einen Schrei geworfen, und obwohl ich dort einige Antworten und Einladungen an die Teams erhalten habe, hat mich keiner von ihnen begeistert. Es gab unausgeglichene Teams wie Produkt, Entwickler von Mobilgeräten, Front-End, die an einen Schwan, eine Krabbe und einen Hecht aus einer Fabel erinnerten. Es gab auch Teams, die nicht zu mir passten (zum Beispiel mit der Entwicklung einer mobilen Anwendung auf Flutter). Schließlich veröffentlichten sie im Chat, den ich als Müll betrachtete (dieselbe VKontakte, in der die Teams für die regionale Phase ausgewählt wurden), eine Ankündigung über die Suche nach dem Front-Renderer im Team, und ich schrieb nach dem Zufallsprinzip. Die Jungs erwiesen sich als Doktoranden von Skoltech und boten sofort an, sich zu treffen und kennenzulernen. Ich mochte es, Teams, die es vorziehen, Hackathon sofort kennenzulernen, beunruhigen mich normalerweise mit ihrer mangelnden Motivation. Traf sich im "Rake" auf Pyatnitskaya. Die Jungs wirkten vernünftig, motiviert, selbstbewusst und siegreich, und ich traf genau dort eine Entscheidung. Wir wussten nicht, wie die Strecken und Aufgaben im Finale aussehen würden, aber wir gingen davon aus, dass wir uns für etwas entscheiden würden, das mit maschinellem Lernen zu tun hat. Und meine Aufgabe wird es sein, ein Admin-Panel für dieses Unternehmen zu schreiben, also habe ich dafür ein auf antd-admin basierendes Leerzeichen vorbereitet.
Ich ging kostenlos nach Kasan, auf Kosten der Organisatoren. Ich muss sagen, dass in Chats und Blogs bereits viel Unzufriedenheit über den Kauf von Tickets und im Allgemeinen über die Organisation des Finales zum Ausdruck gebracht wurde. Ich werde nicht alles nacherzählen.
Als wir auf der Kazan Expo ankamen, uns anmeldeten (gleichzeitig hatte ich einige Probleme, ein Abzeichen zu bekommen) und frühstückten, suchten wir uns eine Strecke aus. Wir gingen nur 10 Minuten zur Eröffnungsfeier, wo die Beamten sprachen. Tatsächlich hatten wir bereits unsere bevorzugten Tracks, aber wir waren an den Details interessiert. In Titel Nr. 18 (Rostelecom) stellte sich beispielsweise heraus, dass eine mobile Anwendung entwickelt werden musste, obwohl dies nicht in der Kurzbeschreibung enthalten war. Wir haben die Hauptwahl zwischen der Inspektion der Pipeline Nr. 8, PJSC Gazprom Neft, und den perinatalen Zentren Nr. 13, der Rechnungskammer der Russischen Föderation, getroffen. Sowohl dort als auch dort wurde Data Science benötigt, und dort und dort wäre es möglich, das Web zu befestigen. In Track Nr. 13 wurden wir durch die Tatsache gestoppt, dass die Aufgabe von Data Science dort eher schwach war, Rosstat analysiert werden musste und nicht klar war, ob ein Admin-Panel benötigt wurde. Und der Wert der Aufgabe war zweifelhaft. Infolgedessen haben wir beschlossen, dass wir uns als Team mehr auf Strecke 8 konzentrieren, zumal die Jungs bereits Erfahrung in der Lösung solcher Probleme hatten. Wir haben uns zunächst ein Szenario überlegt, in dem unsere Anwendung vom Endbenutzer verwendet wird. Es stellte sich heraus, dass wir zwei Arten von Benutzern haben werden: Techniker, die an technischen Informationen interessiert sind, und Manager, die Finanzindikatoren benötigen. Als die Idee des Skripts auftauchte, wurde klar, was vorne zu tun ist, was für den Designer zu zeichnen ist und welche Methoden im Backend benötigt werden. Es wurde möglich, die Aufgaben zu verteilen. Die Verantwortlichkeiten im Team waren wie folgt: Zwei Personen lösten ML mit den von den technischen Experten erhaltenen Daten, eine Person schrieb ein Backend in Python, ich schrieb die Vorderseite auf die Reaktion und antd, der Designer zeichnete Schnittstellen. Wir haben uns sogar hingesetzt, damit wir bequemer kommunizieren und gleichzeitig unsere Probleme lösen konnten.
Der erste Tag verging fast unmerklich. In der Kommunikation mit technischen Experten stellte sich heraus, dass sie (Gazprom Neft) dieses Problem bereits gelöst hatten. Sie fragten sich nur, ob es besser gelöst werden könnte. Ich werde nicht sagen, dass diese Motivation reduziert, aber das Sediment blieb. Es war überraschend, dass die Sektionsmoderatoren nachts Arbeitsteams bemerkten (wie sie für Statistiken sagten), normalerweise wird dies bei Hackathons nicht praktiziert. Am Morgen hatten wir einen Prototyp der Vorderseite, einige der Anfänge der Rückseite, die erste ML-Lösung. Generell gab es den Experten bereits etwas zu zeigen. Am Samstagnachmittag zeichnete der Designer offensichtlich mehr Schnittstellen, als ich hätte codieren können, und wechselte zur Erstellung einer Präsentation. Der Samstag war für die Registrierung der Aufzeichnung vorgesehen, und am Morgen wurden alle Arbeiter in der Halle in den Korridor geworfen, dann wurden der Ein- und Ausgang der Halle mit Abzeichen durchgeführt, und es war möglich, für den Tag nicht länger als eine Stunde abzureisen. Ich kann nicht sagen, dass es uns die meiste Zeit des Tages, als wir noch saßen und arbeiteten, erhebliche Unannehmlichkeiten bereitete. Das Essen war in der Tat sehr knapp, zum Mittagessen erhielten wir ein Glas Brühe, einen Kuchen und einen Apfel, aber auch dies störte uns nicht sehr, wir konzentrierten uns auf den anderen.
Regelmäßig ausgegebener Red Bull, zwei Dosen pro Hand, war es sehr praktisch. Das Rezept energetik + Kaffee, das bereits auf Hackathons getestet worden war, ermöglichte das Codieren die ganze Nacht und den nächsten Tag und war so fröhlich wie ein Glas. Tatsächlich haben wir bereits am zweiten Tag einfach neue Chips für die Anwendung aufgerollt, Finanzindikatoren berechnet und Diagramme zur Statistik der Mängel auf Autobahnen angezeigt. Daher gab es in unserem Track keine Codeüberprüfung, Experten bewerteten die Lösung des Problems im Stil von kaggle.com entsprechend der Genauigkeit der Prognose und das Front-End wurde visuell bewertet. Unsere ML-Lösung erwies sich als die genaueste. Vielleicht haben wir dadurch die Führung übernommen. In der Nacht von Samstag auf Sonntag arbeiteten wir bis 2 Uhr morgens und schliefen dann in der Wohnung ein, die als Basis diente. Wir haben ungefähr 5 Stunden geschlafen, am Sonntag um 9 Uhr waren wir bereits auf der Kazan Expo. Ich habe schnell etwas hochgeladen, aber die meiste Zeit hat es gedauert, um mich auf die Verteidigung vorzubereiten. Vorabverteidigungen fanden in zwei Streams statt, bevor zwei Expertenteams, wurden wir gebeten, zuletzt zu sprechen, da beide Expertenteams uns zuhören wollten. Wir haben es als gutes Zeichen genommen. Die Anwendung wurde von meinem Laptop aus angezeigt, vom laufenden Entwicklungsserver. Wir haben es nicht geschafft, die Anwendung ordnungsgemäß bereitzustellen, aber wir haben alles auf diese Weise gemacht.
Im Allgemeinen lief alles gut, sie wiesen uns auf Punkte hin, an denen wir unsere Anwendung verbessern könnten, und sogar vor der Verteidigung haben wir sogar versucht, einen dieser Kommentare umzusetzen. Die Abwehr verlief ebenfalls überraschend reibungslos. Nach den Ergebnissen der Vorverteidigung wussten wir, dass wir in Bezug auf Punkte die Nase vorn hatten, bei der Genauigkeit der Entscheidung an der Spitze standen, ein gutes Frontend, ein gutes Design und im Allgemeinen gute Vorahnungen hatten. Ein weiteres günstiges Zeichen war, dass die Moderatorin aus unserer Sektion vor dem Betreten des Konzertsaals ein Selfie mitnahm, ich vermutete dann, dass sie etwas wissen könnte))). Aber wir kannten unsere Punkte nach der Abwehr nicht, daher war die Zeit bis zur Ankündigung unseres Teams von der Bühne etwas stressig. Auf der Bühne reichten sie einen Karton mit der Aufschrift 500.000 Rubel und jede Tasche mit einem Becher und einem Akku für ein Handy. Wir haben den Sieg nicht genossen und ihn nicht normal gefeiert, wir haben schnell zu Abend gegessen und sind mit dem Zug mit dem Taxi gefahren.

WAICO Team gewinnt Finale
Bei unserer Rückkehr nach Moskau haben uns Journalisten von NTV interviewt. Sie filmten eine ganze Stunde im zweiten Stock des Kvartal 44-Cafés auf Polyanka, aber in den Nachrichten zeigten sie 10 Sekunden. Immerhin gab es im Vergleich zur regionalen Bühne starke Fortschritte.
Um die allgemeinen Eindrücke des digitalen Durchbruchs zusammenzufassen, sind sie wie folgt. Die Veranstaltung wurde nur für verrücktes Geld ausgegeben, ich habe noch nie einen Hackathon dieser Größenordnung gesehen. Aber zu sagen, dass es gerechtfertigt ist und sich wirklich auszahlt, kann ich nicht. Ein bedeutender Teil der Teilnehmer, die in Kasan ankamen, waren einfach Partygänger, die nicht wissen, wie man etwas mit ihren eigenen Händen macht, und die eingeholt wurden, um einen Rekord aufzustellen. Ich kann nicht sagen, dass der Wettbewerb im Finale höher war als auf regionaler Ebene. Auch der Wert und die Nützlichkeit der Aufgaben einiger Tracks ist zweifelhaft. Einige Aufgaben wurden auf industrieller Ebene seit langem gelöst. Wie sich später herausstellte, waren einige der Organisationen, die die Tracks leiteten, nicht daran interessiert, sie zu lösen. Und diese Geschichte ist noch nicht vorbei, die Führungsteams aus jeder Strecke wurden als Vorbeschleuniger ausgewählt, und es wird davon ausgegangen, dass sie BREAKTHROUGH-Startups machen werden. Aber ich bin noch nicht bereit, darüber zu schreiben. Mal sehen, was passiert.