HASHCODE 2022, retour en … images et en mots !

La semaine dernière, les développeurs de Kanoma de Nantes et de Rennes ont participé au HASHCODE 2022, challenge porté par Google.
Quoi de mieux que de tendre le micro 🎤 à ceux qui ont vécu cette soirée, forte en sollicitations neuronales et en challenges algorithmiques 🤯, pour avoir leurs retours.

Tu ne connais pas ce challenge ? Plus d’infos en cliquant ICI.

Maintenant, 2 options s’offrent à toi, Ô lecteur de cet article.

Option – tu as du temps :
Tu as du temps, tu veux comprendre comment les kanomiens ont vécu cette soirée, tu veux avoir leurs conseils et préconisations pour réussir ce genre de challenge ?
Voici ci-dessous quelques feedbacks. On s’est permis un petit ajustement orthographique histoire d’éviter les fractures rétiniennes ^^ mais le texte est resté brut, dans sa version originale.
Bonne lecture à toi !

Option 2 – tu es pressé.e :
Tu as envie d’un résumé car ton temps est compté.
Voici donc ci-dessous un condensé de leurs réflexions et leurs conseils pour se préparer au mieux et bien s’organiser pendant ce type de challenge.

Hashcode chez kanoma, le résumé

Pourquoi faire un Hashcode ?

  • Pour le challenge, pardi ! Cela permet de sortir de ta zone de confort et te confronter à une réalité technique tout autre de ce que tu peux vivre au travers de ta mission, de ton rôle au quotidien.
  • Cela te permet de remettre un peu le nez dans de l’algo !
  • Pour passer un moment avec tes collègues et échanger avec eux autrement qu’en sirotant une bière et en débattant sur la dernière version du framework react.
  • Pour gagner des tee-shirts google hashcode !

Bien gérer son temps !

  • 4 heures, cela passe vite ! Il faut favoriser le travail en équipe > il est important de s’organiser et travailler en binôme pour éviter de se perdre et se soutenir dans l’effort !
  • 4 heures, c’est long ! Il faut avoir un environnement propice au calme pour être efficace et optimiser ta concentration > prévoir un espace où les personnes peuvent s’isoler au besoin le temps d’un dév.

Se préparer, s’organiser et communiquer !

  • Ne pas hésiter à s’entraîner avec les exercices qui sont envoyés 2 mois avant. C’est beaucoup plus simple que le challenge final, mais ça permet de s’échauffer !
  • Quand le sujet est donné, ne pas se lancer tête baissée. Prendre quelques minutes pour assimiler le sujet, les consignes. Échanger en groupe est conseillé pour vérifier si le sujet a bien été compris et se répartir les actions, les tâches.
  • Préparer un socle commun utilisable ensuite par différentes techno ( ex : docker + php + xdebug ) histoire de développer tous sur les mêmes bases/versions.

Garder en tête le principe de cet exercice :

  1. Lire un fichier en entrée.
  2. Le transformer en model objet.
  3. Faire l’algo de traitement.
  4. À partir du résultat trouvé, générer un fichier de sortie.

Ne pas oublier :

  • Boissons et nourritures pour garder l’énergie ! 😋
  • Savourer et kiffer d’être avec les collègues ! 🤗

Hashcode chez Kanoma, quelques feedbacks…

Jalil

« De mon point de vue, ce qui marche généralement le mieux, c’est de faire du “binômage” sur un seul poste et d’alterner les phases de réflexion et de dev.
Il est difficile pour une personne d’être concentrée pendant 3h45, alors qu’à 2, c’est déjà plus réaliste.
Je pense que c’est une perte de temps de travailler chacun dans son coin et merger des commits/branches.
Et oui : si on arrive les mains dans les poches, on passe les 2/3 de la session à mettre en place le mapping et la production du format de sortie. Il faut avoir un projet template tout fait où l’on se concentre sur le modèle objet qu’on va utiliser et l’algo de résolution.
Le groupe doit s’isoler sinon ça devient vite le bazar. »

