IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Débats sur le développement - Le Best Of Discussion :

Lire un programme informatique n’est pas la même chose que lire une langue pour le cerveau


Sujet :

Débats sur le développement - Le Best Of

  1. #1
    Chroniqueur Actualités
    Avatar de Patrick Ruiz
    Homme Profil pro
    Redacteur web
    Inscrit en
    Février 2017
    Messages
    1 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Redacteur web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2017
    Messages : 1 841
    Points : 51 491
    Points
    51 491
    Par défaut Lire un programme informatique n’est pas la même chose que lire une langue pour le cerveau
    Lire un programme informatique n’est pas la même chose que lire une langue pour le cerveau
    Ce dernier se sert de régions différentes, donc « bon en langues n’implique pas bon en programmation »

    Que se passe-t-il dans la tête des programmeurs lancés dans leur exercice de mise sur pied de logiciels ? Des techniques d’imagerie issues des neurosciences permettent de déterminer quelles zones du cerveau sont en fonctionnement pour des activités données. C’est l’approche qu’a adoptée une équipe de chercheurs du MIT pour savoir lesquelles le sont lors de la lecture et de la compréhension de programmes informatiques. Résultat : « Bon en langues n’implique pas bon en programmation », car les régions cérébrales les plus actives au moment de lecture et de la compréhension de programmes informatiques n’ont rien à voir avec celles utilisées dans le traitement du langage naturel.

    Deux écoles de pensée s’affrontent pour ce qui est de la façon dont le cerveau appréhende les programmes informatiques. L’une suggère qu’être bon en programmation requiert de l’être d’abord en mathématiques. L’autre soutient qu’en raison des parallèles entre le codage informatique et le langage naturel, la programmation informatique fait plus appel à des qualités linguistiques. « La compréhension du code informatique est un univers à part : rien à voir avec celle du langage naturel ou des mathématiques et la logique », indique l’équipe de chercheurs.

    Les deux langages de programmation sur lesquels les chercheurs se sont concentrés dans cette étude sont connus pour leur lisibilité - Python et ScratchJr, un langage de programmation visuel conçu pour les enfants de 5 ans et plus. Les sujets de l'étude étaient tous de jeunes adultes maîtrisant le langage sur lequel ils étaient testés. Alors que les programmeurs étaient allongés dans un scanner à résonance magnétique fonctionnelle, les chercheurs leur ont montré des bribes de code et leur ont demandé de prédire l'action que le code produirait.

    Les chercheurs n'ont constaté que peu ou pas de réaction au code dans les régions du cerveau sollicitées pour le traitement du langage naturel. Au contraire, ils ont découvert que la tâche de lecture de code informatique activait principalement un réseau à usage général. Ce dernier, dont l'activité est répartie dans les lobes frontaux et pariétaux du cerveau, est généralement sollicité pour des tâches qui nécessitent de garder plusieurs informations à l'esprit en même temps et est responsable de notre capacité à effectuer une grande variété de tâches mentales. L’étude indique qu’un sous-ensemble dudit réseau du cerveau est utilisé pour le traitement des problèmes de mathématiques et de logique. Dans le cas de la lecture de code informatique, plus de zones de ce réseau sont sollicitées suggérant que la programmation et les mathématiques ne s’appuient pas sur les mêmes mécanismes cérébraux.

    Pourtant, les travaux du célèbre informaticien néerlandais Edsger Dijkstra dans les années ‘80 mettent en avant que la compréhension du langage naturel joue un rôle central dans la programmation informatique. C’est ce qu’une équipe de chercheurs allemands est venue confirmer dans une étude parue à mi-parcours de l’année qui tire à son terme : « À 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. »

    L’équipe de chercheurs allemands 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.

    Nom : 33.png
Affichages : 19127
Taille : 30,0 Ko
    Nom : 34.png
