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)