Prog Rocks! – Réflexion sur la corrélation entre programmeurs et musiciens

J’ai toujours eu l’impression qu’il y avait beaucoup de musiciens parmi les programmeurs.

Il me parait anormalement courant de constater que tel ou tel collègue fait, ou a fait de la musique. Ou au moins en écoute beaucoup. Genre « Ah tu fais de la musique ? Ah toi aussi ? ».

Dans une mission, il y avait même une guitare disponible à tout moment dans l’open-space, avec pas mal de monde capable de s’en servir, et une bonne part des autres parlant de leurs autres instruments préférés et de leurs aventures musicales plus ou moins récentes.

On ne retrouve pas cela avec les autres formes d’art. Il y a plein de développeurs musiciens, mais des développeurs qui font du dessin ? De la sculpture ? Qui écrivent des romans ? Est-ce qu’on peut voir dans les open-space de devs des feuilles blanches et la gouache, comme on voit des guitares ?

Dans les conférences, on voit souvent des gens qui parlent de générer la musique à partir de code, mais rarement un tableau abstrait (ce serait pourtant facile).

Pendant longtemps, la coïncidence m’a intrigué, sans que j’y prête beaucoup d’attention. Puis au fil du temps, diverses associations d’idées, constatations, rapprochements, me sont venus à l’esprit. J’ai donc décidé de me plonger sérieusement dans le sujet et de noter mes pensées, de façon organisée.

Prog Rocks!

Prog RocksUn mot sur le titre de ce document : il s’agit à la base du titre d’une compilation de rock progressif, un sous genre du rock assez technique, influencé par le jazz et la musique classique, dont Pink Floyd, Genesis, King Crimson ou Yes sont des représentants typiques et célèbres.

Prog est à la base l’abréviation de « Progressive », mais ça marche aussi avec « programmation », et en anglais to rock signifie « être génial », « déchirer » .

Notez : un jeu de mot. C’est un pattern. On y reviendra.

Il y a corrélation

Can you do musical composition or arrangement ?

Do you have a lively imagination ?

IBM

Dans cette publicité de 1956, alors que l’ingénierie logicielle n’existe pas encore vraiment, et que peu en dehors des spécialistes ont jamais entendu parler de programmeurs, et moins encore ont envisagé cette carrière, IBM fait déjà la connexion entre la musique et programmation.

On peut voir aussi dans cette publicité la relation entre la programmation et les mathématiques, ce qui est beaucoup moins surprenant, surtout à l’époque, quand le domaine était encore beaucoup dans le théorique, en tout cas par rapport à aujourd’hui.

Dès les années 50, et même sans doute avant, il était déjà clair (au moins pour les recruteurs de big blue), que les musiciens et les programmeurs avaient le même genre d’esprit.

Dans ma propre vie et carrière, j’ai pu constater qu’il y a beaucoup de musiciens parmi nous. Plus que dans la population générale, et comparativement peu de pratiquants des autres arts, comme le dessin ou la sculpture.

Je n’ai pas vraiment de chiffres Eric Eliott, qui a beaucoup plus de followers que moi, a fait un sondage parmi ses abonnés pour voir combien étaient musiciens. Résultat : quasiment la moitié. Dans un blog, il compare ce chiffre au 30% d’américains qui ont fait de la musique récemment.

De même dans les meetups et les conférences, on voit souvent des sujets autour de la musique.

Par exemple à Devoxx France 2016, Fred Cécilia, qui lie IOT et machine learning pour faire de la musique (c’est d’ailleurs ce talk qui a déclenché la rédaction du présent document – oui je sais la gestation a été longue). Ou encore à Best of Web 2015 la démonstration de l’API Web Audio par les chercheurs de l’Ircam, ou ce meetup de ladies of code dédié à l’interaction code+art.
Musical names

Un autre signe de corrélation : on a souvent des références musicales dans les noms des langages, des librairies, des frameworks.

Dans l’autre sens, l’outil informatique est beaucoup utilisé pour produire de la musique, il suffit de scanner cette page listant les langages de programmation sur le sujet pour s’en convaincre.

Similarité des domaines

En y réfléchissant, la musique et la programmation présentent pas mal de similarités, au niveau de la forme, et au niveau de la démarche.

Le lien ce sont les mathématiques

Il existe un lien évident entre la musique et la programmation : les mathématiques. Les deux domaines ont étés fortement influencés par cette science, voir y puisent leurs origines.

Origines et influences mathématiques de la programmation

Dans la majorité des cas, on fait bien peu de mathématiques dans notre quotidien de développeur. Nous faisons de la plomberie de flux de données, du mapping de propriétés, écrivons quelques règles de logique et de transformation, et affichons tout ou une partie de cela en se battant avec les bugs des navigateurs.

mathDifficile de rapprocher ce travail des constructions abstraites des mathématiciens.

Pourtant tout le monde, en tout cas parmi ceux qui ont étudié l’histoire de l’informatique et/ou la programmation fonctionnelle, sait que la programmation est un spin-off des mathématiques.

Le mot algorithme vient du nom latinisé du mathématicien perse Al-Khawarizmi. Il a été utilisé par Ada Lovelace, premier(e) programmeur(euse) de l’histoire. Nos programmes sont des cas particuliers de machines de Turing, et nous les exécutons sur des machines avec l’architecture décrite par Von Neumann. A chaque fois que nous écrivons function dans une application node.js, nous faisons référence au lambda calcul d’Alonzo Church.

