20 Punkte von GN⁺ 2025-12-01 | 2 Kommentare | Auf WhatsApp teilen
  • Advent of Code ist ein Adventskalender mit Programmierpuzzles für Programmiererinnen und Programmierer mit unterschiedlichstem Niveau und kann in jeder Sprache gelöst werden
  • Teilnehmende können ihn für Bewerbungsgespräche, Unternehmensschulungen, Universitätsaufgaben, Übungsaufgaben und Geschwindigkeitswettbewerbe nutzen
  • Auch ohne Informatikstudium kann man teilnehmen; die Aufgaben sind so gestaltet, dass sie selbst auf 10 Jahre alten Computern in unter 15 Sekunden laufen
  • Die Website unterstützt OAuth-Authentifizierung, High-Contrast-Modus, private Leaderboards und die Auswahl von Codeblöcken
  • Das weltweite Leaderboard wurde wegen Stress und Betrugsproblemen abgeschafft; stattdessen wird eine spaßige, teilnehmerzentrierte Lösungserfahrung betont

Überblick über Advent of Code

  • Advent of Code ist ein jährliches Programmierpuzzle-Event von Eric Wastl, das ab dem 1. Dezember jedes Jahres Puzzles im Format eines Online-Adventskalenders bereitstellt
    • Teilnehmende lösen jeden Tag ein neues Problem und können dafür ohne Sprachvorgaben jede Programmiersprache verwenden
    • Die Aufgaben werden für Vorbereitung auf Bewerbungsgespräche, Ausbildung, Übung, Wettbewerb und gegenseitige Herausforderungen genutzt
  • Für die Teilnahme sind keine Fachkenntnisse aus dem Informatikstudium erforderlich; grundlegende Programmier- und Problemlösungsfähigkeiten reichen aus
    • Alle Aufgaben können selbst auf 10 Jahre alter Hardware in unter 15 Sekunden ausgeführt werden

Teilnahme und Unterstützung

  • Wer Advent of Code unterstützen möchte, kann es auf Bluesky, Twitter, Mastodon teilen oder über AoC++ direkt fördern
  • Wenn man beim Lösen nicht weiterkommt, werden Methoden wie Beispieleingaben prüfen, Testfälle schreiben, Freunde um Hilfe bitten oder im Subreddit nach Hinweisen fragen empfohlen

Allgemeine Tipps (General Tips)

  • Wenn Beispiel-Eingabe und -Ausgabe nicht übereinstimmen, sollte man die Aufgabenbeschreibung erneut lesen und das Verhalten des Codes prüfen
  • Ist die Antwort trotz bestandener Beispiele noch falsch, sollte man manuell überprüfbare Testfälle erstellen und kontrollieren
  • Wenn es weiterhin schwerfällt, kann man eine Pause machen und es später erneut versuchen oder die Community fragen

Häufig gestellte Fragen (FAQ)

  • Codeblock-Auswahl: Bei aktiviertem JavaScript kann mit Dreifachklick der gesamte Block ausgewählt werden
  • Authentifizierung: Über OAuth ist die Anmeldung mit externen Diensten wie Reddit oder GitHub möglich; Zugangsdaten werden nur an den jeweiligen Dienst übermittelt
    • Advent of Code speichert nur ID, Name, URL und Bild der Nutzer
  • Schwierigkeitsverlauf: Während des Events steigt der Schwierigkeitsgrad schrittweise; die wahrgenommene Schwierigkeit hängt vom eigenen Kenntnisstand ab
  • Zeitpunkt der Puzzle-Veröffentlichung: Die Veröffentlichung erfolgt um Mitternacht US Eastern Standard Time (UTC-5), weil dies eine für den Betreiber handhabbare Zeitzone ist
    • Wer Wettbewerb möchte, kann über private Leaderboards regional gegeneinander antreten
  • Lesbarkeitsprobleme: Ein High-Contrast-Modus wird unterstützt und kann in Firefox standardmäßig aktiviert werden
  • Keine Puzzle-Vorschläge: Wegen urheberrechtlicher Fragen werden keine externen Puzzle-Ideen angenommen
  • Bugmeldungen: Ist seit der Veröffentlichung eines Puzzles mehr als eine Stunde vergangen, haben es meist schon viele Nutzer gelöst, daher ist ein Bug eher unwahrscheinlich
    • Bei Problemen wird empfohlen, zuerst im Subreddit nachzusehen
  • Geschwindigkeitswettbewerb: Wer schneller lösen möchte, braucht zusätzliche Übung und Technik, aber wichtig ist, so teilzunehmen, wie es zu den eigenen Zielen passt
  • Änderung der Event-Dauer: Nach 10 Jahren mit unverändertem Ablauf wurde das Ende auf die Monatsmitte vorgezogen, um die zeitliche Belastung des Betreibers zu verringern
  • Abschaffung des globalen Leaderboards: Wegen übermäßigen Wettbewerbs und Problemen wie DDoS-Angriffen und Nutzerstress wurde es nach 10 Jahren eingestellt
    • Stattdessen gibt es eine Freigabefunktion für private Leaderboards im Nur-Lesen-Modus
  • Einsatz von KI: Die Puzzles sollen menschliches Denkvermögen stärken, deshalb wird der Einsatz von KI nicht empfohlen
    • Zur Erklärung wird die Analogie verwendet: „Wenn jemand anderes für dich trainiert, wirst du selbst dadurch nicht stärker.“
  • Keine Vervielfältigung von Inhalten: Advent of Code kann kostenlos genutzt werden, aber das Kopieren von Puzzle-Texten oder Eingabedaten ist untersagt
    • Auch das Nachahmen von Website-Design oder Namen ist verboten

