Digitaler Durchbruch – wie es dazu kam

Dies ist nicht der erste Hackathon, den ich gewinne, nicht der erste schreiben, und dies ist nicht der erste Beitrag auf Habré, der dem „Digitalen Durchbruch“ gewidmet ist. Aber ich konnte nicht anders, als zu schreiben. Ich halte meine Erfahrung für einzigartig genug, um sie zu teilen. Ich bin wahrscheinlich die einzige Person bei 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.

Regionale Bühne (Moskau, 27. - 28. Juli 2019).

Irgendwann im März und April dieses Jahres habe ich zum ersten Mal eine Werbung für „Digital Breakthrough“ gesehen. Natürlich konnte ich mir einen so großen Hackathon nicht entgehen lassen und habe mich auf der Website angemeldet. Dort habe ich mich mit den Bedingungen und dem Programm des Wettbewerbs vertraut gemacht. Es stellte sich heraus, dass man, um zum Hackathon zu gelangen, einen Online-Test bestehen musste, der am 16. Mai begann. Und vielleicht hätte ich es bequemerweise vergessen, da ich keinen Brief erhalten habe, der mich an den Beginn der Tests erinnert. Und ich muss sagen, in Zukunft landeten ALLE BRIEFE, die von der CPU zu mir kamen, konsequent im Spam-Ordner. Auch wenn ich jedes Mal auf den Button „nicht beanstanden“ geklickt habe. Ich weiß nicht, wie sie es geschafft haben, ein solches Ergebnis zu erzielen; mit dem Mailing auf MailGun hat es bei mir nicht geklappt. Und die Jungs scheinen überhaupt nichts von der Existenz von Diensten wie isnotspam.com zu wissen. Aber wir schweifen ab.

Bei einem der Treffen wurde ich an den Beginn der Tests erinnert Startup-ClubDort haben wir auch die Aufstellung des Teams besprochen. Nachdem ich die Liste der Tests geöffnet hatte, machte ich mich zunächst an den Javascript-Test. Im Allgemeinen waren die Aufgaben mehr oder weniger ausreichend (z. B. das Ergebnis, wenn man in der Konsole 1 + „1“ addiert). Aber aus meiner Erfahrung würde ich solche Tests bei der Rekrutierung für eine Stelle oder ein Team mit sehr großen Vorbehalten einsetzen. Tatsache ist, dass ein Programmierer in der realen Arbeit mit seiner Fähigkeit, Code schnell zu debuggen, selten auf solche Dinge stößt - dieses Wissen korreliert in keiner Weise, und man kann solche Dinge für Interviews ganz einfach trainieren (ich weiß es von mir selbst). Generell habe ich mich recht schnell durch den Test geklickt, teilweise habe ich mich in der Konsole selbst überprüft. Im Python-Test waren die Aufgaben ungefähr von der gleichen Art, ich habe mich auch in der Konsole getestet und war überrascht, mehr Punkte zu erzielen als in JS, obwohl ich nie professionell in Python programmiert habe. Später hörte ich in Gesprächen mit Teilnehmern Geschichten darüber, wie starke Programmierer bei Tests schlechte Ergebnisse erzielten, wie einige Leute Briefe erhielten, in denen stand, dass sie den Auswahlprozess für die CPU nicht bestanden hatten, und dann trotzdem dazu eingeladen wurden. Es ist klar, dass die Ersteller dieser Tests höchstwahrscheinlich noch nichts davon gehört haben Testtheorie, weder um ihre Zuverlässigkeit und Validität, noch darum, wie man sie testet, und die Idee mit Tests wäre von Anfang an gescheitert, selbst wenn wir das Hauptziel des Hackathons nicht berücksichtigt hätten. Und das Hauptziel des Hacks bestand, wie ich später erfuhr, darin, einen Guinness-Rekord aufzustellen, und die Tests widersprachen dem.

