DEV Community

Code en musique: Ce que le Piano peut vous apprendre sur la programmation

La pĂ©riode de fĂȘte arrive, comme chaque annĂ©e en dĂ©cembre, vous ne pouvez pas Ă©chapper Ă  deux choses :

  • L’AventOfCode si vous ĂȘtes dĂ©veloppeur.
  • Jingle Bell Rock si vous allez dans un centre commercial.

C’est comme ça, ce n’est pas moi qui fais les rùgles.

L’AventOfCode, ce sont des puzzles de programmation, un peu comme ce qu’on peut retrouver toute l’annĂ©e sur LeetCode. Le but affichĂ© est de devenir un « meilleur programmeur ». Et je dis bien programmeur, pas dĂ©veloppeur.

Alors, comment devenir meilleur en programmation ? Est-ce que je dois faire du LeetCode tous les jours ? Je n’ai jamais eu Ă  rĂ©implĂ©menter un merge sort au boulot, dois-je vraiment apprendre Ă  le faire ?

WOW, doucement !

Tiens, d’ailleurs, vous savez que piano veut dire doucement en italien ? Ça tombe bien, avant de parler de programmation, on va parler de piano. Mais restez, ça va ĂȘtre bien.


Jouer du piano

Quand je ne suis pas derriùre un clavier d’ordinateur, vous pouvez sans doute me trouver derriùre un piano (clavier, piano, ordinateur, vous l’avez ? Ok, vous l’avez).

Et figurez-vous qu’en apprenant le piano, on peut faire pas mal de comparaisons avec la programmation.

Jouer du piano, qu’est-ce que c’est ? Ce n’est pas connaĂźtre le nom ou le son de chaque touche par cƓur. (On sait en gĂ©nĂ©ral oĂč se trouve le do. Ensuite, par la position des mains par rapport Ă  la note do, on sait quelle note jouer. Mais on n’est pas obligĂ© de savoir exactement oĂč se trouvent le la et le si, par exemple).

Jouer du piano, c’est rĂ©ussir Ă  enchaĂźner les bonnes notes, dans le bon rythme. C’est vraiment la combinaison des deux. Si vous enchaĂźnez plein de notes alĂ©atoires, vous faites du bruit, mais pas de la musique.

Si vous enchaünez les bonnes notes, mais qu’il y a 10 secondes de silence entre chaque, on n’a pas de musique non plus, car il n’y a pas de rythme.

Pour travailler ces deux compĂ©tences, on a plusieurs exercices. Pour les bonnes notes, on va, par exemple, jouer trĂšs len-te-ment, hors rythme donc, car le but est d’identifier : la note Ă  lire sur la partition et le doigt Ă  utiliser pour jouer cette note. Sachant que parfois, les mains se dĂ©placent, il faut donc aussi s’entraĂźner Ă  repositionner ces mains. Pour obtenir cette mĂ©moire musculaire, on va jouer plusieurs notes ou mĂ©lodies de façon lente, voire trĂšs len-te.

Pour travailler le rythme, on va jouer des notes ou des enchaĂźnements simples. Car le but n’est pas tant de jouer une mĂ©lodie que de jouer des notes dans le temps imparti.

Et bien sĂ»r, plus on progresse, plus les exercices deviennent difficiles, mais le but final est toujours le mĂȘme : ĂȘtre prĂȘt, Ă  un moment, pour jouer une musique en combinant justesse des notes et rapiditĂ© pour garder le rythme.

Quand vous avez un niveau moyen au piano, et que vous jouez pour la premiùre fois une musique, si elle est facile (une comptine pour enfants, par exemple), vous pourrez la jouer quasiment parfaitement du premier coup ou avec trùs peu d’entraünement.

À l’inverse, si vous essayez une musique plus complexe (du jazz, par exemple), vous allez devoir faire plus d’exercices de justesse des notes et de rythme en lien avec cette musique en particulier.

Autre fait intĂ©ressant : vous pouvez apprendre Ă  jouer une musique exigeante, ne plus y toucher pendant quelques mois et tenter de la jouer Ă  nouveau. Vous serez probablement trĂšs mauvais au premier essai, mais trĂšs vite, vous retrouverez vos marques et serez capable de la rejouer parfaitement sans refaire toute la phase d’apprentissage.

