Der digitale Durchbruch – wie es dazu kam

Das ist nicht der erste Hackathon, den ich gewinne, nicht der erste, über den ich schreibe, und das ist bei weitem nicht der erste Beitrag auf Habré, der sich mit dem "Digitalen Durchbruch" beschäftigt. Aber ich konnte es mir nicht verkneifen, darüber zu schreiben. Ich halte meine Erfahrungen für so einzigartig, dass ich sie teilen möchte. Wahrscheinlich bin ich der einzige Teilnehmer dieses Hackathons, der die regionale Stufe und das Finale in verschiedenen Teams gewonnen hat. Möchten Sie wissen, wie das geschehen ist? Willkommen unter dem Beitrag.

Regionale Etappe (Moskau, 27. – 28. Juli 2019).

Die Werbung für den ‚Digitalen Durchbruch‘ habe ich zum ersten Mal irgendwann im März oder April dieses Jahres gesehen. Natürlich konnte ich an so einem großen Hackathon nicht vorbeigehen und habe mich auf der Website registriert. Dort habe ich auch die Teilnahmebedingungen und das Programm des Wettbewerbs gelesen. Es stellte sich heraus, dass man für die Teilnahme am Hackathon einen Online-Test absolvieren musste, der am 16. Mai begann. Und wahrscheinlich hätte ich darüber problemlos vergessen, wenn nicht das Erinnerungs-E-Mail über den Teststart gefehlt hätte. Zudem muss ich sagen, dass ALL E-MAILS, die ich von der CP erhielt, zuverlässig im Spam-Ordner landeten. Obwohl ich jedes Mal auf die Schaltfläche „kein Spam“ klickte. Ich weiß nicht, wie sie dieses Ergebnis erzielt haben, bei mir kam mit dem MailGun-Newsletter so etwas nicht vor. Offenbar sind sie nicht einmal mit Diensten wie isnotspam.com vertraut. Aber ich schweife ab.

Bei einem der Treffen wurde ich an den Testbeginn erinnert Startup-Club, dort haben wir auch die Bildung des Teams besprochen. Als ich die Testliste öffnete, begann ich gleich mit dem Test zu Javascript. Insgesamt waren die Aufgaben mehr oder weniger angemessen (zum Beispiel, welches Ergebnis man erhält, wenn man in der Konsole 1 + '1' eingibt). Aber aus meiner Erfahrung würde ich solche Tests bei der Auswahl für einen Job oder in einem Team mit sehr großen Vorbehalten anwenden. Der Grund ist, dass ein Programmierer in der realen Arbeit selten mit solchen Dingen konfrontiert wird; seine Fähigkeit, schnell Code zu schreiben, korreliert überhaupt nicht mit diesem Wissen, und sich für solche Tests zu trainieren, ist recht einfach (ich spreche aus Erfahrung). Insgesamt habe ich den Test ziemlich schnell durchgearbeitet und in einigen Fällen meine Antworten in der Konsole überprüft. Die Aufgaben im Python-Test waren von ähnlicher Art; auch hier überprüfte ich mich in der Konsole und war überrascht, mehr Punkte als im JS-Test zu erzielen, obwohl ich in Python nie professionell programmiert habe. Später hörte ich im Austausch mit den Teilnehmern Geschichten darüber, wie starke Programmierer niedrige Punktzahlen in den Tests erzielten, wie einige Personen E-Mails erhielten, in denen stand, dass sie nicht für die CP-Auswahl bestanden hatten, und sie dann trotzdem eingeladen wurden. Es ist klar, dass die Ersteller dieser Tests wahrscheinlich nichts über Testtheorie, noch über ihre Zuverlässigkeit und Validität, noch darüber, wie man sie testen kann. Die Idee, Tests durchzuführen, wäre von vornherein gescheitert, selbst wenn man das Hauptziel des Hackathons nicht berücksichtigt. Und das Hauptziel des Hacks, wie ich später herausfand, war es, einen Guinness-Weltrekord aufzustellen, und die Tests standen dem entgegen.

