1 Punkte von GN⁺ 2024-12-02 | 1 Kommentare | Auf WhatsApp teilen
  • Advent of Code, erstellt von Eric Wastl, ist ein Online-Event mit vielfältigen Programmierpuzzles, die in verschiedenen Programmiersprachen gelöst werden können.

  • Es wird für viele unterschiedliche Zwecke genutzt, etwa zur Vorbereitung auf Interviews, für Firmenschulungen, Universitätsaufgaben, Übungsprobleme und Geschwindigkeitswettbewerbe.

  • Auch ohne Informatik-Hintergrund kann man teilnehmen, solange man über etwas Programmierwissen und Problemlösungsfähigkeiten verfügt.

  • Allgemeine Tipps

    • Wenn man bei der Lösung eines Problems feststeckt, kann man die im Puzzle bereitgestellten Beispiele nutzen, um die eigene Lösung zu überprüfen.
    • Wenn die Beispiele nicht funktionieren, sollte man die Beschreibung erneut lesen und prüfen, ob das Programm wie erwartet arbeitet.
    • Wenn es immer noch nicht klappt, kann man Freunde um Hilfe bitten oder es später noch einmal versuchen.
  • Häufig gestellte Fragen

    • Um einen Codeblock auszuwählen, klickt man bei aktiviertem JavaScript dreimal auf den Codeblock.
    • Advent of Code verwendet OAuth für die Authentifizierung, und die persönlichen Daten der Nutzer werden außer den öffentlich sichtbaren Informationen nicht offengelegt.
    • Ob man am globalen Leaderboard teilnehmen möchte, kann man je nach den eigenen Zielen entscheiden.
    • Der Schwierigkeitsgrad der Puzzles variiert im Verlauf des Events und kann je nach individuellem Können unterschiedlich empfunden werden.
    • Die Puzzles werden um Mitternacht (EST/UTC-5) freigeschaltet; das ist ein Zeitpunkt, den der Betreiber stabil verwalten kann.
    • Wenn sich der Text auf der Website schwer lesen lässt, kann man den Hochkontrastmodus verwenden.
    • Puzzle-Ideen werden aus rechtlichen Gründen nicht entgegengenommen.
    • Wenn man glaubt, einen Bug im Puzzle gefunden zu haben, kann man zuerst im Subreddit nachfragen.
    • Beim Streaming von Lösungen sollte man Rücksicht auf andere nehmen und es vermeiden, solange andere noch im Wettbewerb sind.
    • Der Einsatz von KI, um auf das globale Leaderboard zu kommen, wird nicht empfohlen.
  • Credits

    • Puzzles, Code, Design: Eric Wastl
    • Beta-Tests: Tim Giannetti, Ben Lucek, JP Burke, Aneurysm9, Andrew Skalski
    • Community-Manager: Danielle Lucek, Aneurysm9
  • Rechtlicher Hinweis

    • Advent of Code ist eine in den USA eingetragene Marke; Designelemente, Sprache, Stil und Konzept sind Eigentum von Advent of Code.
    • Das Verlinken oder Referenzieren der Puzzles ist erlaubt, das Kopieren oder Weiterverbreiten von Teilen von Advent of Code jedoch verboten.

1 Kommentare

 
GN⁺ 2024-12-02
Hacker-News-Kommentare
  • Ich nutze Go seit 4 Jahren und habe das Gefühl, dass sich diese Sprache nicht gut für Problemlösung eignet. In der Standardbibliothek fehlen grundlegende Datenstrukturen, und für eine kompilierte Sprache ist sie eher langsam
  • Ich liebe AoC und habe mich in den letzten 2–3 Jahren mit Rust daran versucht. Auf Discord habe ich verschiedene Performance-Optimierungen, fortgeschrittene Algorithmen und SIMD gelernt, um die schnellsten Lösungen zu finden
    • Dieses Mal versuche ich es mit Rust und Golang und will entweder lernen, Golang zu mögen oder zumindest zu ertragen, oder die Hypothese bestätigen, dass Golang nicht besonders gut ist
  • Die Herausforderung, 25 Tage lang zunehmend komplexe Input-Parser zu schreiben, beginnt wieder
  • Dieses Jahr werde ich die Herausforderung auf dem NES (Nintendo Entertainment System) angehen
    • Wegen des begrenzten RAMs (2 KiB, mit zusätzlichen 8 KiB auf dem Cartridge möglich) könnten einige Probleme unlösbar sein, aber ich will so viele wie möglich lösen
    • Die heutige Aufgabe ließ sich mit zusätzlichen 4 KiB RAM auf dem Cartridge in unter 4 Sekunden lösen
  • Die diesjährige Herausforderung besteht darin, alles in C ohne Standardbibliothek oder Allocator zu schreiben, sodass es auf einem STM32 laufen kann
    • Vor 2 Jahren habe ich es in Assembler versucht, aber nachdem ich viel Zeit damit verbracht hatte, eine Assembler-Standardbibliothek zu schreiben, habe ich aufgegeben und bin zu Rust gewechselt
  • Normalerweise mache ich AoC in Common Lisp, aber dieses Jahr probiere ich Swift aus
    • Für eine statisch typisierte Mainstream-Sprache ist es für solche Aufgaben gar nicht schlecht
    • Swift-AoC-Code
  • Dieses Jahr habe ich an meinem neuen Arbeitsplatz das Event organisiert, musste dann aber gehen, weil mir klar wurde, dass ich mit meinem neuen Chef nicht zusammenarbeiten kann
    • Ich halte es für sehr nützlich, wenn Entwickler lernen, echte Probleme zu lösen, statt nur Frameworks zusammenzustecken
    • Am Ende wird es wohl wie üblich Emacs werden
  • Ich habe alle Probleme gelöst; das ist ein Business-Problem. Man muss nur den leitenden Historiker ersetzen
  • Während manche Leute die Herausforderung mit Common Lisp und der C-Standardbibliothek angehen, versuche ich gerade, einen curl-Aufruf hinzubekommen, um die Datendatei herunterzuladen
  • Letztes Jahr hing ich am 12. Tag eine Woche lang fest und habe meine ganze Zeit damit verbracht, über eine Lösung nachzudenken. Dieses Jahr will ich gut zu mir selbst sein, nicht teilnehmen und die Winterpause genießen
  • Dieses Jahr werde ich es mit F# und Gleam versuchen, aber wie jedes Jahr werde ich wahrscheinlich weder Zeit noch mentale Energie haben, mehr als 10–12 Tage zu machen
    • Python-Nutzern würde ich empfehlen, F# auszuprobieren: Es kann sich sehr ähnlich wie Scripting anfühlen und bietet außerdem ein großartiges REPL