Affichages : 4272
Taille : 78,7 Ko

    Si ces études retiennent l’attention, c’est parce qu’elles interviennent 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. Elles font suite à une autre publication de recherche qui, pour sa part, dit : doué en apprentissage de langues donc doué en programmation informatique.

    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 : MIT

    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 ?
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bon en maths n'implique pas non plus forcément bon en programmation. Bon en logique à la rigueur....

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Bon en langues n’implique pas bon en programmation
    Qu'est ce que ca veux dire "bon" en programmation ?

    Je connais des gens capable de pondre des algos que je serais incapble de faire , pour autant je ne les considère pas "bons" en programmation à cause de la qualité du code produit par exemple.

    Bon en programmation c'est un package complet qui ne se limite pas à lire ou écrire du code bêtement.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Et bon en langues ça veut dire quoi ?
    Être polyglote ?
    Maîtriser les règles grammaticales de la langue française ?
    Avoir une orthographe parfaite ?
    Savoir conjuguer au passé simple et imparfait du subjonctif ?
    Savoir prononcer women, enough, through, thought, though correctement ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 058
    Points
    32 058
    Par défaut
    Outre les précisions fort utiles apportées par Bousk et Grunk, ne serait-il pas possible de se dire "en fait, c'est encore autre chose?".

    Non, parce-que les associations d'idées à deux balles, c'est bien gentil, mais quand ça fait 50 ans qu'on arrive pas à en faire marcher une seule, il serait peut-être temps de se dire que la programmation informatique, c'est une activité en soi, comme la pratique des langues étrangères, ou comme les mathématiques, et que chacune a ses propres spécificités, non? D’où la conclusion de Jeff_67, d'ailleurs.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    909
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 909
    Points : 2 818
    Points
    2 818
    Par défaut
    Citation Envoyé par grunk Voir le message
    Qu'est ce que ca veux dire "bon" en programmation ?

    Je connais des gens capable de pondre des algos que je serais incapble de faire , pour autant je ne les considère pas "bons" en programmation à cause de la qualité du code produit par exemple.

    Bon en programmation c'est un package complet qui ne se limite pas à lire ou écrire du code bêtement.
    Pour le coup je ne suis pas vraiment d'accord, ou alors le "package complet" est tellement gros (surtout en 2020) que personne à part quelques extraterreste l'aura.

    Sur un plan purement professionnel : quelqu'un de bon c'est quelqu'un qui a les compétences suffisantes, voir un peu plus pour le poste qu'on lui a donné.

    Sur un plan plus orienté programmation je vais donner quelque point notable plutôt qu'une définition :
    • C'est quelqu'un qui maîtrise ce qu'il fait, les outils qu'il utilise et s'adapte bien moyennant qu'on lui donne quand même un peu de temps pour qu'il continue de maitriser ce qu'il fait (et pas commencer à aligner des copier/coller sur un langage qu'il connait pas mais "hey! Ca marche!"). Dans la maîtrise j'entend aussi un socle correct sur par exemple, les I/O (fichier/réseau/http) un peu de multithreading,...
    • Il doit aussi savoir s'opposer raisonnablement aux pressions tel que "sortir toujours plus features toujours plus vite" mais pouvoir quand même trouvé un compromis entre le temps donné et la qualité de la solution technique.
    • Sans pour autant être un passionné qui suit chaque release de son langage et de ses outils, il doit quand même ne pas craindre de se mettre à niveau plutôt qu'a demander aux autres de se mettre au sien (ou le nivellement par le bas).

  7. #7
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mars 2009
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mars 2009
    Messages : 120
    Points : 90
    Points
    90
    Par défaut
    Je crois qu'il faut un minimum de logique, mais aussi de la créativité.

    Je chipote avec plusieurs langages, +/- imposés par le matériel, l'environnement et la finalité. J'ai une idée, et je fais mon choix en regardant comment je pourrais la mettre facilement en oeuvre avec tel ou tel langage.

  8. #8
    Membre expérimenté Avatar de Ngork
    Homme Profil pro
    Barbare IT
    Inscrit en
    Avril 2009
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Barbare IT
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 160
    Points : 1 372
    Points
    1 372
    Par défaut Non spécialisé
    Ce qui me semble le plus intéressant dans ce post, c'est que l'étude du MIT semble surtout montrer que la programmation informatique n'est pas une affaire de spécialisation : on n'utilise pas une zone spécifiquement faite pour le langage ou les maths ou la mémoire, non on utilise un peu tout et beaucoup ... on réfléchit, on crée, on analyse, on imagine ... c'est humain, quoi !
    Difficile à remplacer par un réseau neuronal hyper spécialisé !
    Les programmeurs ont donc encore de beaux jours devant eux !!!

Discussions similaires

  1. Mon a:hover n'agit pas la même chose sous IE8
    Par pierrot10 dans le forum Mise en page CSS
    Réponses: 0
    Dernier message: 12/06/2010, 00h31
  2. Réponses: 9
    Dernier message: 14/06/2007, 12h22
  3. Debug de DLL ou de l'EXE ne donne pas la même chose
    Par mchk0123 dans le forum C++Builder
    Réponses: 3
    Dernier message: 03/05/2007, 18h55
  4. [MySQL] Deux tableaux identiques qui ne affichent pas la même chose
    Par somatino dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/12/2006, 20h02
  5. Réponses: 12
    Dernier message: 03/03/2006, 11h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo