Advent of Code 2025
(adventofcode.com)- Advent of Code est un calendrier de l’Avent de puzzles de programmation destiné aux programmeurs de tous niveaux, avec des solutions possibles dans n’importe quel langage
- Les participants peuvent l’utiliser à diverses fins, notamment pour la préparation aux entretiens, la formation en entreprise, les devoirs universitaires, les exercices pratiques et les compétitions de vitesse
- Il est possible de participer sans diplôme en informatique, et les problèmes sont conçus pour s’exécuter en moins de 15 secondes même sur un ordinateur vieux de 10 ans
- Le site prend en charge l’authentification OAuth, le mode à contraste élevé, les classements privés et la sélection des blocs de code
- Le classement mondial a été supprimé en raison de problèmes de stress et de triche, et l’accent est mis sur une expérience de résolution agréable centrée sur les participants
Présentation d’Advent of Code
- Advent of Code est un événement annuel de puzzles de programmation créé par Eric Wastl, proposant chaque année à partir du 1er décembre des énigmes sous la forme d’un calendrier de l’Avent en ligne
- Les participants résolvent un nouveau problème chaque jour, librement et sans contrainte de langage
- Les problèmes peuvent servir à des usages variés comme la préparation aux entretiens, la formation, l’entraînement, la compétition ou les défis entre participants
- Aucune connaissance universitaire en informatique n’est nécessaire pour participer : des bases en programmation et en résolution de problèmes suffisent
- Tous les problèmes peuvent s’exécuter en moins de 15 secondes même sur du matériel vieux de 10 ans
Comment participer et soutenir le projet
- Pour soutenir Advent of Code, il est possible de le partager sur Bluesky, Twitter, Mastodon ou de contribuer directement via AoC++
- Si vous bloquez sur un problème, il est recommandé de vérifier l’entrée d’exemple, écrire des cas de test, demander de l’aide à un ami ou solliciter des indices sur le subreddit
Conseils généraux (General Tips)
- Si l’entrée et la sortie d’exemple ne correspondent pas, il faut relire l’énoncé et vérifier le comportement du code
- Si l’exemple passe mais que la réponse reste fausse, créez des cas de test vérifiables manuellement pour valider le résultat
- Si cela reste difficile à résoudre, vous pouvez faire une pause puis réessayer ou poser une question à la communauté
Questions fréquentes (FAQ)
- Sélection des blocs de code : avec JavaScript activé, un triple-clic permet de tout sélectionner
- Méthode d’authentification : OAuth est utilisé pour se connecter via des services externes comme Reddit ou GitHub, et les identifiants ne sont transmis qu’à ces services
- Advent of Code ne stocke que l’ID, le nom, l’URL et l’image de l’utilisateur
- Évolution de la difficulté : l’événement devient progressivement plus difficile au fil du temps, et la difficulté perçue dépend du niveau technique de chacun
- Heure de publication des puzzles : ils sont publiés à minuit, heure normale de l’Est des États-Unis (UTC-5), car c’est le créneau horaire gérable pour l’organisateur
- Pour ceux qui veulent rivaliser, il est possible de concourir localement via des classements privés
- Problèmes de lisibilité : un mode à contraste élevé est pris en charge et peut être activé par défaut dans Firefox
- Interdiction de proposer des puzzles : aucune idée de puzzle externe n’est acceptée pour des raisons de droits d’auteur
- Signalement de bugs : si plus d’une heure s’est écoulée depuis la publication d’un puzzle, de nombreux utilisateurs l’ont probablement déjà résolu, donc la probabilité d’un bug est faible
- En cas de problème, il est recommandé de vérifier d’abord sur le subreddit
- Compétition de vitesse : si vous visez des résolutions très rapides, cela demandera davantage d’entraînement et de technique, mais le plus important est de participer selon vos propres objectifs
- Modification de la durée de l’événement : après 10 ans de calendrier inchangé, la fin a été avancée à la mi-décembre afin de réduire la charge de temps pour l’organisateur
- Suppression du classement mondial : après 10 ans, il a été supprimé à cause d’une compétition excessive et de problèmes comme les attaques DDoS et le stress des utilisateurs
- À la place, une fonction de partage en lecture seule des classements privés est proposée
- Utilisation de l’IA : comme les puzzles visent à développer la réflexion humaine, l’usage de l’IA n’est pas recommandé
- Cela est expliqué par l’analogie suivante : « faire faire l’exercice à quelqu’un d’autre ne vous rend pas plus fort »
- Interdiction de copier le contenu : Advent of Code peut être utilisé gratuitement, mais la copie du texte des puzzles ou des données d’entrée est interdite
- Il est également interdit d’imiter le design du site web ou son nom
Crédits (Credits)
- Puzzles, code, design : Eric Wastl
- Bêta-test : Ben Lucek, JP Burke, Aneurysm9, Andrew Skalski
- Responsables de communauté : Danielle Lucek, Aneurysm9
- Participants : tous les utilisateurs
Mentions légales (Legal)
- Advent of Code est une marque déposée aux États-Unis, et son design, son langage, son style et son concept sont tous des actifs exclusifs
- Toute reproduction ou utilisation sans accord écrit explicite est interdite
- Les liens ou citations vers les puzzles sont librement autorisés, y compris dans un contexte commercial
- Advent of Code ne revendique aucun droit d’auteur sur le code de solution des participants
2 commentaires
J’y ai aussi participé un peu l’année dernière... Une année passe vraiment en un clin d’œil T_T
Avis Hacker News
Chaque fois que j’entends dire qu’on peut participer même sans formation en informatique, j’ai l’impression que cela peut en réalité être décevant pour les programmeurs amateurs
Dire qu’on peut “aller assez loin” est vrai si cela signifie résoudre 1 ou 2 problèmes faciles, mais au-delà, ce n’est pas simple
Advent of Code est le temps fort de chaque mois de décembre
La disparition du classement mondial est regrettable, mais compréhensible. Le fait qu’il n’y ait que 12 jours cette année est aussi bienvenu, car cela allège la charge
Je recommande de ne pas chercher à “gagner”, mais simplement de profiter du plaisir de résoudre les problèmes
J’adore vraiment Advent of Code
Le fait qu’il n’y ait que 12 jours cette année m’arrange plutôt. En fin d’année, il y a beaucoup d’obligations dans la vraie vie, donc l’an dernier je n’en ai fait qu’environ la moitié
Un grand merci à toutes les personnes qui y participent
J’ai essayé Advent of Code pour la première fois cette année, et c’était vraiment amusant
C’est similaire à Project Euler, mais plus orienté programmation que mathématiques
La première partie est simple, mais la seconde demande une approche optimisée, ce qui la rend intéressante
Supprimer le classement public est une décision raisonnable
Même indépendamment du problème des LLM, il était impossible d’être compétitif en dehors de certains fuseaux horaires américains
En revanche, ce serait intéressant d’avoir des statistiques mondiales, par exemple le taux de résolution selon les fuseaux horaires
C’était aussi amusant de regarder des vidéos de code en direct sur YouTube
J’attends Advent of Code chaque année
Sans me stresser avec les classements, j’en fais une occasion d’apprendre un nouveau langage ou de perfectionner mes compétences
Dans la vie courante, je n’ai pas souvent l’occasion de lancer moi-même des projets ou d’implémenter un DFS, donc ce genre d’événement est un très bon entraînement
Donc au quotidien, j’équilibre avec des tâches comme l’écriture de tests ou la documentation
Chaque année, j’améliore un peu mes anciennes solutions pour travailler l’efficacité et la lisibilité
Je suis content qu’Advent of Code revienne cette année aussi
En lisant la FAQ, j’ai eu du mal à comprendre la règle qui interdit de publier les données d’entrée
Je comprends pour le texte des énigmes, mais c’est dommage que les entrées doivent aussi rester privées. Cela dit, comme c’est gratuit, je respecte la règle
Sondage sur les langages : Python et C++ sont les plus utilisés, mais parmi les langages de niche, certains se prêtent très bien à AoC
L’idée est de partager les langages qui fonctionnent bien
C’est une blague, mais il m’arrive aussi d’en résoudre en ASM pour Game Boy. En pratique, j’utilise Clojure ou Python
Cette année, je construis un compilateur de bytecode. Pour le classement, j’utilise Go, et grâce à sa vitesse de compilation, j’ai terminé premier au Day19 de 2022
Par exemple, je résous certains problèmes en générant une liste infinie puis en la parcourant jusqu’à ce qu’une condition soit satisfaite
Des méthodes comme
each_cons,permutationouprimesont pratiques pour AoCSi on prépare à l’avance des grilles 2D ou des utilitaires de parsing, c’est bien plus efficace
Cette année, je pense tenter l’aventure en assembleur (fasm)
Ce sera peut-être amusant, peut-être pénible, mais dans tous les cas ce sera un apprentissage
Le classement a sans doute disparu après le boom de l’automatisation par l’IA l’an dernier
C’est dommage, mais cela semble avoir été inévitable
De toute façon, la compétition était difficile, donc le classement mondial n’avait pas beaucoup de sens