
Der abschließende Teil der Trilogie über Hackathons. In habe ich über die Motivation zur Teilnahme an solchen Veranstaltungen gesprochen. war den Fehlern der Organisatoren und ihren Konsequenzen gewidmet. Der abschließende Teil wird die Fragen beantworten, die in den ersten beiden Teilen nicht Platz fanden.
Erzähl mir, wie du angefangen hast, an Hackathons teilzunehmen.
Ich habe im Master an der Lappeenranta-Universität studiert und nebenbei an Wettbewerben im Datenanalyse teilgenommen. Mein typischer Tag sah folgendermaßen aus: Aufstehen um 8, einige Vorlesungen an der Universität, dann Wettbewerbe und Kurse bis Mitternacht (während das Submission-Fenster offen war, schaute ich mir Vorlesungen an oder las Artikel). Dieser straffe Zeitplan hat sich ausgezahlt, und ich habe den Datenanalyse-Wettbewerb MERC-2017 gewonnen (worüber sogar ein ). Der Sieg hat mein Selbstbewusstsein gestärkt, und als ich zufällig Informationen über den Hackathon SkinHack 2 in Moskau fand, beschloss ich, meine Eltern zu besuchen und gleichzeitig herauszufinden, was ein Hackathon eigentlich ist.
Der Hackathon war durchaus unterhaltsam. Es gab zwei Tracks zur Datenanalyse mit klaren Metriken und einem Datensatz, bei dem die Preise 100.000 Rubel betrugen. Der dritte Track war zur Anwendungsentwicklung mit einem Preis von 50.000 Rubel, und daran nahm niemand teil. Eines Tages sagte der Organisator, dass ein Fenster mit einem Knopf ohne Funktionalität 50.000 Rubel gewinnen könnte, weil der Preis ausgezahlt werden müsse. Ich habe nicht versucht, Anwendungsprogrammierung zu lernen (ich nehme nicht an Wettbewerben teil, wo ich leicht 'überrollt' werden kann), aber für mich war das eine klare Botschaft, dass die Felder in Hackathons nicht überfüllt sind.
Damals habe ich beide Tracks zur Datenanalyse alleine bearbeitet. Ich fand einen Leak in den Daten, der es mir ermöglichte, einen perfekten Score zu erzielen, aber die Spalte mit dem Leak war in den Testdaten, die ich zwei Stunden vor Ende der Veranstaltung erhielt, nicht vorhanden (übrigens dachte ich damals, dass das Vorhandensein einer ‚target‘-Spalte im Training nicht als Leak zählt). Gleichzeitig öffnete sich die Rangliste, mein Submission ohne Leak belegte den dritten Platz von fünf, der Abstand zum ersten war groß und ich entschied mich, keine Zeit zu verschwenden und abzureisen.
Nachdem ich in Ruhe analysiert habe, was passiert ist, habe ich eine Menge Fehler gefunden (eine meiner Gewohnheiten ist es, das Geschehen gedanklich mit einem Notizblock durchzugehen, um die Fehler, deren Ursachen und mögliche Änderungen zu analysieren – ein schönes Erbe meiner semi-professionellen Pokererfahrungen). Aber eines war klar – Hackathons bieten viel Wert, den ich unbedingt nutzen muss. Nach diesem Ereignis begann ich, Veranstaltungen und Gruppen zu beobachten, und der nächste Hackathon ließ nicht lange auf sich warten. Dann folgte noch einer, und noch einer…
Warum beschäftigst du dich mit Hackathons und nicht mit Kaggle?
Im Moment gefällt mir Kaggle nicht. Ab einem bestimmten Fähigkeitsniveau, ohne spezifische Gründe für die Teilnahme, wird Kaggle weniger nützlich als andere Aktivitäten. Ich habe früher viel mitgemacht, anscheinend ist es mir gelungen, irgendwie "herauszukommen".
Warum Hackathons und nicht an deinem eigenen Projekt arbeiten?
Die Idee, etwas Großartiges mit eigenen Händen in einem gemächlichen Tempo zu schaffen, spricht mich an. Die Jungs von ODS haben für alle organisiert, die am Wochenende an ihrem Projekt im Kreis Gleichgesinnter arbeiten möchten. Ich denke, dass ich mich bald ihnen anschließen werde.
Wie findest du die Veranstaltungen?
Primäre Quelle — hackathon.com (weltweit) und der Chat in Telegram (Russland). Zusätzlich werden Veranstaltungsankündigungen in sozialen Netzwerken und auf LinkedIn beworben. Wenn du nichts findest, kannst du hier nachsehen: mlh.io, devpost.com, hackevents.co, hackalist.org, HackathonsNear.me, hackathon.io.
Bereitest du einen Lösungsplan vor oder geschieht alles spontan? Überlegst du zum Beispiel eine Woche vor dem Hackathon: „Hier wird ein solcher und solcher Spezialist gebraucht, ich muss suchen“?
Wenn der Hackathon produktbezogen ist — ja, ich bereite mich vor. Einige Wochen vorher überlege ich, was ich machen will, plane, wer nützlich sein könnte, und stelle ein Team aus Freunden oder Teilnehmern früherer Hackathons zusammen.
Kann man einen Hackathon wirklich alleine meistern? Was tun, wenn man kein Team hat?
Data Science Hackathons sind tatsächlich möglich (ich bin das lebende Beispiel dafür), bei Produkt-Hackathons habe ich allerdings keine Erfahrung, denke aber, dass es ähnlich ist. Leider setzen die Organisatoren manchmal eine Mindestanzahl von Teilnehmern pro Team voraus. Ich vermute, dass das daran liegt, dass nicht alle Einzelkämpfer bis zum Ende durchhalten (d.h. sie geben einfach bei den ersten Schwierigkeiten auf). In einem Team bleibt man dennoch motivierter. Zudem wird nach der Veranstaltung erwartet, dass Sie weiter an dem Projekt arbeiten. Mit einem Team ist es einfacher, das Projekt zu vervollständigen.
Generell empfehle ich, immer im Team teilzunehmen. Wenn Sie kein eigenes Team haben, helfen die Organisatoren immer dabei, eines zu finden oder zu bilden.
Wie schaffen Sie es, während eines Hackathons mit der Müdigkeit umzugehen?
Bei einem Hackathon stehen dir 2 Tage zur Verfügung, das sind 48 Stunden (nehmen wir zur Vereinfachung 48 Stunden). Nach Abzug der Schlafzeit (16-20 Stunden) bleiben maximal 30 Stunden übrig. Davon kannst du tatsächlich etwa 8 Stunden produktiv arbeiten (im Durchschnitt). Wenn du deine Arbeit richtig organisierst (Schlaf, Nahrung, frische Luft, kurze Bewegungseinheiten, bewusste Pausen, effektive Kommunikation im Team und aktives Wechseln der Tätigkeiten), kannst du die Deep Work-Zeiten auf 12-14 Stunden steigern. Nach solch einer Arbeit wirst du dich erschöpft, aber angenehm müde fühlen. Programmieren ohne Schlaf und Pausen, während du dich mit Energydrinks am Leben hältst, führt zum Misserfolg.
Hast du deine eigenen vorbereiteten Pipelines für Hackathons? Wie sind sie entstanden, wie sind sie strukturiert (liegen .py-Dateien in Ordnern, jede für ihre Aufgabe usw.) und wie kannst du selbst solche erstellen?
Ich nutze nicht vollständig fertige Lösungen aus früheren Hackathons für neue, aber ich habe meinen eigenen Zoo an Modellen und Pipelines aus vergangenen Wettbewerben. Ich muss nicht standardisierte Teile von Grund auf neu schreiben (zum Beispiel die richtige Target-Encoding oder ein einfaches Netzwerk zur Erkennung von Intentionen aus Texten), was mir viel Zeit spart.
Aktuell sieht es so aus: Für jeden Wettbewerb oder Hackathon gibt es ein eigenes Repository auf GitHub, in dem Notebooks, Skripte und eine kleine Dokumentation über die Abläufe gespeichert sind. Außerdem gibt es ein separates Repository für diverse „Features“ (wie das richtige Target-Encoding mit Kreuzvalidierung). Ich denke nicht, dass das die eleganteste Lösung ist, aber derzeit bin ich damit zufrieden.
Ich würde damit beginnen, allen meinen Code in Ordnern zu speichern und eine kurze Dokumentation zu schreiben (warum, was, wie ich es gemacht habe und das Ergebnis).
Ist es realistisch, in so kurzer Zeit ein MVP von Grund auf vorzubereiten, oder kommen alle Teilnehmer mit fertigen Lösungen?
Ich kann nur über Projekte im Bereich Data Science sprechen – ja, es ist möglich. Für mich ist ein MVP die Kombination aus zwei Faktoren:
- Eine tragfähige Idee, die als Produkt präsentiert wird (d.h. ein Business-Canvas ist ausgefüllt). Es muss immer ein klarer Verständnis darüber bestehen, warum und für wen wir das Produkt entwickeln. Manchmal gewinnen Projekte mit einem gut begründeten Konzept, aber ohne Prototyp Preise, was nicht überraschend ist. Leider können viele Teilnehmer sich nicht von der Bitterkeit der Niederlage ablenken und schieben ihre Misserfolge auf die Kurzsichtigkeit der Organisatoren, während sie weiterhin Modelle für ein unklar definiertes Publikum bei den nächsten Hackathons entwickeln.
- Ein gewisses Indiz dafür, dass Sie dieses Produkt realisieren können (App, Code, Beschreibung der Pipelines).
Es kommt vor, dass ein Team mit einer fertigen Lösung zu einem Hackathon kommt und versucht, diese an die Anforderungen der Organisatoren anzupassen. Solche Teams fallen beim technischen Screening durch oder es wird nur der Teil gewertet, den sie vor Ort entwickelt haben. Ich habe solche Teams nicht unter den Gewinnern gesehen, aber ich denke, es ist für sie trotzdem vorteilhaft, wegen des zukünftigen Werts ().
Gibt es Beispiele dafür, wie Projekte, die auf Hackathons entwickelt wurden, bis zur Produktion/start-up gebracht wurden?
Ja. Ich hatte drei Fälle, in denen es bis zur Produktionsphase gelangte. Einmal habe ich es selbst geschafft, zweimal - durch die Hände anderer basierend auf meinen Ideen und dem Code, den ich beim Hackathon geschrieben habe. Ich kenne auch ein paar Teams, die weiterhin mit der Firma als Berater zusammenarbeiten. Über die endgültigen Ergebnisse weiß ich nichts, aber wahrscheinlich wurde etwas bis zum Ende umgesetzt. Ich selbst habe keine Startups organisiert und weiß auch nicht, ob jemand das getan hat, obwohl ich sicher bin, dass es Beispiele gibt.
Nach der Teilnahme an vielen Hackathons, welche Ratschläge würdest du dir selbst geben, wenn du in die Vergangenheit reisen könntest?
- Taktik ist wichtiger als Manöver. Stelle jede Entscheidung wie ein fertiges Produkt dar. Idee, Jupyter Notebook, Algorithmus sind nichts wert, wenn nicht klar ist, wer dafür bezahlen wird.
- Bevor du irgendetwas entwirfst, beantworte die Fragen nicht mit „was?“, sondern mit „warum?“ und „wie?“. Beispiel: Wenn du eine ML-Lösung entwirfst, denke zuerst an den idealen Algorithmus: Was erhält er als Input, wie werden seine Vorhersagen später verwendet?
- Arbeite im Team.
Was gibt es normalerweise bei Hackathons zu essen?
Bei Hackathons ist das Essen normalerweise nicht besonders gut: Pizza, Energydrinks und Limonade. Fast immer ist das Essen in Form eines Buffets (oder einer Ausgabe) organisiert, vor dem sich eine riesige Schlange bildet. Nachts gibt es normalerweise nichts zu essen, obwohl es einmal bei einem Wettbewerb in Paris Chips, Donuts und Cola gab. Ich kann mir den Denkprozess der Organisatoren vorstellen: „Was essen Programmierer? Ach ja! Chips und Donuts – genau das ist es. Lassen wir ihnen diesen Kram.“ Am nächsten Tag fragte ich die Organisatoren: „Hey, könnten wir nicht etwas anderes für die Nacht organisieren? Vielleicht Haferbrei oder so?“ Danach schauten sie mich an, als wäre ich verrückt. Die berühmte französische Gastfreundschaft.
Bei guten Hackathons wird das Essen in Boxen bestellt, es gibt eine Auswahl an normalem, vegetarischem und koscherem Essen. Zusätzlich wird ein Kühlschrank mit Joghurt und Müsli aufgestellt – für diejenigen, die einen Snack möchten. Tee, Kaffee und Wasser sind Standard. Besonders in Erinnerung geblieben ist mir der Hackathon Hack Moscow 2 – dort wurden wir herzlich mit Borschtsch und Schnitzeln mit Kartoffelpüree in der Kantine des 1C-Büros bewirtet.
Die Verhältnismäßigkeit von Hackathons hängt, sozusagen, von derProfession der Organisatoren ab (zum Beispiel werden die besten Hackathons von Beratern organisiert)?
Die erfolgreichsten Hackathons stammen von Organisatoren, die entweder zuvor Hackathons organisiert haben oder bereits daran teilgenommen haben. Dies ist wohl der einzige Faktor, der die Qualität der Veranstaltung beeinflusst.
Wie erkennt man, dass man nicht mehr der Neue ist und es Zeit für einen Hackathon ist?
Das beste Zeit, um an einem Hackathon teilzunehmen, war vor einem Jahr. Das zweitbeste Zeit ist jetzt. Also, trau dich, mache Fehler, lerne — das ist normal. Sogar ein neuronales Netzwerk — die größte Erfindung der Menschheit nach dem Rad und dem Gradient Boosting über Bäume — kann in der ersten Lernperiode keine Katze von einem Hund unterscheiden.
Welche "roten Flaggen" deuten sofort darauf hin, dass die Veranstaltung nicht sehr gut wird und man seine Zeit besser nicht verschwenden sollte?
- Eine klare Beschreibung dessen, was zu tun ist (relevant für Produkt-Hackathons). Wenn bei der Anmeldung klare Vorgaben gemacht werden, ist es wahrscheinlich besser, zu Hause zu bleiben. Meiner Erfahrung nach gab es keinen einzigen guten Hackathon mit einer klaren Aufgabenstellung. Zum Vergleich: Gut – erstellen Sie uns etwas im Zusammenhang mit der Analyse von Audioaufzeichnungen. Schlecht – entwickeln Sie eine Anwendung, die in der Lage ist, Gespräche in zwei separate Audio-Spuren für jede Person zu trennen.
- Kleine Preisgelder. Wenn Sie aufgefordert werden, einen 'Tinder für Online-Shops mit KI' zu erstellen und der Preis für den ersten Platz 500 Euro beträgt mit einer Mindestteamgröße von 5 Personen – dann lohnt es sich wahrscheinlich nicht, Zeit zu investieren (ja, das ist ein echter Hackathon, der in München stattfand).
- Mangel an Daten (relevant für Data-Science-Hackathons). Die Organisatoren stellen normalerweise grundlegende Informationen über die Veranstaltung und manchmal ein Beispiel-Dataset zur Verfügung. Wenn dies nicht bereitgestellt wird – fragen Sie nach, es kostet nichts. Wenn nach 2-3 Tagen unklar bleibt, welche Daten bereitgestellt werden und ob sie überhaupt verfügbar sind – ist das ein rotes Flaggen.
- Neue Organisatoren. Nehmen Sie sich die Zeit und recherchieren Sie Informationen über die Hackathon-Organisatoren. Wenn sie eine solche Veranstaltung zum ersten Mal durchführen, besteht eine große Wahrscheinlichkeit, dass etwas schiefgeht. Auf der anderen Seite ist es ein gutes Zeichen, wenn der Organisator und die Jury bereits Erfahrungen mit Hackathons haben oder in der Vergangenheit aktiv daran teilgenommen haben.
Bei einem Hackathon wurde mir gesagt: 'Du hattest die beste Lösung beim Score, aber tut mir leid, wir bewerten die Teamarbeit, und du hast alleine gearbeitet. Wenn du ein Teammitglied oder eine Studentin mitgenommen hättest...?'. Hast du schon einmal solche Ungerechtigkeiten erlebt? Wie bist du damit umgegangen?
Ja, das habe ich schon mehrfach erlebt. Ich gehe stoisch mit allem um, was passiert: Ich habe mein Bestes gegeben, und wenn es nicht geklappt hat, dann ist es halt so.
Warum machst du das alles?
Das mache ich einfach aus Langeweile.
Quelle: habr.com