Origines et influences mathématiques de la musique

Bien sûr on peut modéliser tout l’univers avec des mathématiques, trouver le nombre d’or dans chaque brin d’herbe, appliquer de la trigonométrie sur les triangles de Picasso, etc. Mais on ne peut nier que la musique est un art où les mathématiques sont particulièrement présentes.

PythagoreLa légende raconte que Pythagore, lors d’une promenade près d’une forge, aurait remarqué que la note produite par le choc du marteau sur l’enclume dépendait de la taille de celui-ci, et donc de sa masse. Si on prend des marteaux de 2, 3 et 4 unités de masse, le rapport entre le marteau de 2 et le marteau de 4 est une octave, le rapport entre le marteau de 2 et 3 est une quinte. Dans l’antiquité seuls ces deux intervalles étaient considérés comme assonants (c’est à dire comme sonnant juste). Cette simplicité correspondait très bien à leur philosophie que le monde était régi par les nombres. La musique est « l’art du nombre rendu audible », et longtemps classée parmi les sciences.

Bien sûr les homo sapiens du paléolithique faisaient déjà de la musique bien avant que les grecs n’expliquent le monde par des rapports de nombres. On chantait déjà dans les grottes à la lumière du feu, en s’accompagnant de percussions et en faisant vibrer les cordes d’arc.

Cependant, la culture gréco-romaine est celle qui a donné naissance à la culture européenne. La musique chantée par les moines au moyen âge, avec ses règles strictes d’harmonie héritée de l’antiquité est la racine de toutes les musiques occidentales modernes.

Nous savons aujourd’hui que chaque son, chaque note, est caractérisée par sa fréquence et que les intervalles d’octaves, de quinte, etc… correspondent aux fréquences qui entrent en résonance, plus ou moins naturellement, avec la fréquence de base. L’octave a par exemple une fréquence double de celle de la note de base.Cycle des quintes

Les intervalles de quinte et d’octave ont été utilisés, de manière assez rigoureuse et, oui, mathématique, pour construire, progressivement, la gamme moderne que nous avons sur nos claviers. Voir par exemple le cycle des quintes, ou les calculs pour construire le tempérament égal.

De même la composition suit des règles précises, la construction de canon, de contrepoints, de fugues, etc… Exige du créateur une démarche basée sur les motifs, les calculs, les formules.

Les correspondances vont aussi dans l’autre sens. En creusant un peu, on peut trouver dans les exercices que font les musiciens quotidiennement depuis des siècles des notions mathématiques qui ne seront formalisées que beaucoup plus tard. Par exemple en associant un rapport de fréquence et un intervalle, on introduit un logarithme. De même, l’ensemble des notes, munie de l’addition d’intervalles avec le principe d’identification des octaves produit un groupe.

Pour approfondir le sujet, allez lire l’excellent papier de Rémi Coulon.

Les patterns

On dit que les mathématiques sont la science des motifs, des patterns. Le fait qu’un nombre soit pair, premier ou parfait est un pattern. Qu’un triangle, quelle que soit sa taille puisse être rectangle ou isocèle est un pattern. De même pour des droites parallèles, des courbes sinusoïdales, des fractales, etc…

Ensemble de JuliaLes mathématiques sont l’art d’expliquer et de représenter le monde, et au delà, de créer des univers, en déduisant et inventant des abstractions, qui sont des motifs répétables de réalité.

En informatique, il y a des patterns partout. Par construction. Tout programme est un arbre de modules, de fonctions, d’expressions. On retrouve les mêmes structures partout. Et l’art de la programmation, fonctionnelle, déclarative, orientée objet, est de trouver la bonne abstraction, le bon motif, qui permettra une modélisation efficace et élégante d’une réalité exécutable.

Le rapport avec la musique ? Il y a aussi des patterns partout : mesures, mélodies, accords, tempo… D’ailleurs une musique sans aucune forme de répétition est inécoutable.

La musique, comme un programme, a un côté fractal, une pièce est structurée de façon macroscopique et microscopique, de l’organisation des mouvements et thèmes jusqu’aux polyphonies et accords, en passant par les phrases, les contrepoints, les mesures.

Mais non, le lien c’est le langage

Le lien c’est le langage. C’est la position défendue par Marco Panigada sur la page dédiée au sujet sur le wiki C2.

Langage informatique, langage mathématique, langage musical

La musique, comme la programmation est une sorte de langage. Cette comparaison n’est pas originale, c’est un lieu commun depuis des siècles de parler de langage musical et des émotions que les compositeurs transmettent. De même la notation classique de la musique, sous forme de partitions ou tablatures, est clairement un langage écrit, comme les hiéroglyphes de la vallée du Nil ou les rûnes scandinaves.

La programmation se fait avec des langages. Ceux-ci ont une grammaire, des mots (les tokens), une syntaxe, comme détaillé dans la hiérarchie de Chomsky. Ils ont aussi une expressivité, une personnalité unique.

Même si la comparaison n’est pas évidente avec les langages naturels ou le langage musical, les langages de programmation sont des moyens d’expression. Les langages naturels ont aussi une grammaire, une syntaxe, des patterns reconnaissables, c’est d’ailleurs un jeu amusant de reconnaître un langage qu’on ne parle pas à son rythme et à sa sonorité. De plus on peut insérer du langage naturel sous forme écrite dans un programme.