Irgendwann nach bestandener Prüfung riefen sie mich an, fragten, ob ich teilnehmen würde, klärten die Details und erklärten mir, wie ich in den Chat zur Teamauswahl komme. Bald betrat ich den Chat und schrieb kurz über mich. Im Chat herrschte völliger Unsinn; es schien, als würden die Organisatoren ihre Werbung an eine Menge willkürlicher Leute richten, die nichts mit IT zu tun hatten. Zahlreiche Produktmanager „auf dem Niveau von Steve Jobs“ (eine echte Formulierung aus der Einreichung eines Teilnehmers) posteten Geschichten über sich selbst, 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 kennengelernt und dann ein Mädchen zum Team hinzugefügt, um uns inspirieren zu lassen und organisatorische Probleme zu lösen. Ich weiß nicht mehr warum, aber wir haben das Thema „Cybersicherheitsschulung“ in den Track „Wissenschaft und Bildung 2“ aufgenommen. Zum ersten Mal fand ich mich in einem Team von 4 starken Programmierern wieder und spürte zum ersten Mal, wie einfach es war, in einer solchen Zusammensetzung zu gewinnen. Wir kamen unvorbereitet und diskutierten bis zum Mittagessen und konnten uns nicht entscheiden, was wir tun würden: eine mobile Anwendung oder eine Webanwendung. In jeder anderen Situation hätte ich gedacht, dass es ein Misserfolg war. Das Wichtigste für uns war zu verstehen, wie wir besser als unsere Konkurrenten sein könnten, denn es gab viele Teams, die Tests, Cybersicherheitsspiele und ähnliches durchführten. Nachdem wir uns das angeschaut und Trainingsprogramme und Apps gegoogelt hatten, kamen wir zu dem Schluss, dass unser Hauptunterscheidungsmerkmal die Brandschutzübungen sein würden. Wir haben eine Reihe von Funktionen ausgewählt, deren Implementierung wir interessant fanden (Registrierung mit E-Mail- und Passwortverifizierung gegen Hacker-Datenbanken, Versenden von Phishing-E-Mails (in Form von Briefen bekannter Banken), Social-Engineering-Schulung im Chat). Nachdem wir uns entschieden hatten, was wir tun wollten, und verstanden hatten, wie wir uns von anderen abheben konnten, schrieben wir schnell eine vollwertige Webanwendung, und ich übernahm die ungewöhnliche Rolle eines Backend-Entwicklers. So haben wir unsere Strecke souverän gewonnen und uns zusammen mit drei anderen Teams für das Finale in Kasan qualifiziert. Später, in Kasan, erfuhr ich, dass die Auswahl für die Endrunde eine Fiktion war; ich traf dort viele bekannte Gesichter von den Teams, die die Auswahl nicht bestanden hatten. Wir wurden sogar von Journalisten von Channel 1 interviewt. Allerdings wurde unsere Anwendung im Bericht davon nur 1 Sekunde lang angezeigt.

Digitaler Durchbruch – wie es dazu kam
Snowed-Team, wo ich die regionale Etappe gewonnen habe

Finale (Kasan, 27. – 29. September 2019)

Doch dann begannen die Misserfolge. Alle Programmierer des Snowed-Teams meldeten etwa einen Monat nacheinander, dass sie nicht zum Finale nach Kasan reisen könnten. Und ich dachte darüber nach, ein neues Team zu finden. Zuerst habe ich im allgemeinen Chat des russischen Hack-Teams angerufen und obwohl ich dort ziemlich viele Antworten und Einladungen zum Beitritt zu Teams erhalten habe, hat keine davon meine Aufmerksamkeit erregt. Es gab unausgeglichene Teams wie Produkt, mobiler Entwickler, Frontend, die an einen Schwan, einen Krebs und einen Hecht aus einer Fabel erinnerten. Es gab auch Teams, die technisch nicht für mich geeignet waren (z. B. bei der Entwicklung einer mobilen Anwendung in Flutter). Schließlich wurde in einem Chat, den ich für kitschig hielt (dasselbe VKontakte, wo die Auswahl der Teams für die regionale Bühne stattfand), eine Anzeige über die Suche nach einem Frontender für das Team gepostet, und ich schrieb rein zufällig. Es stellte sich heraus, dass die Jungs Doktoranden bei Skoltech waren und boten sofort an, sich zu treffen und kennenzulernen. Mir hat es gefallen; Teams, die sich bei einem Hackathon lieber gleich kennenlernen möchten, machen mir meist Angst vor mangelnder Motivation. Wir trafen uns bei „Rake“ auf der Pjatnizkaja. Die Jungs schienen schlau, motiviert, selbstbewusst und siegessicher zu sein, und ich habe genau dort die Entscheidung getroffen. Wir wussten noch nicht, welche Tracks und Aufgaben es im Finale geben würde, gingen aber davon aus, dass wir uns für etwas mit Bezug zum maschinellen Lernen entscheiden würden. Und meine Aufgabe wird es sein, einen Admin für diese Angelegenheit zu schreiben, deshalb habe ich im Voraus eine Vorlage dafür basierend auf antd-admin vorbereitet.
Ich bin auf Kosten der Organisatoren kostenlos nach Kasan gefahren. Ich muss sagen, dass in Chats und Blogs bereits viel Unzufriedenheit bezüglich des Ticketkaufs und allgemein der Organisation des Finales geäußert wurde, ich werde nicht alles noch einmal erzählen.

Nachdem wir auf der Kazan Expo angekommen waren, uns registriert hatten (ich hatte ein wenig Probleme, einen Ausweis zu bekommen) und gefrühstückt hatten, machten wir uns auf die Suche nach einer Strecke. Wir waren nur für etwa zehn Minuten bei der großen Eröffnung, wo die Offiziellen gesprochen haben. Eigentlich hatten wir schon unsere Lieblingsstrecken, aber wir waren an den Details interessiert. In Track Nr. 10 (Rostelecom) stellte sich beispielsweise heraus, dass es notwendig war, eine mobile Anwendung zu entwickeln, obwohl dies nicht in der Kurzbeschreibung enthalten war. Wir haben die Hauptwahl zwischen Spur Nr. 18 Defektoskopie von Pipelines, Gazprom Neft PJSC und Spur Nr. 8 Perinatalzentren, Rechnungskammer der Russischen Föderation, getroffen. In beiden Fällen war Data Science erforderlich, und in beiden Fällen hätte das Web hinzugefügt werden können. In Track Nr. 13 wurden wir durch die Tatsache gestoppt, dass die Data Science-Aufgabe dort recht schwach war, Rosstat analysiert werden musste und nicht klar war, ob ein Admin-Panel erforderlich war. Und der eigentliche Wert der Aufgabe war zweifelhaft. Am Ende haben wir entschieden, dass wir als Team besser für Track 13 geeignet sind, zumal die Jungs bereits Erfahrung mit der Lösung ähnlicher Probleme hatten. Wir begannen damit, über das Szenario nachzudenken, in dem unsere Anwendung vom Endbenutzer verwendet werden würde. Es stellte sich heraus, dass wir zwei Arten von Benutzern haben würden: Technikfreaks, die an technischen Informationen interessiert waren, und Manager, die Finanzkennzahlen benötigten. Als eine Idee für das Szenario entstand, wurde klar, was am Frontend zu tun war, was der Designer zeichnen sollte und welche Methoden am Backend benötigt wurden, und es wurde möglich, Aufgaben zu verteilen. Die Verantwortlichkeiten im Team waren wie folgt verteilt: Zwei Personen lösten ML mit Daten, die sie von technischen Experten erhalten hatten, eine Person schrieb das Backend in Python, ich schrieb das Frontend in React und Antd, der Designer zeichnete die Schnittstellen. Wir setzten uns sogar hin, damit es für uns bequemer war, zu kommunizieren und gleichzeitig unsere Probleme zu lösen.

Der erste Tag verging fast unbemerkt. In der Kommunikation mit technischen Experten stellte sich heraus, dass sie (Gazprom Neft) dieses Problem bereits gelöst hatten und sich nur fragten, ob es besser gelöst werden könnte. Ich möchte nicht sagen, dass dies meine Motivation gemindert hat, aber es hat Spuren hinterlassen. Ich war überrascht, dass die Sektionsmoderatoren nachts die Arbeitsteams notierten (wie sie für Statistiken sagten); das wird bei Hackathons normalerweise nicht praktiziert. Am Morgen hatten wir einen Prototyp der Vorderseite, einige Rudimente der Rückseite und die erste ML-Lösung fertig. Generell gab es den Experten schon etwas zu zeigen. Am Samstagnachmittag zeichnete der Designer offensichtlich mehr Schnittstellen, als ich zum Codieren hatte, und ging dazu über, eine Präsentation zu erstellen. Der Samstag war für die Registrierung des Rekords vorgesehen, und am Morgen wurden alle in der Halle arbeitenden Personen auf den Flur geworfen, dann wurde der Ein- und Ausgang der Halle mit Abzeichen durchgeführt, und das Verlassen der Halle war für nichts mehr möglich als eine Stunde pro Tag. Ich möchte nicht sagen, dass uns das große Unannehmlichkeiten bereitet hat; wir saßen den größten Teil des Tages noch da und arbeiteten. Das Essen war zwar sehr dürftig; zum Mittagessen bekamen wir ein Glas Brühe, einen Kuchen und einen Apfel, aber auch das störte uns nicht sonderlich, wir waren auf etwas anderes konzentriert.