Credits

  • Puzzles, Code, Design: Eric Wastl
  • Beta-Tests: Ben Lucek, JP Burke, Aneurysm9, Andrew Skalski
  • Community-Management: Danielle Lucek, Aneurysm9
  • Teilnehmende: alle Nutzerinnen und Nutzer

Rechtliches

  • Advent of Code ist eine in den USA eingetragene Marke; Design, Sprache, Stil und Konzept sind exklusives Eigentum
    • Vervielfältigung oder Nutzung ohne ausdrückliche schriftliche Zustimmung ist nicht erlaubt
  • Links oder Zitate zu den Puzzles sind frei möglich, auch im kommerziellen Kontext
  • Advent of Code erhebt keinen Urheberrechtsanspruch auf den Lösungscode der Teilnehmenden

2 Kommentare

 
roxie 2025-12-01

Ich hatte letztes Jahr auch ein bisschen mitgemacht … Ein Jahr vergeht wirklich wie im Flug ;_;

 
GN⁺ 2025-12-01
Hacker-News-Kommentare
  • Jedes Mal, wenn ich höre, dass man auch ohne Informatik-Hintergrund mitmachen kann, habe ich das Gefühl, dass das für Hobby-Programmierer in Wirklichkeit enttäuschend sein kann
    Wenn mit „man kommt ziemlich weit“ gemeint ist, dass man 1–2 leichte Aufgaben lösen kann, dann stimmt das vielleicht, aber darüber hinaus wird es schwierig

    • Jemand meinte, die Probleme seien „zu einfach“, und ich habe mich ernsthaft gefragt, in was für einer Welt diese Person lebt
    • Sehe ich auch so. Ich war überrascht, wie wenig Fortschritt Freunde von mir gemacht haben, die als Entwickler arbeiten
  • Advent of Code ist jedes Jahr das Highlight im Dezember
    Schade, dass das globale Leaderboard verschwunden ist, aber nachvollziehbar. Dass es dieses Jahr nur 12 Tage geht, gefällt mir auch, weil es den Druck reduziert
    Ich würde empfehlen, nicht mit dem Ziel anzutreten, „zu gewinnen“, sondern einfach den Spaß am Problemlösen zu genießen

    • Es sind zwar 12 Tage, aber in der Praxis 24 Challenges, also werde ich sie wohl gemütlich über 24 Tage verteilt genießen
    • Schade, dass es auf 12 Tage verkürzt wurde, aber beim globalen Leaderboard war wegen der Zeitzonenunterschiede ohnehin kein echter Wettbewerb möglich. Persönliche Leaderboards sind viel besser
    • Dieses Jahr will ich mit Freunden ein lokales Leaderboard anlegen. Ins globale wären wir sowieso nie gekommen
    • Wenn ich sehe, dass mich solche Events überhaupt nicht interessieren, ist das wohl ein klarer Hinweis darauf, dass ich kein Entwickler bin
  • Ich liebe Advent of Code wirklich
    Dass es dieses Jahr nur 12 Tage dauert, begrüße ich sogar. Zum Jahresende ist im echten Leben einfach zu viel los, deshalb habe ich letztes Jahr nur etwa die Hälfte geschafft
    Großer Dank an alle Beteiligten

    • Letztes Jahr habe ich nur bis Tag 7 durchgehalten, deshalb fühlt es sich dieses Jahr deutlich weniger belastend an
    • Vielleicht schaffe ich es dieses Mal endlich bis zum Ende
    • Ich freue mich riesig auf dieses Jahr
  • Ich habe Advent of Code dieses Jahr zum ersten Mal ausprobiert und es hat wirklich Spaß gemacht
    Es ist ähnlich wie Project Euler, aber stärker auf Programmierung als auf Mathematik ausgerichtet
    Teil 1 ist einfach, aber Teil 2 verlangt einen optimierten Ansatz, was es interessant macht

  • Die Abschaffung des öffentlichen Leaderboards ist vernünftig
    Ganz abgesehen vom LLM-Thema war Wettbewerb außerhalb bestimmter US-Zeitzonen ohnehin unmöglich
    Stattdessen wären weltweite Statistiken wie Lösungsraten nach Zeitzonen interessant

    • LLMs haben es kaputtgemacht, aber früher war es wirklich spannend, sich echte Top-Lösungen anzusehen
      Es hat auch Spaß gemacht, auf YouTube Live-Coding-Videos dazu zu schauen
  • Ich freue mich jedes Jahr auf Advent of Code
    Ohne den Stress eines Leaderboards nutze ich es lieber als Gelegenheit, eine neue Sprache zu lernen oder meine Fähigkeiten zu schärfen
    Im Alltag bootstrappe ich nicht ständig eigene Projekte und implementiere auch nicht dauernd DFS, deshalb ist so ein Event gute Übung

    • Ich würde auch gern von so einer Art Problemen leben, aber wahrscheinlich würde ich dann ausbrennen
      Deshalb halte ich im Alltag mit Dingen wie Tests schreiben oder Dokumentation die Balance
      Jedes Jahr verbessere ich ältere Aufgaben ein Stück weiter, um Effizienz und Lesbarkeit zu steigern
  • Ich freue mich, dass Advent of Code dieses Jahr wieder stattfindet
    Beim Lesen der FAQ habe ich allerdings nicht ganz verstanden, warum man die Eingabedaten nicht veröffentlichen soll
    Beim Puzzle-Text verstehe ich es, aber dass sogar die Eingaben privat bleiben müssen, finde ich schade. Trotzdem respektiere ich es, schließlich kann man kostenlos mitmachen

    • Wenn die Eingaben öffentlich wären, könnte jemand wohl die Puzzle-Generierungslogik nachbauen, heißt es
    • Es reicht völlig, nur die Beispiel-Eingaben zu committen und die Tests damit laufen zu lassen. Wenn man das wie doctests in Python oder Rust strukturiert, ist es sauber gelöst
    • Ich veröffentliche meinen Code, aber verwalte die Eingaben als private submodule
    • Ich verschlüssele die Eingabedateien mit git-crypt und lade sie in ein öffentliches Repository hoch
  • Sprachumfrage: Python und C++ werden am meisten genutzt, aber auch unter den Nischensprachen gibt es einige, die gut zu AoC passen
    Die Idee ist, mal zu teilen, welche Sprachen sich gut eignen

    • Ich mag Array-Sprachen wie K oder Uiua. Sie sehen zwar völlig verrückt aus, sind aber für die frühen Aufgaben ideal
      Halb im Scherz löse ich manche Aufgaben auch in ASM für den Game Boy. In der Praxis nutze ich aber Clojure oder Python
    • Ich nutze eine selbstgebaute Sprache im Haskell+Bash-Stil. Es gibt auch eine YouTube-Demo
      Dieses Jahr baue ich einen Bytecode-Compiler. Für das Leaderboard nutze ich Go, und dank der Kompiliergeschwindigkeit wurde ich an Day 19 im Jahr 2022 Erster
    • Mit Haskell ist die Eingabeverarbeitung dank Parser-Kombinatoren einfach. Außerdem erlauben Lazy Evaluation und Rekursion sehr kompakten Code
      Zum Beispiel löse ich Aufgaben, indem ich unendliche Listen erzeuge und sie durchlaufe, bis eine Bedingung erfüllt ist
    • Ruby ist ideal. Die ausdrucksstarke Syntax, die umfangreiche Standardbibliothek und die vielen Tools zur String-Verarbeitung sind für AoC großartig
      Methoden wie each_cons, permutation und prime sind bei AoC besonders nützlich
    • Go ist schnell und einfach, und OCaml hat ein großartiges Typsystem und eine sehr gute Laufzeit
      Wenn man sich vorher Utilities für 2D-Grids oder Parser vorbereitet, arbeitet man deutlich effizienter
  • Dieses Jahr will ich es mal mit Assembly (fasm) versuchen
    Es könnte Spaß machen oder schmerzhaft werden, aber so oder so ist es ein Lernprozess

  • Das Leaderboard scheint nach dem AI-Automatisierungsboom im letzten Jahr verschwunden zu sein
    Schade, aber es wirkt wie eine unvermeidliche Entscheidung

    • Als die Puzzles veröffentlicht wurden, war es nach US-Zeit und ich habe immer geschlafen
      Wettbewerb war für mich ohnehin unmöglich, also hatte das globale Leaderboard nie viel Bedeutung