Si vous voulez progresser au piano, vous allez aussi devoir sortir de votre zone de confort. Vous pouvez jouer des comptines pour enfants toute votre vie, mais cela ne vous aidera pas à jouer du jazz ensuite sans entraßnement. Il faut donc jouer différents styles, de différents niveaux, avec des rythmes variés.

Bref, pour apprendre Ă  jouer du piano, vous devez :

  • Faire diffĂ©rents exercices pour amĂ©liorer les diffĂ©rentes compĂ©tences nĂ©cessaires pour jouer de la musique.
  • Jouer des morceaux variĂ©s avec une difficultĂ© crescendo.
  • Rejouer de temps en temps des musiques pour reprendre vos marques rapidement et travailler votre mĂ©moire musculaire.

Et la programmation dans tout cela ?

Eh bien, pareil.

Voila, merci de m'avoir lu, a la semaine prochaine


Et la programmation dans tout cela ?

Les puzzles type LeetCode, par exemple, sont de petites mĂ©lodies. Pour les rĂ©ussir, il faut Ă  chaque fois utiliser les bonnes structures de donnĂ©es et les bons algorithmes (c’est l’équivalent des notes de piano), et le faire dans le temps imparti (c’est notre rythme).

Si vous vous lancez pour la premiĂšre fois sur un LeetCode qui demande d’effectuer un merge sort, vous devriez d’abord, hors puzzle, aller apprendre ce qu’est un merge sort, comment il fonctionne, comment le coder. Len-te-ment. Ensuite, vous pouvez tenter de le faire le puzzle dans le temps imparti. Peut-ĂȘtre qu’au dĂ©but, vous serez hors dĂ©lai, mais Ă  force d’entraĂźnement, vous aurez le bon rythme.

Une fois cet exercice rĂ©ussi (le bon algo, dans le bon temps), vous pouvez aller explorer d’autres puzzles, d’autres mĂ©lodies. Certains seront proches, d’autres moins. Augmentez la difficultĂ© pour progresser, mais ne vous attendez pas Ă  les rĂ©ussir du premier coup. Ce n’est pas l’objectif.

Revenez dessus quelques mois plus tard (pour un projet ou pour un entretien). Vous verrez que, mĂȘme si l’implĂ©mentation sera un peu plus longue au dĂ©but, vous reprendrez trĂšs vite vos marques et rĂ©ussirez le puzzle dans le temps imparti, trĂšs rapidement.


Je suis pianiste, pas musicien ; je suis programmeur, pas développeur

Maintenant, est-ce que les puzzles de code aident Ă  devenir un meilleur programmeur ? Si vous en faites rĂ©guliĂšrement, oui, sĂ»rement. Mais est-ce que cela fait de vous un meilleur dĂ©veloppeur ? Pas vraiment, car ce n’est pas la mĂȘme chose.

Si je joue du piano, je peux jouer Jingle Bell Rock chez moi sans problĂšme. Super, je passe du bon temps, et ça ajoute Ă  l’atmosphĂšre un parfum de fĂȘte. Cependant, jouer du piano ne m’apprend pas Ă  :

  • Écrire mes propres musiques.
  • Jouer avec d’autres instruments.
  • Jouer dans un orchestre


Bref, plein de choses. Jouer du piano ne fait pas forcĂ©ment de moi un musicien. Je suis pianiste, pianiste amateur, c’est tout, et c’est dĂ©jĂ  trĂšs bien.

Eh bien, ĂȘtre fort en programmation, c’est pareil. Ça ne vous apprend pas Ă  ĂȘtre dĂ©veloppeur (le mĂ©tier). Ça ne vous apprend pas Ă  structurer votre code, Ă  Ă©crire de la documentation ou Ă  faire plein d’autres choses dont un ingĂ©nieur a besoin. Cela vous apprend seulement Ă  rĂ©soudre des puzzles de programmation.

Alors oui, parfois ces problĂšmes peuvent ĂȘtre rĂ©utilisĂ©s dans un cadre professionnel (je parcours trĂšs souvent des arbres au boulot, par exemple, avec du DFS, du BFS), mais ça reste plutĂŽt anecdotique par rapport Ă  toutes les autres parties de mon job.


Joyeuse fĂȘte, si vous avez Jingle Bell dans la tĂȘte, c'est normal

Top comments (0)