Irgendwann nach den Tests erhielt ich einen Anruf, bei dem man mich fragte, ob ich teilnehmen möchte, Details klärte und erklärte, wie ich in den Chat zur Teamauswahl gelangen kann. Bald darauf trat ich dem Chat bei und stellte mich kurz vor. Im Chat herrschte völliges Chaos, es machte den Eindruck, dass die Organisatoren durch Werbung viele zufällige Personen angezogen hatten, die keinerlei Bezug zur IT hatten. Zahlreiche Produktmanager "auf Steve Jobs Niveau" (echter Satz aus einer Vorstellung eines Teilnehmers) poste ihre Geschichten, während normale Entwickler kaum sichtbar waren. Doch ich hatte Glück und schloss mich bald drei erfahrenen JS-Entwicklern an. Wir lernten uns während des Hackathons kennen und fügten dem Team ein Mädchen hinzu, um Inspiration zu erhalten und organisatorische Fragen zu klären. Ich erinnere mich nicht mehr, warum, aber wir wählten das Thema "Cybersecurity Training" und landeten damit im Track "Wissenschaft und Bildung 2". Zum ersten Mal war ich in einem Team aus vier starken Programmierern und spürte, wie einfach es ist, in so einer Konstellation zu gewinnen. Wir kamen unvorbereitet und stritten bis zum Mittag darüber, ob wir eine mobile App oder eine Website machen sollten. In jeder anderen Situation hätte ich gedacht, dass das ein Misserfolg ist. Das Wichtigste für uns war zu verstehen, wie wir uns von den Mitbewerbern abheben können, denn es gab viele Teams, die Sicherheitsprüfungen, Spiele zur Cybersecurity und ähnliche Dinge entwickelten. Angesichts dessen und während wir nach Schulungsprogrammen und Apps suchten, entschieden wir, dass unser Hauptmerkmal Trainings nach dem Prinzip eines Feueralarms sein würden. Wir suchten uns eine Reihe von Features aus, die uns für die Umsetzung interessant erschienen (Registrierung mit Überprüfung von E-Mail und Passwort anhand von Hacker-Datenbanken, Versand von Phishing-E-Mails (in Form von E-Mails von bekannten Banken), Trainings zur sozialen Ingenieurkunst im Chat). Nachdem wir entschieden hatten, was wir tun, und verstanden hatten, wie wir uns abheben können, schrieben wir relativ schnell eine voll funktionsfähige Webanwendung, wobei ich in einer für mich untypischen Rolle als Backend-Entwickler auftrat. So gewannen wir souverän unseren Track und wurden zusammen mit drei weiteren Teams ins Finale nach Kasan ausgewählt. Später erfuhr ich in Kasan, dass die Auswahl für das Finale vorgetäuscht war; ich traf dort viele bekannte Gesichter aus Teams, die diese Auswahl nicht bestanden hatten. Sogar Journalisten vom ersten Kanal führten Interviews mit uns. Leider wurde in dem Bericht nur für eine Sekunde unsere Anwendung gezeigt.

Der digitale Durchbruch – wie es dazu kam
Das Snowed-Team, mit dem ich die regionale Etappe gewonnen habe

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

Doch dann begannen die Schwierigkeiten. Alle Programmierer des Snowed-Teams teilten innerhalb eines Monats nacheinander mit, dass sie nicht zum Finale nach Kasan fahren können. Ich begann darüber nachzudenken, ein neues Team zu suchen. Zunächst warf ich einen Aufruf im allgemeinen Chat des Russian Hack Teams auf, und obwohl ich dort viele Rückmeldungen und Einladungen erhielt, sprach mich keines davon wirklich an. Es gab unausgewogene Teams, wie beispielsweise ein Produktmanager, einen mobilen Entwickler und einen Frontend-Entwickler, das erinnerte an den Schwan, die Krebse und den Hecht aus der Fabel. Es gab auch Teams, die nicht in meiner Technologiebeschreibung passten (zum Beispiel mit der Entwicklung einer mobilen Anwendung auf Flutter). Schließlich wurde im Chat, den ich für unorganisiert hielt (dieser auf Vkontakte, wo die Teams für die regionale Stufe ausgewählt wurden), eine Anzeige über die Suche nach einem Frontend-Entwickler gepostet, und ich schrieb rein zufällig. Die Jungs erwiesen sich als Doktoranden von Skoltech und schlugen sofort vor, sich zu treffen und kennenzulernen. Das gefiel mir, Teams, die es vorziehen, sich gleich beim Hackathon kennenzulernen, verunsichern mich normalerweise durch ihre mangelnde Motivation. Wir trafen uns bei „Grably“ in der Pjatnitskaja Straße. Die Jungs schienen mir klug, motiviert, selbstbewusst und siegessicher zu sein, und ich traf die Entscheidung direkt dort. Wir wussten noch nicht, welche Tracks und Aufgaben im Finale anstehen würden, vermuteten jedoch, dass wir etwas im Bereich Machine Learning wählen würden. Meine Aufgabe wäre es, dafür eine Admin-Oberfläche zu erstellen, daher hatte ich im Voraus ein Template auf Basis von antd-admin vorbereitet.
Ich bin kostenlos nach Kasan gefahren, dank der Organisatoren. Es muss gesagt werden, dass in Chats und Blogs bereits viele Beschwerden bezüglich des Ticketkaufs und der allgemeinen Organisation des Finals geäußert wurden; ich will das hier nicht alles wiederholen.

