Advent of Code 2022

Wie jedes Jahr im Dezember haben wir am Advent of Code teilgenommen. Ein Adventskalender mit kleinen und großen Programmierherausforderungen. Ins Leben gerufen hat das Projekt Eric Wastl. Am 1.12.2015 kam der erste Kalender heraus. Hinter jedem Türchen versteckt sich eine Aufgabe, die es zu lösen gilt.

Der Weihnachtsmann hat im Advent viele Aufgaben zu erledigen. Wir helfen ihm und seinen Elfen dabei alles rechtzeitig bis Weihnachten fertig zu bekommen. Deshalb bekommen wir jeden Tag zwei Teilaufgaben, die aufeinander aufbauen. Zusätzlich dazu erhalten wir ein kleines Beispiel, das wir im Kopf durchdenken können und die passende Lösung zum Prüfen dazu.

Erstes Türchen

Am ersten Tag haben wir eine Liste bekommen, welcher Elf wie viele Lebensmittel mit wie vielen Kalorien bei sich trägt. Unsere Aufgabe war es herauszufinden, welcher Elf am meisten Kalorien in seinem Beutel hat und wie viele Kalorien das sind. Bei fünf Elfen kann man das sehr einfach im Kopf ausrechnen. Die eigentliche Aufgabe bestand dann aber darin, dies für über 200 Elfen zu bestimmen.

Alle Teilnehmer*innen haben sich also eine Programmiersprache herausgesucht, um damit dann ein Programm zu entwickeln, das diese Aufgabe in kürzester Zeit lösen kann. Dann kam der zweite Aufgabenteil, der eine Abwandlung des ersten Teils darstellte. Wenn man Glück hatte – oder schon eine schöne Lösung implementiert hatte – konnte man den Teil häufig schneller lösen. In diesem Fall mussten wir herausfinden, wie viele Kalorien die drei Elfen mit den meisten Kalorien im Beutel bei sich tragen.

Natürlich waren nicht alle Aufgaben so leicht. Jeden Tag wurden sie ein bisschen schwerer. Wenn man eine naive Implementierung genutzt hatte, kam es irgendwann vor, dass man in Laufzeitprobleme gerutscht ist oder der Speicher nicht mehr ausgereicht hat. Man musste sich also etwas Besseres überlegen.

Das Miteinander

Das Schöne ist, dass wir uns jeden Morgen in einer Videokonferenz getroffen haben. Dort konnten wir uns austauschen, wie verschiedene Leute die Probleme gelöst haben. Es wurden zwar diverse Programmiersprachen genutzt, aber häufig hat man in allen Sprachen dieselben algorithmischen Probleme. Aber klar, manche Sprachen bieten einem für bestimmte Probleme eine sehr elegante Funktion, wohingegen man das in anderen Sprachen selber implementieren muss.

Am Ende des Tages haben 40 Kolleg*innen aktiv am Advent of Code teilgenommen. Viele davon haben ihre Ergebnisse auf unserer GitHub-Seite verlinkt. Acht davon haben jeden Tag alle Teilaufgaben erledigt und um den ersten Platz in der Rangliste gerungen. Denn: Je früher man die zwei Lösungen hat, desto mehr Punkte erhält man. Alle hatten das ein oder andere Mal Schweiß auf der Stirn, aber (hoffentlich) immer Spaß dabei. Ich freue mich schon aufs nächste Jahr!

Mehr zum Thema Software Engineering finden Sie unter Software Engineering | Method Park by UL.

Florian Policnik
Letzte Artikel von Florian Policnik (Alle anzeigen)