Pour sa neuvième édition, le Master Dev France (autrefois nommé « Meilleur Développeur de France ») a dû se réinventer. Lors de l’édition précédente, en 2022, les IA Génératives, ChatGPT en tête, avaient fait une entrée fracassante dans le concours, perturbant grandement les classements. En quelques secondes, il était possible de résoudre un certain nombre d’exercices sans même en avoir lu l’énoncé. Un jeune élève dont l’ordi plantait a même pu atteindre la finale en faisant l’épreuve sur son téléphone à coup de copier-coller. A l’époque, les questions les plus compliquées résistaient encore un peu à la résolution automatique, mais la brèche était faite et le temps gagné sur les exercices facilement résolus faisait économiser de précieuses minutes qui pouvaient être mises à profit pour résoudre manuellement les énoncés restants.
« Le fossé entre les temps de résolutions des développeurs autonomes et ceux assistés d’une IA Gen a continué à se creuser. »
Depuis, de nouveaux LLM (Large Language Model) ont fait leur apparition et les existants ont sorti de nouvelles versions toujours plus performantes les unes que les autres. Le fossé entre les temps de résolutions des développeurs autonomes et ceux assistés d’une IA Gen a continué à se creuser. D’ailleurs, le Dev Contest BPCE au mois de décembre dernier a nécessité de faire des classements séparés pour permettre aux développeurs augmentés de participer à l’événement sans frustrer les autres face à un manque d’équité. Ceux qui participent en misant tout sur leurs capacités de réflexion et de construction algorithmique étaient clairement désavantagés par rapport à ceux qui sollicitaient ChatGPT, Copilot ou Gemini. La différence de temps entre les vainqueurs des deux catégories était sans appel.
Face à l’utilisation de plus en plus répandue de ces assistants et à l’impossibilité de vraiment empêcher les compétiteurs d’y avoir recours, Isograd a préféré revoir les règles du jeu, remplaçant les exercices d’algorithmie pure (où il faut trouver LA solution à un problème donné dans un temps acceptable) par des exercices d’optimisation : ici, le problème est trop complexe pour pouvoir être résolu de manière absolue. Il faut donc écrire un programme qui fournira la meilleure solution possible, d’après un critère donné, toujours dans un temps imparti, et les compétiteurs seront classés en fonction de la performance de leur code pour maximiser le critère retenu. Le programme sera évalué en le faisant tourner sur plusieurs scénarios et en additionnant les scores obtenus pour chacun de ces jeux de test.
« Le changement du critère de succès a donc ouvert la porte à de nouvelles possibilités. »
Le changement du critère de succès a donc ouvert la porte à de nouvelles possibilités et à différentes stratégies afin d’améliorer son classement. Pour optimiser leur score, certains ont pu opter pour des stratégies à base d’heuristiques comme des algorithmes gloutons, qui donnent généralement des résultats reproductibles, mais dont la capacité à s’approcher de l’optimum théorique peut être limitée si cet optimum diverge trop par rapport aux critères priorisés dans le code. D’autres se sont tournés vers des méthodes plus empiriques en partant d’une première solution valide améliorée petit à petit avec des modifications plus ou moins aléatoires, qui peuvent prendre du temps à converger vers une bonne solution, mais qui peuvent aussi ponctuellement produire un très bon résultat sur un coup de chance (seul le meilleur score étant retenu pour le classement final, relancer le même code plusieurs fois d’affilées peut permettre de gagner des places grâce à cette part d’aléatoire). D’autres encore privilégiaient une approche multiple en fonction des données d’entrées : sur un scénario de taille raisonnable, une exploration exhaustive des solutions permettait de maximiser le score, tandis que les jeux de données trop conséquents pour être évalués de cette manière étaient traités de manière moins efficace.
L’espoir des organisateurs était donc que cette édition chamboule un peu les habitudes des participants et fasse émerger de nouveaux profils parmi les gagnants, l’idéal étant qu’on voit se démarquer ceux qui auraient trouvé le meilleur compromis entre la part de l’IA et l’expérience du développeur. Malheureusement, la pratique n’a pas confirmé la théorie. Le vainqueur de l’édition 2025 a surtout brillé par sa maîtrise du prompt qui lui a permis d’arriver à une solution efficace dans un langage qu’il ne maîtrisait pas vraiment (il avait commencé en TypeScript, avant de se rabattre vers le C pour avoir de meilleures performances).
« Les IA Génératives ont aujourd’hui atteint un niveau qui leur permet de rivaliser avec les meilleurs codeurs. »
On pourra donc retenir de cet événement que les IA Génératives ont aujourd’hui atteint un niveau qui leur permet de rivaliser avec les meilleurs codeurs, en produisant instantanément des solutions à des problèmes relativement complexe. Pourtant, elles sont encore loin d’être parfaites, et beaucoup ont buté sur les erreurs de « compréhension » de l’exercice (des règles oubliées ou mal interprétées par l’IA) qui ont produit du code inefficace, voire complètement erronés. Dans ces cas-là, le temps passé à essayer de débuguer le code généré était relativement conséquent, parfois bien plus que de coder une solution manuellement. La phase de test et de validation du code est donc essentielle pour s’assurer que ce qui a été généré répond réellement à la question qui a été posée. C’est chose aisée dans le cadre d’un concours de code où les tests sont fournis et les erreurs de logiques sont signalées par la plateforme, ça l’est moins lorsqu’on est sur un projet pour lequel on va devoir développer à la fois le code de production et celui de test. Et la capacité à bien formuler un prompt aura été déterminante pour arriver à la meilleure solution rapidement. A moins que ça ne soit qu’une question de statistique… Lorsque des centaines de développeurs interrogent une IA, difficile de dire dans quelle proportion les meilleures réponses sont dues à la pertinence du prompt ou au fait que parmi des centaines de réponses, il y en aura forcément quelques-unes qui sortent du lot.