Benjamin G.

« Un codingame est finalement assez éloigné de ce que nous avons l’habitude de faire. Déjà, nous ne faisons pas beaucoup d’algo pure comme ça peut être le cas ici.
De plus, nous sommes habitués à bosser dans des environnements spécifiques ou avec des framworks. Là, il n’y a rien du tout donc la préparation doit être adaptée.
Par exemple : s’attendre à devoir lire des input et à en sortir. Cela peut paraître simpliste, mais ça ne l’est pas.
Concernant le déroulement, il faut s’être mis ok sur qui fait quoi avant. Les 4h sont passées hyper vite. Certes, on a fait une pause pizza mais quand même.
Ex : on push sur quelle branche – on fait des MR ? On rebase ?
On s’est posé la question pendant le déroulé du jeu.
J’ai relevé quelques points pour les prochaines fois
La 1er chose qui me semble essentielle c’est un socle utilisable par techno ( ex : docker + php + xdebug ) histoire qu’on dev tous sur les mêmes bases/versions.
2ème chose importante, le découpage du projet et des tâches. TRES important. Il ne serait pas inutile qu’une personne soit désignée comme PO ou responsable de cette tâche. Quitte à ce qu’il ne soit pas tech.
S’isoler et être bien installé est essentiel. »

Ivan

« Difficile de travailler pendant que les autres réfléchissent aux optimisations, trop envie d’avoir l’attention partout !
Un sujet assez complexe qui a demandé un grand temps d’assimilation et d’adaptation au niveau du code avant de vraiment pouvoir commencer à penser à des optimisations
Par contre, c’était cool, ça fait travailler avec des collègues Kanomiens, il y avait des bonnes pizzas .. à refaire !
Pour la prochaine fois je recommande aux devs de s’isoler, que ce soit avec un casque audio ou même dans une salle à part, et aussi peut-être d’essayer de paralléliser plus surtout les parties input/output.
Peut-être mettre sur le papier un modèle commun, pour que tout le monde parte sur la même base .. Ça peut être intéressant d’en rediscuter à tête reposée ! »

Victor

« Premier HashCode pour moi ou défi de ce genre.
J’ai trouvé ça plutôt sympa, pas facile, mais je m’attendais à un niveau plutôt élevé donc ça ne me surprend pas.
J’ai mis du temps à vraiment rentrer dans le sujet pour être sûr de ce qu’il fallait faire.
Je rejoins le reste de l’équipe sur plusieurs points:
– travail en pair programming me semble intéressant dans ce cas pour éviter de se perdre
– être le plus possible au calme
– préparer en avance quelques bout de code utilitaires
Ce que je rajouterai:
– Prendre une demi heure au début entre toutes les équipes pour poser le sujet et s’assurer que tout le monde ait bien compris l’énoncé et que l’on se mettent d’accord sur ce qu’il faut réussir à / comment l’envoyer: On l’a fait un peu mais peut être formaliser de manière à ce que chacun s’exprime. »

Pierre

« Complexité très haute cette année, on n’a pas du tout réfléchi à des algo, juste préoccupé sur la modélisation de l’exercice
Après 1h – 1h30 en commun, finalement c’est très difficile de coder à plusieurs. Quand une personne a modélisé / manipulé les données, les autres ont beaucoup de mal à aider
Juste à deux équipes, on avait déjà beaucoup de bruit de fond qui empêche de vraiment s’isoler et se concentrer
Bravo à @Ivan KOLODZIEJCZYK pour avoir réussi à soumettre une solution !!
Bravo à @Jalil EL HAITI qui a réussi à faire l’exercice tout seul depuis chez lui
Bravo à la team PHP qui n’a rien lâché jusqu’aux toutes dernières secondes !!
Bravo à @Gwénaël Provost qui arrive à produire une réponse en JS en seulement 2h »

Bravo à vous les tekos ! 🤩

RDV est pris pour l’année prochaine 💪