Nach der Ankunft in Kazan Expo, der Registrierung (bei der ich ein paar kleinere Probleme mit dem Erhalt des Badges hatte) und einem Frühstück, machten wir uns auf die Suche nach einem Track. Zum feierlichen Eröffnung, bei der offizielle Vertreter auftraten, schauten wir nur kurz vorbei, etwa 10 Minuten. Eigentlich hatten wir bereits bestimmte Tracks im Auge, aber wir waren an den Details interessiert. Im Track Nr. 18 (Rostelecom) stellte sich heraus, dass ein mobiles App entwickelt werden musste, obwohl dies in der Beschreibung nicht erwähnt wurde. Unsere Hauptentscheidung fiel zwischen Track Nr. 8, der sich mit der Defektoskopie von Pipelines befasste, PAO „Gazprom Neft“, und Track Nr. 13, den Perinatalzentren, Rechnungshof der RF. In beiden Fällen war Data Science erforderlich, und in beiden Fällen hätte man das Web integrieren können. Im Track Nr. 13 störte uns, dass die Data Science-Aufgabe recht schwach war – es ging darum, Statistiken zu parsen, und es war unklar, ob ein Admin-Panel benötigt wurde. Auch der Wert der Aufgabe schien fraglich. Letztendlich entschieden wir, dass unser Team besser auf Track 8 ausgerichtet war, zumal die Kollegen bereits Erfahrung in der Lösung ähnlicher Aufgaben hatten. Wir begannen damit, ein Szenario zu entwerfen, wie unser Endbenutzer die App nutzen würde. Es stellte sich heraus, dass wir zwei Arten von Benutzern haben würden: Techniker, die an technischen Informationen interessiert sind, und Manager, die Finanzkennzahlen benötigten. Als das Szenario klar wurde, war es offensichtlich, was im Frontend zu tun war, was der Designer erstellen sollte und welche Methoden im Backend benötigt wurden, und es wurde möglich, die Aufgaben zu verteilen. Die Verantwortlichkeiten im Team wurden wie folgt verteilt: Zwei Personen arbeiteten an ML mit den von den Technikexperten gelieferten Daten, eine Person programmierte das Backend in Python, ich schrieb das Frontend mit React und antd, und der Designer entwarf die Benutzeroberflächen. Wir haben sogar so gesessen, dass es uns erleichtert wurde zu kommunizieren, während wir unsere Aufgaben lösten.

Die ersten Tage vergingen beinahe unbemerkt. Im Austausch mit den Technikexperten stellte sich heraus, dass diese Aufgabe bereits von "Gazprom Neft" gelöst wurde; sie waren lediglich neugierig, ob es besser gelöst werden könnte. Ich kann nicht sagen, dass dies die Motivation gedämpft hat, aber ein kleiner Nachgeschmack blieb. Überrascht hat mich, dass die Moderatoren der Sektionen in der Nacht aktive Teams für statistische Zwecke markierten – das ist auf Hackathons normalerweise nicht üblich. Am Morgen hatten wir einen Prototyp des Frontends fertig, erste Ansätze des Backends und die erste Machine Learning-Lösung. Insgesamt hatten wir bereits etwas, das wir den Experten zeigen konnten. Am Samstagnachmittag entwarf der Designer dann deutlich mehr Benutzeroberflächen, als ich programmieren konnte, und wechselte zur Erstellung der Präsentation. Der Samstag war für die Rekordregistrierung vorgesehen, und am Morgen wurden alle, die im Saal arbeiteten, in den Flur geschickt. Der Zugang zum Saal erfolgte dann nur noch mit Badges, und man durfte den Saal während des Tages nicht länger als eine Stunde verlassen. Ich würde nicht sagen, dass uns das wirklich große Unannehmlichkeiten bereitet hat; größtenteils saßen wir sowieso und arbeiteten. Die Verpflegung war tatsächlich sehr mager: Zum Mittagessen erhielten wir eine Tasse Brühe, ein Pastetchen und einen Apfel, aber auch das hat uns nicht allzu sehr gestört, da wir auf etwas anderes fokussiert waren.

