L’Advent Of Code en est à son 13e jour. Normal pour un calendrier de l’Avent. Le phénomène existe depuis 2015, et je me suis toujours demandé pourquoi il était aussi clivant. Alors clivant dans le sens où ceux qui le font se sentent vraiment exaltés et en parlent à tout le monde. Et d’autres gens y sont complètement indifférents.
C’est quoi l’Advent of code ?
C’est une série quotidienne de challenge d’algorithmie. Il y a des communautés qui se sont organisées. Que ce soit une entreprise en interne ou dans des communautés. Par exemple le codinglab animé par quelques influenceurs javascript propose un concours cette année encore. Nicolas de LesJoiesDuCode en anime un en partenariat avec un annonceur. Chacun de ces concours indépendants à son propre classement à l’intérieur de l’Advent Of Code. Chacune de ces communautés aura son “KING OF AOC”.
L’occasion d’apprendre et d’utiliser une AI
J’ai échangé avec pas mal de personnes hier sur les réseaux sociaux pour comprendre ce qui les motivaient et le temps qu’ils investissent dans le projet.
Pour Jean-Michel (le prénom n’a pas été modifié), c’est l’occasion d’étudier un autre langage, une autre technologie. Il utilise donc ChatGPT pour en apprendre plus sur le langage. Yannick Grenzinger, c’est l’occasion de mettre à l’épreuve ChatGPT.
Christophe Michel est dans le même esprit, mais avec Github Copilot : “Je me sers de Github Copilot Chat uniquement, pas de suggestions directes, pour demander des questions du genre « comment on fait <truc technique> en Kotlin ? ». Il me remplace Google parce que si je pose la question à Google autant aller sur Baeldung direct.”
C’est l’occasion de partager
L’Advent Of Code c’est clairement communautaire. S’il y a une communauté de pratique dans votre entreprise qui s’implique sur le sujet c’est motivant. À l’instar de codinglab ou de lesjoiesducode, il est agréable de pouvoir échanger sur la solution de la veille avec un groupe de proches, ou de collègues. Denis aka Zwindler’s témoigne : “j’adore discuter de ma solution et confronter avec celles des autres. j’ai réussi à motiver ma femme et on s’est mis à le faire à deux, moi en go, elle en python”. Sylvain Gougouzian le rejoint : “Oui, souvent, on trouve une solution, mais c’est pas la plus optimisée, et discuter de comment on est arrivé à notre solution”
Et il y a les compétiteurs
Mathis Hammel est clairement le champion français toute catégorie. Il a une astuce, change de fuseau horaire : “Chaque année je joue plutôt pour me faire un entraînement de rapidité sur des algos plutôt faciles, cette année c’est un peu différent parce que je suis au fuseau horaire coréen/japonais donc je peux aussi jouer le leaderboard mondial en visant le top 100”.
Le fuseau horaire c’est un sujet. Chaque “jour de l’avent” est publié à Minuit heure de New York. Il est donc 6h en France, 14h à Séoul. Les devs de CodingLab se lèvent à 6h pour être dans les premiers à compléter l’algorithme. @jycouet sur Discord : “Non, à 5h42 🤣”. Et l’astuce de Mathis lui permet d’être sur le classement. Aujourd’hui il était le 32e sur la première étoile à 00h05 (et 50s). Le premier avait bouclé le challenge en 2 minutes et 2 secondes.
Il faut une bonne compétence en algo et en mathématique
Pour gagner oui. Sylvain : “C’est ouvert à toutes et tous, juste que cette année si on ne réfléchit pas un peu maths 1 jour sur 2, les résultats peuvent prendre plusieurs heures au lieu de quelques secondes”.
C’est donc même l’occasion de vous entrainer sur cette thématique si vous en avait l’usage. Par exemple, Denis n’est pas Dev, et ça lui permet de rafraîchir ses compétences sur le sujet. Clairement, même si on est dev, on fait pas forcément de l’algorithmique tous les jours. Et ça peut être une compétence que l’on veut renforcer. Même si c’est pas une compétence utile en poste, on est toujours évalués sur ce type d’exercices. Yannick confirme : “Le pire, c’est ce qu’on retrouve dans des entretiens pour des boites de la tech …. même pour manager :/”.
On peut préparer des entretiens ou l’advent of code en faisant des exercices sur leetcode. “C’est un site d’entraînement en algo comme il en existe pas mal” comme l’indique Mathis. J’ai regardé le site et oui, il y a une ambiance qui ressemble beaucoup à celle d’exercism (ou même à grafikart parce que c’est orienté cours avec un modèle freemium).
Ce qui est intéressant, c’est qu’ici on n’évalue pas votre connaissance d’un framework ou d’une techno. L’algorithmie c’est vraiment une compétence à part entière. Si vous voulez évaluer votre compétence sur une techno, il y a plus de 3200 questions d’entretien technique disponibles sur WeLoveDevs.com
Et ceux qui le font pas, c’est pourquoi ?
La grande majorité c’est parce qu’ils ont pas le temps. Même Yannick le relate sur X : “Mon niveau sur ce genre d’exo + des triplés en bas age rendent ma capacité de finir les exos de l’advent of code proche de 0. Le dev c’est pas un truc de parents vu l’investissement qu’il faut faire en dehors des horaires de travail :(“
C’est le cas d’autres personnes. Ils ont raté le début et ont l’impression qu’ils ne pourront pas rattraper. D’autre sont dissuadés par l’idée de s’investir sur presque 24 jours. Alors que c’est une période de l’année où la charge mentale est plus forte.
Il y a aussi beaucoup de gens qui juste n’étaient pas au courant de l’opération ou du phénomène. En tout cas cela relance bien le sujet de coder en dehors des horaires de bureau. Est-ce que c’est vraiment normal ? Mon opinion est que ceux qui décident de favoriser leurs proches ou leur santé ont bien raison de le faire. Profitez de noël ! Bisous