Linus, Lars, Nico und Tom und Ihre Zusammenarbeit
Bei der Code Competition „Machine Learning by ZF Friedrichshafen“ schafften es Linus (dualer Student der Wirtschaftsinformatik), Lars (auch dualer Student der Wirtschaftsinformatik), Nico (Ausbildung zum Fachinformatiker für Anwendungsentwicklung) und Tom (Student der Informatik) auf einen tollen dritten Platz! Hier erzählt Tom, wie die Zusammenarbeit ablief.
Hallo Tom (und Kollegen) herzlichen Glückwunsch zu Eurem dritten Platz bei der Code Competition „Machine Learning by ZF Friedrichshafen“! Erzähl den anderen IT-Talenten doch kurz etwas über Dich/Euch.
Tom:
Hallo IT-Talents und Leser_innen. Erstmal vielen Dank an euch und ZF Friedrichshafen für die großartige Code Competition. Wir sind ein Team aus vier Personen: Linus (dualer Student der Wirtschaftsinformatik), Lars (auch dualer Student der Wirtschaftsinformatik), Nico (Ausbildung zum Fachinformatiker für Anwendungsentwicklung) und ich, Tom (Student der Informatik).
Was hat Euch motiviert, an der Competition teilzunehmen und wie seid Ihr auf den Wettbewerb aufmerksam geworden?
Tom:
Wir kannten uns schon privat und hatten Lust und Zeit mal ein Projekt zusammen zu machen. Da ich schon öfters bei Code Competitions teilgenommen habe, war die Entscheidung recht schnell gefällt und wir mussten bloß noch einen passenden Termin finden wo wir endlich zusammen anfangen konnten. Wir konnten uns dann auf einen gemeinsamen Codeabend ca. 7 Tage vor dem Abgabetermin einigen :P
Wie seid Ihr an die Lösung der Aufgabenstellung herangegangen?
Tom:
Wir haben schon lange vor unserem Codeabend Überlegungen angestellt, wie man die Aufgabenstellung angehen könnte bzw. erstmal ein grundlegendes Verständnis für die Materie aufgebaut. Dazu haben wir uns erstmal im Internet / bei Bekannten schlau gemacht, was es mit diesen Gussformen eigentlich auf sich hat und worin das Optimierungsproblem besteht.
Wieso habt Ihr Euch für Euren Technologie-Stack entschieden?
Tom:
Da Nico und ich selbst schon viel mit .Net gemacht haben und Blazor als Web Framework gerade sehr aktuell ist, war diese Entscheidung schnell getroffen. Für den Eigentlichen Optimierungsalgorithmus haben wir Google OR-Tools verwendet, da Nico dort schon etwas Erfahrung hatte und sich solch ein Framework sehr anbietet um Probleme dieser Kategorie anzugehen. Hätten wir das ganze ohne weitere Hilfsmittel in z.B. c# .Net so implementiert, wären wir wahrscheinlich nicht so schnell vorangekommen.
Welche Probleme sind bei der Entwicklung der Software aufgekommen? Wie lange hat die Entwicklung gedauert?
Tom:
Probleme gab es so einige. Ursprünglich wollten wir nur .Net verwenden, um sowohl die Web-App als auch den Optimierungsalgorithmus zu realisieren. Leider war zu dem Zeitpunkt die Bibliothek von Google OR-Tools für .Net nicht verwendbar (hatte einen internen Fehler). Daher waren wir gezwungen eine andere Sprache zu verwenden. Wir haben uns auf Python geeinigt, da die Sprache relativ einfach ist und viele Möglichkeiten zur Verbindung mit der .Net Web-App bietet. So konnten auch Lars und Linus, die zuvor nicht so viel Erfahrung mit .Net hatten, trotzdem sehr gut an dem Optimierungsalgorithmus entwickeln. Wie schon erwähnt haben wir uns getroffen und einen Codeabend veranstaltet (natürlich mit viel Cola und Pizza :D). Anschließend haben wir noch verteilt weiter an der Lösung gearbeitet. Insgesamt haben wir dann gut die letzten sieben Tage im Dezember 2019 an der Lösung gearbeitet.
Und was habt Ihr durch die Entwicklung gelernt?
Tom:
Definitiv constraint programming. Mit Google OR-Tools bzw. constraint programming hatten die meisten von uns noch keine Erfahrung und konnten so einen guten Einblick bekommen. Wir mussten auch feststellen, dass man doch nicht so einfach auf Windows entwickelte Software, trotz Docker, auf Linux laufen lassen kann (Hier gab es dann auch bei der Auswertung Probleme).
Was würdet Ihr Euch thematisch gerne einmal als Code Competition wünschen?
Tom:
NLP würde uns interessieren. Es wäre super, wenn man dazu ein “einfachen” Einstig zu diesem “krassen” Thema finden könnte. Ansonsten waren bisherige Competitions zu Spielen (z.B. Game of Life) waren sehr lustig. Da wäre eine weitere Competition auch cool.
Zu guter Letzt: Wie findet Ihr die IT-Talents.de Plattform, welche Verbesserungsmöglichkeiten seht Ihr?
Tom:
Die Plattform ist sehr übersichtlich und auch strukturiert. Außerdem findet man viel Info-Materiell zu aktuellen Themen, was mich persönlich sehr freut. Verbesserungspotential sehe ich lediglich bei der Rückmeldung auf Anfragen bzw. Fragen. Hierfür könnte man neben dem Kontakt auch ein Diskussionsforum je Competition ergänzen. Somit könnten Fragen gleichermaßen für alle Teams beantwortet werden (FAQ?) und auch untereinander könnten Probleme so schneller gelöst werden.