Sie gaben regelmäßig Red Bull aus, zwei Dosen pro Hand, was sehr hilfreich war. Das Energy-Drink + Kaffee-Rezept, das schon lange auf Hackathons getestet wurde, ermöglichte es mir, die ganze Nacht und den nächsten Tag so fröhlich wie ein Glas zu programmieren. Am zweiten Tag haben wir der Anwendung tatsächlich einfach neue Funktionen hinzugefügt, Finanzkennzahlen berechnet und begonnen, Diagramme zur Statistik von Mängeln an Autobahnen anzuzeigen. In unserem Track gab es keine eigentliche Codeüberprüfung; Experten bewerteten die Lösung des Problems im Stil von kaggle.com, basierend auf der Genauigkeit der Prognose, und das Frontend wurde visuell bewertet. Unsere ML-Lösung erwies sich als die genaueste, vielleicht ist es das, was es uns ermöglicht hat, führend zu werden. In der Nacht von Samstag auf Sonntag arbeiteten wir bis 2 Uhr morgens und schliefen dann in der Wohnung ein, die wir als Unterkunft nutzten. Wir haben etwa 5 Stunden geschlafen, am Sonntag um 9 Uhr waren wir bereits auf der Kazan Expo. Ich habe eilig etwas vorbereitet, aber die meiste Zeit habe ich damit verbracht, mich auf die Vorverteidigung vorzubereiten. Die Vorverteidigungen fanden in 2 Streams vor zwei Expertenteams statt; wir wurden gebeten, zuletzt zu sprechen, da uns beide Expertenteams zuhören wollten. Wir haben das als gutes Zeichen gewertet. Die Anwendung wurde von meinem Laptop aus auf einem laufenden Entwicklungsserver angezeigt; wir hatten keine Zeit, die Anwendung ordnungsgemäß bereitzustellen, aber alle taten das Gleiche.

Im Großen und Ganzen hat alles gut geklappt, wir wurden auf Punkte hingewiesen, in denen wir unsere Bewerbung verbessern könnten, und in der Zeit vor der Verteidigung haben wir sogar versucht, einige dieser Anmerkungen umzusetzen. Auch die Verteidigung verlief überraschend reibungslos. Aufgrund der Ergebnisse der Vorverteidigung wussten wir, dass wir punktuell vorne waren, was die Lösungsgenauigkeit angeht, wir hatten ein gutes Frontend, ein gutes Design und im Allgemeinen hatten wir gute Ergebnisse Gefühle. Ein weiteres positives Zeichen war, dass die Moderatorin unserer Sektion vor dem Betreten des Konzertsaals ein Selfie mit uns machte und ich dann vermutete, dass sie etwas wissen könnte))). Aber nach der Verteidigung kannten wir unseren Spielstand nicht, so dass die Zeit bis zur Bekanntgabe unserer Mannschaft auf der Bühne etwas angespannt verging. Auf der Bühne überreichten sie einen Karton mit der Aufschrift „500000 Rubel“ und jeder bekam eine Tüte mit einer Tasse und einem Handy-Akku. Es gelang uns nicht, den Sieg richtig zu genießen und zu feiern, wir aßen schnell zu Abend und fuhren mit dem Taxi zum Zug.

Digitaler Durchbruch – wie es dazu kam
Team WAICO gewinnt das Finale

Nach unserer Rückkehr nach Moskau interviewten uns Journalisten von NTV. Wir haben eine ganze Stunde lang im zweiten Stock des Cafés Kvartal 44 auf Poljanka gefilmt, aber die Nachrichten zeigten nur etwa 10 Sekunden. Immerhin ein starker Fortschritt im Vergleich zur regionalen Bühne.

Wenn wir die allgemeinen Eindrücke des digitalen Durchbruchs zusammenfassen, sind sie wie folgt. Für die Veranstaltung wurde viel Geld ausgegeben, Hackathons dieser Größenordnung habe ich noch nie gesehen. Ich kann aber nicht sagen, dass dies gerechtfertigt ist und sich wirklich lohnen wird. Ein erheblicher Teil der Teilnehmer, die nach Kasan kamen, waren einfach Partygänger, die nicht wussten, wie man etwas mit ihren eigenen Händen macht, und die gezwungen waren, einen Rekord aufzustellen. Ich kann nicht sagen, dass die Konkurrenz im Finale größer war als auf der regionalen Ebene. Auch der Wert und Nutzen der Aufgaben einiger Tracks ist fraglich. Einige Probleme sind auf industrieller Ebene längst gelöst. Wie sich später herausstellte, waren einige Organisationen, die die Spuren durchführten, nicht daran interessiert, sie zu lösen. Und diese Geschichte ist noch nicht zu Ende, die führenden Teams aus jedem Track wurden für den Pre-Accelerator ausgewählt und es wird davon ausgegangen, dass sie sich als BREAKTHROUGH-Startups herausstellen werden. Aber ich bin noch nicht bereit, darüber zu schreiben, wir werden sehen, was dabei herauskommt.

Source: habr.com

Kommentar hinzufügen