Gelegentlich gab es Red Bull, jeweils zwei Dosen pro Person, was sehr passend war. Ein bereits bewährtes Rezept aus Hackathons, Energiegetränk + Kaffee, ermöglichte es, die ganze Nacht und den folgenden Tag wach zu bleiben und frisch zu bleiben. Am zweiten Tag haben wir im Grunde genommen nur noch neue Features in die Anwendung integriert, finanzielle Kennzahlen berechnet und Grafiken zur Fehlerstatistik in den Hauptleitungen erstellt. Ein richtiges Code-Review gab es in unserem Track nicht; die Experten bewerteten die Lösung des Problems im Stil von kaggle.com, nach der Genauigkeit der Vorhersage, während das Frontend visuell beurteilt wurde. Unsere ML-Lösung stellte sich als die genaueste heraus, möglicherweise war das der Grund, warum wir uns an die Spitze setzen konnten. In der Nacht von Samstag auf Sonntag arbeiteten wir bis 2 Uhr morgens und fuhren dann zur Wohnung, die wir als Basis nutzten, um etwas Schlaf zu bekommen. Wir schliefen etwa 5 Stunden und waren am Sonntag um 9 Uhr bereits in Kazan Expo. Ich war dabei, etwas hastig zu basteln, aber die meiste Zeit nahm die Vorbereitung auf die Vorverteidigung in Anspruch. Die Vorverteidigungen fanden in zwei Runden vor zwei Teams von Experten statt; wir wurden gebeten, als letzte aufzutreten, da beide Teams von Experten uns hören wollten. Wir betrachteten dies als ein gutes Zeichen. Die Anwendung wurde von meinem Laptop gezeigt, von einem laufenden Entwicklungsserver; wir hatten es nicht geschafft, die Anwendung richtig zu deployen, aber das taten alle.

Insgesamt lief alles gut. Uns wurden Bereiche aufgezeigt, in denen wir unsere Anwendung verbessern konnten, und während der Zeit bis zur Verteidigung haben wir sogar versucht, einige dieser Anmerkungen umzusetzen. Die Verteidigung verlief ebenfalls überraschend reibungslos. Nach der Vorverteidigung wussten wir, dass wir in der Punktewertung vorne lagen. Wir führten in der Lösungsgenauigkeit, hatten ein gutes Frontend, ein ansprechendes Design und insgesamt waren die Vorzeichen positiv. Ein weiteres gutes Zeichen war, dass die Moderatorin unserer Sektion vor dem Eingang zum Konzertsaal ein Selfie mit uns gemacht hat. Da hatte ich schon den Verdacht, dass sie vielleicht etwas weiß))). Allerdings wussten wir unsere Punkte nach der Verteidigung nicht, weshalb die Zeit bis zur Bekanntgabe unserer Teamnummer von der Bühne aus ein wenig angespannt war. Auf der Bühne wurde uns ein Karton mit der Aufschrift 500.000 Rubel überreicht und jedem ein Beutel mit einer Tasse und einem Akku für das Handy. Genießen und angemessen feiern konnten wir den Sieg nicht, wir haben schnell zu Abend gegessen und sind mit einem Taxi zum Zug gefahren.

Der digitale Durchbruch – wie es dazu kam
Das Team WAICO gewinnt im Finale

Nach unserer Rückkehr nach Moskau führten Journalisten von NTV ein Interview mit uns. Eine ganze Stunde wurde im zweiten Stock des Cafés „Kvartal 44“ auf der Poljanka gefilmt, aber in den Nachrichten wurden nur etwa zehn Sekunden gezeigt. Immerhin ein deutlicher Fortschritt im Vergleich zur regionalen Etappe.

Zusammenfassend lässt sich sagen, dass die Eindrücke vom Digitalen Durchbruch gemischt sind. Die Ausgaben für die Veranstaltung waren enorm, und ich habe noch nie zuvor Hackathons in solch einem Umfang gesehen. Ob das gerechtfertigt ist und sich wirklich auszahlt, kann ich jedoch nicht bestätigen. Ein großer Teil der Teilnehmer, die nach Kazan reisten, waren einfach Partygänger, die keine praktischen Fähigkeiten besitzen und nur zur Rekordmarke eingeladen wurden. Ich kann nicht sagen, dass die Konkurrenz im Finale höher war als in den regionalen Runden. Zudem weckt der Wert und Nutzen der Aufgaben in einigen Tracks Zweifel; einige Aufgaben wurden schon lange auf industrieller Ebene gelöst. Später stellte sich heraus, dass einige Organisationen, die die Tracks leiteten, nicht wirklich an deren Lösung interessiert waren. Diese Geschichte ist noch nicht zu Ende; die Gewinnerteams aus jedem Track wurden für den Pre-Accelerator ausgewählt, und es wird erwartet, dass daraus DURCHBRUCH-Startups hervorgehen. Aber ich bin noch nicht bereit, darüber zu berichten; wir werden sehen, was daraus wird.

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster