Le test Codility : ce que mesure réellement votre score

· 8 min de lecture

La plupart des gens échouent à un test Codility en croyant l'avoir réussi. Les exemples dans l'énoncé de la tâche affichent tous la bonne réponse, l'éditeur indique OK, la soumission passe — et le rapport revient à 40 %. La raison est simple et il faut le savoir avant de passer un test : les exemples visibles ne comptent pas dans le score.

Ce qui compose réellement le score

Chaque tâche est évaluée selon deux axes distincts, qui sont affichés séparément.

  • Correctness — la proportion de cas de test cachés où votre sortie correspond à celle attendue. Une tâche comporte au moins six cas évalués, et votre score pour la tâche est le pourcentage de ceux qui réussissent. Les exemples présentés dans l'énoncé sont des démonstrations, pas des cas évalués.
  • Performance — si la solution reste dans les limites de temps et de mémoire lorsque la taille d'entrée augmente. Cela ne s'applique qu'aux tâches où la scalabilité compte dans la notation, et elle est évaluée même lorsque toutes vos réponses sont correctes.

C’est ce second axe que les candidats négligent souvent. Une boucle O(n²) correcte sur une tâche conçue pour O(n log n) donne la bonne réponse dans chaque cas où elle termine, mais perd la plupart des points de performance, car les cas de grande taille expirent.

Lisez les contraintes comme un budget de complexité

Le bloc des contraintes n’est pas décoratif. Il indique la complexité que la tâche accepte, et c’est l’élément le plus utile de la page.

  • N jusqu’à 100 000 ou plus — tout ce qui est quadratique dépassera le temps imparti. On vous demande un tri, une hash map, deux pointeurs ou une somme préfixe.
  • N jusqu’à quelques milliers — O(n²) convient généralement, et chercher une solution plus astucieuse vous fait perdre du temps dont vous aurez besoin ailleurs.
  • Valeurs jusqu’à 2 milliards — la tâche indique qu’un accumulateur 32 bits débordera. Dans un langage où cela compte, c’est le cas ici.

Déterminez la complexité cible avant d’écrire la première ligne. Lors d’un test noté automatiquement, personne ne vous attribuera de points pour un bon instinct que vous n’avez jamais implémenté.

Où les points vont réellement

Trois schémas expliquent la majeure partie du score perdu, et aucun d'eux ne concerne la capacité algorithmique.

  • Cas limites que personne n’a testés. Entrée vide, un seul élément, tous les éléments égaux, les valeurs minimale et maximale autorisées. Ce sont exactement les cas cachés, car ce sont les plus faciles à écrire.
  • Erreur d’un de bord à la limite. Les intervalles inclusifs vs exclusifs coûtent plus de points Codility que n’importe quelle structure de données.
  • Manquer de temps sur la tâche trois. Le chronomètre couvre l’ensemble du test, pas chaque tâche. Une personne qui laisse un brute force fonctionnel sur chaque tâche obtient généralement un meilleur score qu’une personne avec une solution parfaite et deux tâches vides.

Le crédit partiel existe, alors utilisez‑le

Comme le score est un pourcentage de cas, un brute force honnête vaut bien plus qu’un éditeur vide. La séquence qui donne le meilleur résultat sous pression temporelle est presque toujours la même : écrire la solution évidente, la soumettre, puis l’optimiser et la soumettre à nouveau. Vous encaissez d’abord les points, puis vous les améliorez.

Si vous savez que votre solution est trop lente et que vous ne pouvez pas la corriger, laissez‑la. Une soumission expirée sur les gros cas récupère tout de même chaque petit et moyen cas qu’elle réussit.

Les dix dernières minutes

Arrêtez d’écrire du nouveau code. Exécutez chaque tâche une fois avec une entrée vide, une fois avec un seul élément, et une fois avec la plus grande valeur autorisée par les contraintes. Cette passe rapporte plus de points qu’une quatrième tentative sur la tâche difficile, et cela ne prend que trois minutes.

Une autre chose à savoir plutôt que de la découvrir après : la plateforme enregistre ce qui se passe dans l’onglet, y compris les changements de focus et les blocs collés, et l’employeur voit ce résumé à côté de votre score. Planifiez votre test comme quelque chose que vous terminez d’une traite, pas comme un assemblage provenant d’autres fenêtres.

FAQ

Les exemples de l'exercice comptent-ils dans mon score Codility ?

Non. Les exemples dans l’énoncé ne sont que des illustrations. Votre score correspond au pourcentage des cas de test cachés que votre solution réussit, c’est pourquoi une solution qui traite tous les exemples affichés peut tout de même obtenir un score faible.

Quel score Codility faut‑il obtenir pour réussir ?

Il n’existe pas de seuil de réussite universel — c’est l’employeur qui le définit. En pratique, la plupart des entreprises examinent le pourcentage total sur l’ensemble des exercices et vérifient si les scores de performance montrent que vous avez compris la complexité attendue.

Puis‑je revenir à un exercice précédent ?

Dans la plupart des configurations de test Codility, oui : le test entier partage un seul chronomètre et vous pouvez naviguer entre les exercices tant que le temps n’est pas écoulé. C’est précisément la raison pour laquelle on peut d’abord soumettre une solution brute, puis y revenir pour l’optimiser.

Codility détecte‑t‑il le changement d’onglet ou le code collé ?

La plateforme enregistre les changements de focus et les gros collages, puis les transmet à l’employeur avec le score. Elle ne vous élimine pas automatiquement, mais le résumé est visible par toute personne qui consulte votre rapport.

Comment l'application aide ici

À lire ensuite