Un programme est quelque part la forme écrite d’une création exécutable, exprimée suivant la personnalité du langage choisi, du programmeur ou de l’équipe de programmeurs.

La musique est aussi un moyen d’expression, une forme de langage, avec un vocabulaire de notes, une grammaire de mesures et de tempo, des règles d’harmonies, et permet d’exprimer beaucoup, et de créer des choses. La comparaison a été faite de nombreuses fois, et une grande majorité des créations musicales, instrumentales ou non, racontent quelque chose.

Le lien avec le langage est plus frappant encore sous forme écrite, ce qui n’a rien d’étonnant, puisque le fait de transcrire sur un support implique en soi l’existence d’une forme de communication.

Les mathématiques aussi, sont un langage, une façon de représenter le monde, des idées, des concepts, et de les développer.

Literate Programming - Knuth - WikimédiaDans les trois cas (musique, programmation, mathématiques), le langage est à la fois le média de communication et l’artefact cognitif permettant d’approfondir la discipline, la création, la propre compréhension de l’auteur, et le langage lui même.

Un cas intéressant de jonction entre la programmation et le langage est le concept de Literate Programming (programmation lettrée), préconisé par Donald Knuth. Il s’agit d’écrire le programme comme un essai, en suivant la logique et l’ordre des pensées qu’un humain peut suivre. Le programme est ensuite dérivé de cette source grâce à des macros.

Jeux et patterns

Dans les langages naturels

Les jeux de mots, que l’on peut faire en français ou en anglais sont des patterns : on joue sur la similarité des sons ou d’autres similitudes.

De même les palindromes, les anagrammes ou les ambigrammes  sont des jeux de logique, de symétrie, de patterns que l’on peut faire avec le langage naturel.

Palindrome

Un palindrome est un texte qui peut se lire dans les deux sens. Par exemple, le mot kayak, inversé, est toujours kayak.

Kayak est un palindrome est assez bref. Un autre exemple de palindrome, plus intéressant, par Alain Damasio, dans « la horde du contrevent »  :

« Et si l’arôme des bottes révèle madame, le verset t’obsède, moraliste ! »

Anagramme

Un anagramme est un texte qui est composé des mêmes lettres qu’un autre texte, par exemple « Tom Elvis Jedusor » est l’anagramme de « Je suis Voldemort » ou encore : « Rien n’est établi » est l’anagramme de « Albert Einstein ».

Ambigramme

La notion d’ambigramme est moins familière. Il s’agit de texte que l’on peut lire dans plusieurs directions et qui prend (ou non) un sens différent. Par exemple dans cette figure les mots « faux » est « vrai » peuvent être lus, selon l’orientation du texte.Ambigramme - Faux Vrai - Wikimédia

En musique

En musique également on a des patterns et des jeux de ce type, il s’agit même des techniques de bases de la composition. Les possibilités sont encore plus grandes, du fait que l’on dispose de plusieurs voix, de plusieurs instruments et de la possibilité d’utiliser des accords.

Voici quelques exemples, brièvement :

Mouvement rétrograde

ll s’agit de lire la partition à l’envers, en commençant à l’a fin. Le thème sonne alors très différemment.

On peut même avoir un palindrome musical si la partition donne quelque chose d’identique dans les deux sens

J.S. Bach l’a d’ailleurs concrétisé dans sa célèbre offrande musicale.

Mouvement contraire

Les intervalles montants sont remplacés par des intervalles descendants.

Canon

Il s’agit de répéter un thème en ajoutant ou retirant un instrument à chaque répétition (éventuellement en décalé), l’exemple le plus célèbre est le canon de Pachelbel.

On a aussi d’autres curiosités musicales comme des changements de tonalité indétectables du fait de la structure harmonique.

Similarité des démarches

En termes de démarche, les deux disciple aussi beaucoup en commun.

Créativité et ingénierie / artisanat

Dire qu’un musicien est un créatif est un pléonasme. A partir du moment où il se permet une improvisation occasionnelle ou l’écriture d’une pièce, même courte, on peut dire qu’il crée quelque chose. Même les interprètes purs, quelque part, créent, dans le sens où ils font sortir du vide une oeuvre intense, y transmettant l’intention et l’émotion du compositeur.

On en parle moins, mais faire de la musique implique des compétences relevant de l’ingénierie.

En lisant ces mots, vous visualisez peut-être un studio d’enregistrement moderne avec les impressionnantes tables de mixage aux dizaines de boutons, les appareils intimidants avec des graphiques abscons et les rivières de câbles.

En fait, même un guitariste amateur doit s’accorder, régler la hauteur de son chevalet et de ses micros, enchaîner ses effets dans le bon ordre, noter les réglages, et de manière générale, connaître pas mal de notions techniques pour produire quelque chose. Quelle est la différence entre reverb, écho et delay ? Wah et auto-wah ? Fuzz, overdrive, distortion ? Pourquoi mettre tel effet avant tel autre ? Mais cet aspect ne se limite pas aux musiques rock : même avec des instruments acoustiques, genre violon ou clarinette, il faut des connaissances techniques pour l’entretien, le réglage, l’accordage, etc…

