En 1980 déjà, les travaux du célèbre informaticien néerlandais Edsger Dijkstra l’avaient mis en avant : la compréhension du langage naturel joue un rôle central dans la programmation informatique. En d’autres termes, la filière (programmation informatique) fait plus appel à des qualités linguistiques qu’à d’autres, d’après ce qui ressort de cette publication de recherche.
« À notre surprise, nous n'avons observé aucune activité dans le sens du raisonnement mathématique ou logique, ce qui serait conforme à la perspective selon laquelle la programmation est un processus formel, logique et mathématique. Le résultat le plus frappant est une activation de certaines zones de l’hémisphère gauche du cerveau lors des activités de compréhension de programmes », indiquent les chercheurs.
L’équipe de chercheurs s’est appuyée sur la méthode de soustraction qui a fait ses preuves en neurosciences. Tout en étant exposés à un dispositif d’imagerie par résonance magnétique fonctionnelle, les sujets ont travaillé sur une première tâche qui consistait en la compréhension d’un extrait de code informatique. Après une courte période de repos, on leur a demandé de vérifier un extrait de code pour détecter de simples erreurs de syntaxe – une tâche de routine pour les travailleurs de la filière programmation informatique. La procédure a fait l’objet de plusieurs répétitions. Par la suite, les images de l'activité cérébrale pendant le traitement de la tâche de routine ont été soustraites de celles du test de compréhension. Ne restaient alors que les régions du cerveau utilisées en particulier dans le cadre de la compréhension des programmes.
Si l’étude retient l’attention, c’est parce qu’elle intervient dans un contexte global où l’on ne dissocie pas la programmation informatique des aptitudes nécessaires en maths pour être un acteur de la filière. Elle fait suite à une autre publication de recherche qui, pour sa part, dit : doué en apprentissage de langues donc doué en programmation informatique.
La série de conclusions de l’étude en question est le résultat d’une batterie de tests centrés autour du langage Python. Les chercheurs y ont soumis une trentaine d’adultes n’ayant jamais appris à coder, ce, pour évaluer leurs compétences cognitives sur divers axes (compétences mathématiques, linguistiques, attention, résolution de problèmes, mémoire...). Il en est ressorti que ceux qui ont appris Python le plus rapidement et avec une grande précision sont ceux qui possèdent un mélange de fortes capacités de résolution de problèmes et d’apprentissage de langues étrangères. Dans les chiffres de la part de compétences nécessaires à l’apprentissage du langage Python et publiés par l’équipe de chercheurs, les mathématiques expliquent seulement 2 % de la capacité d’apprentissage.
« C'est parce que l’écriture du code informatique implique également l'apprentissage d'une seconde langue, la capacité d'apprendre le vocabulaire et la grammaire de cette langue et la façon dont ils travaillent ensemble pour communiquer des idées et des intentions. La recherche décrite ici est motivée par un changement de paradigme conceptuel, à savoir que l'apprentissage des langages de programmation modernes ressemble à l'apprentissage d'une langue naturelle, comme le français ou le chinois, à l'âge adulte. De façon plus précise, nous soutenons que la recherche sur les bases neurocognitives de l'aptitude à la programmation a largement omis le fait que les langages de programmation informatique sont conçus pour ressembler à la structure de communication du programmeur (les langages humains) », précise cette équipe de recherche. Dans le cadre de cette étude, Python avait été choisi pour sa ressemblance avec la langue anglaise, ce qui peut expliquer les résultats obtenus.
Du coup, doué en apprentissages de langues donc doué en apprentissage de langages de programmation serait plus admissible au vu des contenus de la publication, mais il y a que les chercheurs généralisent leurs résultats à la programmation informatique au sens le plus large : « De nombreux obstacles à l'entrée dans la filière de la programmation informatique, partant des prérequis aux stéréotypes sur ce à quoi ressemble un bon programmeur, sont centrés sur l'idée que la programmation repose fortement sur les aptitudes en mathématiques, mais cette idée ne se dégage pas de nos données. »
Les conclusions mises en avant par ces équipes de recherche sont à confronter avec celles d’intervenants de la filière pour lesquels programmer c’est mettre en oeuvre des concepts algorithmiques pour la résolution de problèmes dans divers domaines. C’est de la capacité d’abstraction de l’intervenant à user d’outils mathématiques plus ou moins avancés pour proposer des solutions informatiques dont on parle ici. Dans le processus de l’implémentation de la solution, la connaissance d’une langue, en l’occurrence l’anglais, peut être d’une précieuse aide, notamment, pour la maîtrise d’outils comme les EDI.
Source : étude
Et vous ?
Quelle pertinence accordez-vous aux conclusions de cette étude ?
Les maths sont-elles inutiles ou centrales dans votre travail et votre parcours de travailleur de la filière programmation informatique ? Pourquoi ?
Faut-il être matheux pour être bon en programmation ?
Voir aussi :
Les professeurs des classes prépas alertent sur le faible niveau en sciences du bac S, une menace pour l'enseignement supérieur en informatique ?
Réforme du lycée : les maths ne sont-elles utiles que dans les domaines scientifiques et informatiques pour être reléguées au rang de spécialité ?
Que faire pour minimiser l'impact des interruptions sur l'activité de développement de logiciels ? Appliquer les méthodes Agile ?
Y a-t-il une corrélation entre diplôme et succès en tant que développeur de logiciels ? Un acteur de la sphère donne son avis
Pourquoi réécrire un projet en partant de zéro ? Parce que l'ancien code est un fatras ou qu'il est plus facile d'écrire que de lire un code ?
Que pensez-vous des formations intensives en programmation ? Sont-elles plus efficaces que les formations classiques en informatique ?