1 points par GN⁺ 2024-12-02 | 1 commentaires | Partager sur WhatsApp
  • Advent of Code, créé par Eric Wastl, est un événement en ligne proposant divers puzzles de programmation, pouvant être résolus dans plusieurs langages de programmation.

  • Il est utilisé à des fins très diverses, comme la préparation aux entretiens, la formation en entreprise, les devoirs universitaires, les exercices pratiques et les compétitions de vitesse.

  • Même sans formation en informatique, il est possible de participer avec quelques connaissances en programmation et de bonnes capacités de résolution de problèmes.

  • Conseils généraux

    • Si vous bloquez sur un problème, vous pouvez utiliser les exemples fournis dans le puzzle pour valider votre solution.
    • Si les exemples ne fonctionnent pas, relisez la description et vérifiez que votre programme se comporte comme prévu.
    • Si vous n'y arrivez toujours pas, vous pouvez demander de l'aide à un ami ou réessayer plus tard.
  • Questions fréquentes

    • Pour sélectionner un bloc de code, il suffit de cliquer trois fois dessus avec JavaScript activé.
    • Advent of Code utilise OAuth pour l'authentification, et aucune information personnelle n'est exposée en dehors des informations déjà publiques.
    • Le choix de participer ou non au classement mondial dépend des objectifs de chacun.
    • La difficulté des puzzles varie pendant l'événement et peut être perçue différemment selon le niveau technique de chacun.
    • Les puzzles sont publiés à minuit (EST/UTC-5), une heure qui permet à l'organisateur d'assurer une gestion stable.
    • Si le texte du site est difficile à lire, un mode à fort contraste est disponible.
    • Les idées de puzzles ne sont pas acceptées pour des raisons juridiques.
    • Si vous pensez qu'un puzzle contient un bug, vous pouvez d'abord poser la question sur le subreddit.
    • Lors d'un streaming de solution, il est préférable d'éviter de le faire pendant que d'autres personnes sont encore en compétition.
    • L'utilisation de l'IA pour figurer dans le classement mondial n'est pas recommandée.
  • Crédits

    • Puzzles, code, design : Eric Wastl
    • Bêta-test : Tim Giannetti, Ben Lucek, JP Burke, Aneurysm9, Andrew Skalski
    • Community managers : Danielle Lucek, Aneurysm9
  • Mentions légales

    • Advent of Code est une marque déposée aux États-Unis, et les éléments de design, la formulation, le style et le concept appartiennent à Advent of Code.
    • Il est possible de créer des liens vers les puzzles ou de s'y référer, mais il est interdit d'en copier ou d'en redistribuer une partie.

1 commentaires

 
GN⁺ 2024-12-02
Avis Hacker News
  • Cela fait 4 ans que j’utilise le langage Go, et je trouve qu’il n’est pas adapté à la résolution de problèmes. La bibliothèque standard manque de structures de données de base et, pour un langage compilé, il est plutôt lent
  • J’adore AoC et, ces 2 à 3 dernières années, je m’y suis attaqué avec Rust. Sur Discord, j’ai appris diverses optimisations de performance, des algorithmes avancés et le SIMD pour trouver les solutions les plus rapides
    • Cette fois, je vais m’y attaquer avec Rust et Golang, afin soit d’en venir à aimer Golang ou au moins à le tolérer, soit de prouver mon hypothèse que Golang n’est pas terrible
  • Le défi consistant à écrire pendant 25 jours des parseurs d’entrée de plus en plus complexes recommence
  • Cette année, je vais relever le défi sur une NES (Nintendo Entertainment System)
    • À cause de la RAM limitée (2 KiB, avec 8 KiB supplémentaires possibles sur la cartouche), certains problèmes seront peut-être impossibles, mais je compte en résoudre le plus possible
    • Le problème du jour a pu être résolu en moins de 4 secondes en utilisant 4 KiB de RAM supplémentaire sur la cartouche
  • Le défi de cette année consiste à tout écrire en C sans bibliothèque standard ni allocateur, afin de pouvoir l’exécuter sur STM32
    • Il y a 2 ans, j’avais essayé en assembleur, mais après avoir passé beaucoup de temps à écrire une bibliothèque standard en assembleur, j’ai abandonné et je suis passé à Rust
  • D’habitude, je fais AoC en Common Lisp, mais cette année j’essaie Swift
    • Pour un langage grand public à typage statique, ce n’est pas mauvais du tout pour ce genre de travail
    • Code Swift AoC
  • Cette année, j’organisais un événement dans mon nouveau travail, puis j’ai réalisé que je ne pourrais pas travailler avec mon nouveau manager et j’ai dû partir
    • Je pense qu’il est très utile que les développeurs apprennent à résoudre de vrais problèmes au lieu d’assembler des frameworks
    • Au final, il semble que je serai encore avec Emacs, comme d’habitude
  • J’ai résolu l’ensemble des problèmes, et c’est un problème business. Il suffit juste de remplacer l’historien en chef
  • Alors que certains relèvent le défi avec Common Lisp et la bibliothèque standard C, moi j’essaie simplement d’appeler curl pour télécharger les fichiers de données
  • L’an dernier, je suis resté bloqué toute une semaine au jour 12 et j’ai passé tout mon temps à réfléchir à une solution. Cette année, je vais être plus bienveillant avec moi-même, ne pas participer et profiter de la pause hivernale
  • Cette année, je vais tenter le défi en F# et en Gleam, mais comme chaque année, je n’aurai probablement ni le temps ni l’énergie mentale d’aller au-delà des jours 10 à 12
    • Je recommande aux utilisateurs de Python d’essayer F# : cela peut donner une sensation très proche du scripting, et il offre aussi un excellent REPL