The software Craftsman - Sandro MancusoJe parle d’ingénierie, pour que l’on fasse bien l’association avec l’ingénierie logicielle, mais tout cela a un côté artisanal : on ne calcule pas avec des formules, et une précision mathématique comme des ingénieurs, on bricole, on assemble, on teste, et le savoir faire et l’expérience permettent des résultats.

Le développement informatique est aussi, beaucoup plus de l’artisanat que de l’ingénierie. Cela peut paraître moins flatteur, mais reflète beaucoup mieux la réalité. Je suis un supporter de la philosophie software craftsmanship, qui assume ce constat et dans laquelle un artisan développeur se doit de devenir un maître dans son art, par l’expérience et l’apprentissage constant, et aussi un mentor, par le partage, à la façon des menuisiers et des forgerons d’antan.

La programmation est aussi une discipline créative : nous faisons naître des choses du néant. Parfois triviale, parfois merveilleuses. La création est même double : nous créons le code, le texte structuré, dont la beauté est indiscutable, parsemé de joyaux littéraires en langage naturel, mais aussi le résultat de l’exécution du programme, qui peut être beau, grandiose, complexe, inspirant.

Une même arborescence des livrables

Dans sa forme, un programme écrit peut être comparé à une pièce de musique (ou à un roman). Dans les deux cas on a une structure globale, perceptible de loin, une architecture, avec des sections, des parties de différentes tailles qui s’articulent et s’imbriquent. On a aussi des éléments de détails, une fonction ou une instruction ou bien une note, une phrase ou une ornementation, selon le domaine. On a clairement un côté fractal.

Le musicien, comme le programmeur, doit être capable d’alterner entre la vision globale, macroscopique de la pièce sur laquelle il travaille, et le détail, le petit élément qu’il est en train d’ajouter.

Un travail à la fois collaboratif et individuel

On réalise rarement un logiciel seul. Il s’agit presque toujours d’un travail d’équipe, où il faut savoir communiquer, s’adapter et apprendre du style des autres, orchestrer le travail pour une division harmonieuse. Il faut savoir écouter, pour recueillir les besoins et les feedbacks, avoir assez d’empathie pour comprendre les différents points de vue et connaître assez du travail de ses partenaires (même dans des domaines différents comme le design) pour suivre leurs conseils.

En même temps, entre les points de synchronisation, nous enfilons nos écouteurs et nous isolons dans notre bulle musicale (oui encore de la musique) devant nos IDE. Ce qui d’ailleurs correspond au mode opératoire de n’importe quel créatif : la création se fait la porte fermée, en isolation.

En musique aussi le travail est à la fois collectif et individuel. Individuel, car la pratique se fait en solitaire. La plupart des heures que passe un musicien avec son instrument, il les passe seul. Collectif, car souvent, on joue ou dans un groupe dans un orchestre, et il faut être synchronisé avec les autres, les écouter, avec empathie et culture. Le contact avec d’autres musiciens est aussi une excellente source d’inspiration.

Ce n’est pas un hasard si on retrouve des métaphores musicales pour le travail en équipe, que j’ai d’ailleurs volontairement utilisées dans un paragraphe précédent, comme « orchestration des tâches » ou « travailler en harmonie » (Et oui, je vous fait re-scanner l’article vers le haut pour retrouver où j’ai utilisé ces expressions, ce post est un peu récursif en fait 🙂 )

Des moyens d’expression

Je l’ai évoqué rapidement dans la partie langage : la musique et la programmation sont des moyens d’expression.

Dans les deux cas, l’exécutant utilise un artefact cognitif – j’adore cette expression, artefact cognitif, je l’ai piqué à David Allen – son instrument ou sa machine, et exprime quelque chose à travers ce média.

Dire que la musique permet l’expression de sentiments, d’émotions, de narration ne surprend personne.

Dire la même chose de l’écriture de logicielle peut-être plus. Mais même s’il s’agit du plus ennuyeux des logiciels d’entreprise, son existence a été exprimée par une équipe, à travers un outil. Plus convainquant, les programmeurs s’expriment très souvent de façon tout à fait subjective à travers les commentaires ou les noms de variables.

De plus, chaque programmeur a son style d’écriture, ses préférences, qui sont souvent reconnaissables très rapidement, et il s’exprime dans des langages qui ont des personnalités, si bien que quelques dizaines de lignes de programme forment une structure particulière d’une grande individualité.

Enfin quand on développe une interface – qu’elle soit graphique, textuelle ou autre – on lui donne une forme, par définition subjective, qui traduit la personnalité et les préférences du programmeur.

Similarité d’esprit

QI et intelligence générale

Bien que la définition de l’intelligence soit un sujet de débat, il existe une métrique à laquelle tout le monde pense quand le sujet est évoqué : le QI. Le QI mesure les aptitudes en logique/mathématiques et en langage de la personne examinée.

Mathématiques et langage ? Quelle coïncidence! Ce sont les liens que l’on a trouvé entre musique et programmation.

Les deux domaines attireraient donc des personnes ayant un bon QI, ou qui s’y sentent à l’aise pour cette raison.

D’autres observations vont dans ce sens : les hauts QI sont souvent des gens créatifs, cela fait partie des symptômes permettant de les repérer. Autre point, l’association Mensa, dont le critère d’admission est d’avoir un QI supérieur à 130, est composé en France de 60% d’informaticiens.

La créativité, c’est de l’intelligence qui s’amuse

— Albert Einstein

Les hauts QI ont souvent une soif de connaissance, un désir et un plaisir de savoir. Or, la musique et la programmation sont deux domaines qui sont très étendus : on peut tomber dedans et les étudier pendant des années sans s’ennuyer. Le bonheur pour un être avide de savoir.

Dans la même veine, le facteur-G, dont l’énoncé est compliqué, mais qui peut se corollairiser : « en étant assez intelligent, à force, on y arrive » (pour ce qui est des tâches intellectuelles) (c’est moi qui reformule, c’est imprécis au possible, j’assume).

Une autre étude, citée ici, indique une corrélation entre les compétences en musique, programmation et mathématiques avec l’intelligence générale.

Les gens intelligents sont donc plutôt doués pour la musique, les mathématiques, et la programmation.

Un effet bien visible dans le cerveau

Je n’ai pas trouvé d’étude montrant un lien direct entre programmation et musique, mais j’ai trouvé une étude, citée ici, basée sur l’imagerie cérébrale, qui fait le lien entre les performances mathématiques et l’entraînement musical.

neuro

Quelques extraits :

Musical training was associated with increased activation in the left fusiform gyrus and prefrontal cortex, and decreased activation in visual association areas and the left inferior parietal lobule during the mathematical task.

We hypothesize that the correlation between musical training and math proficiency may be associated with improved working memory performance and an increased abstract representation of numerical quantities.

Cela renforce les constatations déjà listées sur les liens entre mathématiques et musique.

Inversement, il semble que la musique soit très bonne pour le cerveau, ainsi une étude de l’institut de recherche de Rotman au Canada, citée par science et avenir, met en évidence un lien entre un entraînement musical intensif et précoce, et la compréhension de discours (donc l’intelligence verbale). Cet entraînement retarde également le déclin cognitif.

Autres points de vue sur l’intelligence, et la place de la musique

Les intelligences multiples de Gardner

Il n’y a pas à ce jour de définition d’intelligence qui soit universellement reconnue. Le QI et l’intelligence générale se focalisent sur les compétences logiques et verbales, qui ne représentent pas toutes les aptitudes qu’un humain peut avoir. En particulier toutes les compétences physiques, des danseurs ou des athlètes, et les compétences sociales ne sont pas prises en compte.

int-mult

Howard Gardner a une théorie des intelligences multiples, qui différencie huit types d’intelligences différentes et où il sépare en particulier l’intelligence musicale / rythmique de l’intelligence verbale ou mathématique.

Cette théorie a été vivement critiquée, car elle n’est basée que sur peu de science, et semble même être contredite par d’autres sources et par l’imagerie, de plus on peut voir certaines aptitudes (comme l’intelligence « naturaliste ») comme des cas particuliers d’autres aptitudes particulièrement développées (visuelle et logique ici). (pour approfondir, voir le papier de Jacques Juhel).

Personnellement, étant donné tous les liens trouvés entre musique, mathématiques et langage (et donc programmation), séparer les aptitudes musicales des aptitudes verbales et logiques me parait étrange.

Les types d’esprits de Temple Grandin

Temple Grandin est un professeur en science animale, autiste, dont la vie a semblé assez intéressante pour qu’on en tire un film.

Je n’ai pas vu le film, mais j’ai vu sont TED talk, où elle raconte sa vision du monde, et en particulier, classe les esprits en trois types:

  1. Les esprits orienté visuel : qui voient le monde surtout à base d’images, qui ont de grandes compétences visuelles et spatiales. Elle se classe parmi ceux là.
  2. Les esprits orientés patterns, comme les mathématiciens, les musiciens et les programmeurs.
  3. Les esprits orientés mots, « ils savent quelque chose sur tout »

Notez le 2.

J’ajoute de l’emphase (ce sont ses propres mots) : Les esprits orientés patterns, comme les mathématiciens, les musiciens et les programmeurs.

Temple Grandin n’est pas spécialisée en psychologie ou en neurosciences, et cette division n’a rien de scientifique et aucune preuve à ma connaissance.

Mais cette mise en relation des musiciens, programmeurs et mathématiciens ensemble, autour des patterns m’a beaucoup marqué et impressionné. C’était pour moi un ce des moment « Ah ah, oui! » comme on en a rarement.

Ces quelques secondes de talk de Temple Grandin sont une des sources principales de motivation et d’inspiration pour ce document.

Déterminisme génétique et environnemental

La corrélation n’implique pas nécessairement la causalité. Peut-être suis–je tombé dans le piège du biais de confirmation en accumulant les observations sur le liens entre programmation et musique, ou ai-je fait une généralisation abusive.

Peut-être d’autres facteurs impliquent qu’il y a beaucoup de musiciens parmi les programmeurs, qui n’ont rien à voir avec la similarité des domaines et des esprits.

Alcoolisme geekNos vies sont clairement en grande partie façonnées par notre environnements et les opportunités que nous avons rencontrées, en plus de nos aptitudes et faiblesses innées.J'accuse

Emile Zola a longuement développé autour de la théorie du déterminisme (génétique et social) dans ses romans. L’alcoolisme de ses personnages est par exemple héréditaire, un enfant d’alcoolique deviendra alcoolique, même élevé dans une famille qui n’abuse pas de l’alcool.

Inversement l’environnement influence positivement ou négativement les capacités et les comportements des personnes.

Déterminisme génétique

On sait qu’il est fréquent de voir des familles de musiciens. On peut citer les dynasties Mozart, Bach ou Chedid en exemple, mais aussi tous nos voisins, amis et connaissances dont parents et enfants font de la musique.

Voici mon propre arbre généalogique, avec une information bien sélectionnée : mes deux grands pères étaient musiciens, mon père est musicien. Mon attirance et mes aptitudes pour le domaine sont sans doute en partie innées.

Family tree

De même il n’est pas rare voir des programmeurs raconter leurs premières expériences avec l’ordinateur de leur père, lui même ingénieur ou programmeur. Mais comme la discipline est beaucoup plus récente, la corrélation n’est pas aussi évidente.

Déterminisme social

Le débat entre l’inné et l’acquis n’est pas encore tranché, mais on ne peut nier que les opportunités fournies par l’environnement sont un facteur crucial dans le développement d’un individu.

Ecole et musiqueUn enfant ayant accès à des instruments de musique et/ou des ordinateurs chez lui s’intéressera plus facilement à ces domaines, ce qui explique une partie de la corrélation : les familles de gens curieux et cultivés, produisent des enfants curieux et cultivés, qui bricolent de la musique et des programmes.

Le système scolaire, de façon systémique, encourage également la corrélation : les forts en maths choisissent des filières scientifiques, ce qui augmente la possibilité de les voir devenir programmeurs. Ce sont les mêmes qui font de la musique. On a donc le même genre de personnes dans les deux disciplines.

La pression des proches est également un facteur : un enfant fera de la musique pour suivre ses amis, et ira à la fac ou à l’école d’ingénieur apprendre à programmer pour les mêmes raisons.

Conclusion

Programmation et musique sont donc deux disciplines qui ont beaucoup de similarités : leurs liens avec les mathématiques, avec le langage, la même démarche créative et artisanale, l’aspect arborescent des livrables, etc…

Ce sont disciplines qui attirent le même genre de personnes, qui s’y plongent et s’y sentent à l’aise : des esprits vifs, orientés patterns, qui aiment collectionner les connaissances et bricoler et créer.

La corrélation est reconnue depuis les années 50 et est même visible, indirectement, par des études impliquant de l’imagerie cérébrale.

Inné ou acquis ? Cette préférence et aisance pour ces disciplines est, comme toutes les aptitudes humaines, un reflet à la fois du patrimoine génétique de l’individu et de l’environnement qui l’a façonné. On a vu aussi qu’il y avait un encouragement de la corrélation par le système éducatif.

Et sinon, vous ne trouvez pas qu’il y a beaucoup de développeurs photographes ?

Objectif

 

Six petits trucs pour soigner sa santé mentale au quotidien

Conserver sa santé mentale dans un monde plein d’agressions de l’esprit n’est pas forcément facile.

Voici une liste non exhaustive de petits trucs que j’utilise.

Des devices rapides

Pour moi un device que j’utilise, genre mon mac, mon téléphone, ma tour au boulot, doit aller plus vite que moi.

Si j’ai le temps de réfléchir (ou pire, de prononcer à haute voix « leent »), ça m’énerve. Pas beaucoup. Un peu. mais ça m’énerve. Et si on empile un petit peu de stress des dizaines de fois par jour, ça a forcément un impact.

Donc j’ai des devices avec de bonnes specs (SSD, beaucoup de mémoire), et j’utilise des navigateurs rapides (vous savez lesquels).

J’ai aussi désactivés les animations sur mon iPhone : les transitions étaient trop longues à mon gout (elles le sont toujours, mais moins).

Pas d’interruption. Pas de notifications

Notifications désactivées

J’ai désactivé toutes les notifications sur mon smartphone, en laissant juste les pastilles pour les applications sociales.

Je connais des gens dont le téléphone vibre tout le temps, avec plein de notifications venant d’applications diverses.

Le mien ne vibre presque jamais : seulement pour les appels et les SMS. Les quelques rares autres applications ayant les notifications activées (genre inbox) n’ont le droit qu’aux pastilles, et rien sur l’écran verrouillé.

Le but est de ne pas être coupé dans ma concentration, ma tâche, ma conversation, par une notification dont le contenu ne m’intéresse pas (eg : le monde me donnant le gagnant de Roland Garros), ou que je pourrais retrouver sereinement plus tard, au moment que j’ai choisi (tiens je suis dans le métro et je capte, voyons voir ce qui se passe sur twitter).

Inbox 0

zenbox

Inbox : zéro

J’ai lu getting things done il y a longtemps. Une des choses qui m’a marqué, c’est l’image que David Allen donne de l’état d’esprit idéal : « Mind like water ».

Il compare l’esprit serein à un lac d’eau calme, qui une fois stimulé par la chute d’une pierre, réagit avec tout juste la bonne amplitude, ni plus, ni moins, puis revient au point de départ, plat, calme, serein.

D’après lui, une tâche, une idée (« ah il faut que j’achète du lait »), qui n’est pas évacuée de l’esprit (typiquement dans une todo list) laisse sa trace dans le cerveau, elle va et vient en premier et second plan, elle boucle, en occupant une partie du temps et surtout de l’énergie disponible. Ce qui est source de fatigue et de stress.

L’idée de GTD est de vider toutes les sources de tâches, et d’organiser les prochaines actions dans des listes priorisées (c’est un peu plus compliqué mais ce n’est pas le sujet ici).

Un email qui reste dans la boite de réception (genre on se dit « Ah ça je vais regarder plus tard » ou « Ah oui je le garde comme référence ») est donc quelque part une de ces boucles, quelque chose d’inachevé.

C’est d’autant plus vrai si vous avez implémenté un système de gestion de tâches (ok je parlerais du mien dans un post ultérieur) : l’élément reçu n’est pas traité.

C’est vraiment un soulagement et un plaisir de traiter chaque email, et de voir le petit soleil indiquant que l’inbox est vide, que tout est traité ou prévu.

Pas de TV

La base.

Oui je sais qu’il y a de bonnes émissions.

Mais faire l’effort de les trouver, de se poser devant le poste à l’heure qu’il faut (ou de chercher le replay sur des sites faits en silverlight), de se taper toutes les pubs (dont le volume est plus fort que celui des programmes, et qui sont calibrés pour vous vriller la tête), …

Moi non.

Utiliser un adblocker

slate

Un site de presse typique sans adblocker.

slate-clean

Le même article, avec adblocker : c’est maintenant utilisable.

 

 

 

 

 

 

 

 

En parlant de publicité, le web est bien plus agréable sans elle.

Je sais que c’est méchant et qu’il y a des gens qui en vivent (ça a été mon cas, indirectement), mais franchement, la plupart du temps, c’est abusé.

Une bannière discrète ne pose pas de problème mais quand un tiers de la page est dédiée au contenu, et le reste à la pub, que ça clignotte de partout, qu’il des popups, des vidéos qui lancent toute seule (en plein solo de David Gilmour et deux fois plus fort bien sur). C’est abusé.

Donc adblocker.

(j’ai déjà ma dose de pub dans le métro d’ailleurs)

(boulet, avec son talent habituel, en parle mieux que moi)

Pas d’actualité (surtout politique)

politique

Eviter l’actualité.

A une époque, j’écoutais France Info en me préparant le matin. Mes horaires étaient concomitant à un journal et à une interview d’un politique.

Je commençais donc toutes mes journées par une énumérations de mauvaises nouvelles sensationnelles, comme les journalistes les aiment, et par une interview d’un politicien, avec la langue de bois, les approximations, la malhonnêteté de cette caste. De plus, les journalistes étant ce qu’il sont, il s’agissait une fois sur deux d’un extrémiste, rouge ou noir, donc encore plus énervant.

Je partais de chez moi énervé et triste, et en colère contre le monde, et me sentant impuissant.

Donc j’ai arrêté d’écouter la radio le matin. Puis j’ai arrêté de lire la presse en ligne régulièrement. De temps en temps, je regarde les titres, ou un article qui m’intéresse. Je vois aussi un peu d’actualité via twitter.

C’est certainement le tips le plus rentable de ce post si vous êtes comme moi. Ca fait vraiment une différence.

Un autre avantage de pas suivre l’actualité dans toute son émotionnalité, c’est qu’on a plus de recul sur les choses.

En conclusion

Avez-vous des trucs similaires à me partager ?

Coursera – Learning about learning

Il y a quelques mois, j’ai suivi une formation sur coursera : Learning how to learn.

La promesse du cours étant de me « donner accès aux techniques des experts en art, musique, littérature, science, sport, etc… pour apprendre de nouvelles choses. »

En fait le cours est surtout pensé pour les étudiants, qui doivent bucher des matières pour leurs examens et construire un savoir consistant, brique après brique, dans leurs disciplines de choix. Mais j’y ai appris, en plus des choses déjà connues, quelques concepts intéressants, détaillés ci-dessous.

Voici donc un résumé/retour (tardif).

Disclaimer : il s’agit d’un résumé et d’un ressenti personnel. Je n’ai pas absolument pas l’ambition de remplacer le cours. J’écris ce post en fait surtout pour rafraîchir, structurer et renforcer mes propres souvenirs sur le sujet.

Mode concentré et mode diffus

On peut dire que notre cerveau a deux modes de travail, un mode concentré, utilisé pour la résolution de problèmes familiers (comme par exemple écrire cet article), et un mode diffus, quand nous laissons notre esprit papillonner.

C’est ce mode qui est utilisé quand on est sous la douche, ou quand on marche. C’est dans cet état de « repos actif » que se font les connexions, et que naissent les idées.

Des créatifs, comme Thomas Edison ou Salvador Dali, recherchent même volontairement le mode diffus, par exemple en se détendant dans un fauteuil avec une cuillère dans la main : quand la cuillère tombe et « réveille », la pause en mode diffus est finie, avec souvent de nouvelles connexions, de nouvelles idées, applicables tout de suite.

Importance du sommeil

Pour retenir il faut dormir.

sommeilOn ne sait pas encore tout ce que fait le cerveau pendant le sommeil, mais il ne se repose pas vraiment. C’est la nuit que notre organe range, classe, cimente, connecte nos souvenirs, nos idées, nos émotions de la journée passée, et de toute les journées précédentes de notre vie.

Il est prouvé, scientifiquement, que le sommeil est bon pour la mémoire (et aussi que le stress est mauvais).

Importance de la pratique, des répétitions

C’est connu depuis la nuit des temps : pour acquérir une compétence (au hasard devenir un as du marteau et de l’enclume), il faut pratiquer.

Combattre la procrastination

Pomodoro

pomodoroComme je le disais, le cours est pensé pours des étudiants. Les auteurs conseillent la technique pomodoro pour lutter contre la procrastination.

Pomodoro, j’avoue n’y avoir jamais vraiment cru, mais aussi ne l’avoir jamais sérieusement pratiqué. En fait j’ai l’impression que tout le monde en parle, mais que personne ne l’utilise vraiment.

Je suis tombé, lors d’une recherchetotoro précédente, sur le concept de flux (en anglais flow, rien à voir avec React) : cet état d’esprit, que tout le monde a déjà expérimenté, dans lequel on est quand on est absorbé dans une tâche, qu’on ne voit pas le temps passer, dans lequel on peut rester des heures et abattre pas mal de boulot.

Pomodoro me semble incompatible avec le flow.

(Sinon rien à voir, mais Pomodoro, ça fait un peu penser à Totoro non ?)

Deliberate practice

Par ce terme, les auteurs entendent : commencer volontairement par ce qu’il y a de plus difficile.

L’idée étant que le reste sera du coup de moins en moins intimidant, et que l’on sera de moins en moins enclin à procrastiner

Loi de la sérendipité

Loi de la sérendipité : “lady luck favors the ones who tries”

Toujours pour lutter contre la procrastination, et un peu à l’opposé de la deliberate practice, ce que les auteurs appellent la loi de la sérendipité (serendipity law) est l’idée que commencer par un petit morceau facilite la suite : de la même façon que courir les cent premiers mètres n’implique pas que l’on va faire dix kilomètres, mais qu’une fois le processus enclenché il est plus facile de continuer, commencer une petite parcelle de cours aide à poursuivre.

Là je ne peux m’empêcher de faire le rapprochement avec la théorie de l’engagement : on s’auto manipule pour s’auto-engager à finir le travail.

Illusion de la compétence et recall

L’illusion de la compétence est un biais courant : on pense maitriser un sujet, typiquement parce qu’on a le cours, ou la réponse au problème, sous les yeux, mais en fait non.

bartC’est ce que qui fait que relire (ou recopier) plusieurs fois, n’est pas efficace.

Par contre ce qui est efficace,  c’est détourner le regard et tenter de se souvenir du contenu. Cette technique est appelée recall par B. Oakley.

En plus de ces auto-tests, faire des revues avec d’autres personnes, est aussi très efficace.

Overlearning

Pratiquer plus que nécessaire est une perte de temps : cela ne sert à rien de travailler encore et encore des sujets que l’on maitrise déjà. On peut employer cette énergie à autre chose.Pile-of-Books

Il y a une exception : si on veut arriver à une perfection ultime et surtout automatique, dans le cadre d’une performance. C’est le cas d’un pianiste qui jouera la tempête des centaines de fois en prévision d’un récital, ou d’un orateur qui veut faire une conférence parfaite.

Autre point : faire des erreurs facilite l’apprentissage d’une compétence.

Einstellung effect

Un concept qui ne m’était pas encore familier : l’effet Einstellung.

C’est un état d’esprit négatif, où on utilise la première idée, la première option qui nous vient à l’esprit, alors qu’une autre pourrait être meilleure.

L’effet Einstellung (rahh c’est dur à écrire), est induit par les habitudes, par le manque de connaissance des alternatives, le manque de recherche.

C’est le chemin le plus facile, mais pas forcément le plus optimal, qui est choisi.

Interleaving et tranfer

Interleaving : c’est l’interconnection entre les choses apprises : les concept, les idées, les compétences, qui peuvent être rapprochées entre différents domaines.

Transfer : le fait qu’une idée apprise dans un domaine peut aider dans un autre.

(C’est l’une des forces des polymathes)

Mnémotechnique

Comme attendu, le cours donne des exemples de moyens mnémotechniques.

Associations

Ils conseillent de faire des associations avec des images, ou des souvenirs, d’utiliser des métaphores et des analogies (on retrouve l’idée de connecter différents sujets et différents domaines).savane

Il se trouve que, du fait de notre passé de chasseurs cueilleurs, nous, humains, avons une très bonne mémoire visuelle, c’est quelque chose que l’on peut exploiter.

Palais mental (memory palace)

La technique du palais mental (memory palace) est évoquée : il s’agit de placer les choses à retenir dans un endroit familier, votre maison, ou le trajet pour aller au travail. L’objectif étant d’utiliser votre mémoire visuelle.

Par exemple pour retenir la liste des ingrédients de la recette des crêpes, vous pouvez visualiser quatre oeufs géants sur votre canapé, canapé complètement recouvert de farine et surmonté d’un napperon portant l’inscription « 250g ». Vous continuez plus loin, et dans la cuisine il y a une demi vache (pour 1/2 litre de lait), qui … enfin vous voyez l’idée.

C’est une des techniques dont parle le livre moonwalking with Einstein.

Conclusion

Le cours contenait beaucoup plus d’informations, il ne s’agit là que de mes notes.

Il était par exemple question de flippers et de zombies (ah je vous ai pas raconté ça ?) (braaains).