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

  1. #1
    Chroniqueur Actualités

    Nul en maths ? Vous êtes peut-être plus doué que vous ne le pensez pour la programmation informatique
    Nul en maths ? Vous êtes peut-être plus doué que vous ne le pensez pour la programmation informatique, d’après une étude
    Qui montre que la filière fait plus appel à des qualités linguistiques

    Depuis de nombreuses années, le niveau en maths des élèves de terminale S en France va décroissant. Le tableau n’a pas manqué de susciter des inquiétudes quant à la qualité des produits des formations de niveau universitaire de la filière informatique de ce pays. Mais, c’est un fait à l’échelle globale : qui dit programmation informatique ne dissocie en principe pas les aptitudes nécessaires en maths pour être un acteur de la filière. En d’autres termes, sans maths point de salut dans la filière programmation informatique ? C’est plutôt le contraire que semble suggérer une étude de chercheurs de l’université de Washington.

    De façon brossée, la publication de recherche dit : doué en apprentissage de langues donc doué en programmation informatique. En substance, la programmation informatique ferait plus appel à des qualités linguistiques qu’aux compétences en mathématiques. L’aptitude à l'apprentissage des langues serait un meilleur paramètre de prédiction des capacités d’apprentissage de la programmation que des connaissances de base en mathématiques ou en calcul.

    « 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 », expliquent les chercheurs.

    « 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) », ajoutent-ils.

    Cette série de conclusions 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.



    Après, le choix du langage Python est peut-être pour beaucoup dans les résultats obtenus par l’équipe de recherche. En effet, explique-t-elle, ce langage a été retenu pour sa ressemblance avec la langue anglaise. « Python était un choix naturel, car ce langage fait usage de structures anglaises telles que l'indentation des paragraphes et utilise de nombreux mots réels plutôt que des symboles pour les fonctions », lit-on.

    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. »

    La conclusion mise en avant par l’équipe de recherche (doué en apprentissage de langues donc doué en programmation informatique) est à 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. Après, il semble qu’il n’y ait pas de lien avec la rigueur et la logique qui sont des qualités essentielles des acteurs de la filière. D’ailleurs, l’étude dissocie l’aspect aptitude à apprendre des langues à de celui de cognition…

    Source : nature

    Et vous ?

    Doué en apprentissage de langues donc doué en programmation informatique : qu’en pensez-vous ?
    Quelles sont les aptitudes en langues qui vous ont été les plus utiles en tant qu’acteur de la filière programmation informatique ?
    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
    Nouveau membre du Club
    Faut-il être matheux pour être bon en programmation ?
    De mon point de vue, il faut être bon en logique pour être bon en programmation.
    Je trouve que la programmation, c'est plus souvent du bon sens, et de l'analyse de la situation, qu'une réelle utilisation des Mathématiques.

    Après tout dépend du sujet traité. Et c'est là qu'un bon niveau en Maths peut avoir son intérêt.

  3. #3
    Membre éprouvé
    Doué en apprentissage de langues donc doué en programmation informatique : qu’en pensez-vous ?

    c'est centré sur l'apprentissage du langage pas sur son utilisation, si certains mette plus de temps a apprendre le langage cela ne veut pas dire qu'ils sont moins bon que les autres.
    Plus vite encore plus vite toujours plus vite.

  4. #4
    Membre averti
    Dire qu'il faut être bon en maths pour être bon programmeur, c'est comme dire qu'il faut être architecte pour être un bon maçon .
    Le facteur CHEVAL n'était ni Architecte , ni maçon , il a quand même réussi à construire un palais .
    Effectivement pour les domaines comme la Cryptologie ,la bio informatique , finances, ou d'autres domaines ou les mathématiques sont prépondérantes , mieux vaut être matheux.
    En revanche pour faire de l'informatique dite de gestion (compta, base de donnes, sql ...), ou pour faire du développement web , il n'est pas nécessaire d'avoir la bosse des maths

  5. #5
    Expert éminent sénior
    ça dépend ce qu'on programme.

    Pour des batches bancaires comme j'ai fait pendant des années, et ou on ne se sert que des 4 opérations(et encore, la division, c'est fort rare), aucun rapport. Pour calculer des écoulements de liquides visqueux ou l'influence de Jupiter sur la trajectoires des satellites, mieux vaut comprendre de quoi on parle.
    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 régulier
    Citation Envoyé par el_slapper Voir le message
    ça dépend ce qu'on programme.

    Pour des batches bancaires comme j'ai fait pendant des années, et ou on ne se sert que des 4 opérations(et encore, la division, c'est fort rare), aucun rapport. Pour calculer des écoulements de liquides visqueux ou l'influence de Jupiter sur la trajectoires des satellites, mieux vaut comprendre de quoi on parle.
    Exactement, ça dépend de ce qu'on fait.

    En outre, je travail avec des personnes qui ont un parcours en philo, aucunement scientifique donc, et ils s'en sortent plus que bien en R&D.

  7. #7
    Membre extrêmement actif
    Ah ben, nulle en math, très bonne en compréhension et expressions écrite et quadrilingue à une certaine époque, mon cursus s'explique enfin
    Citation Envoyé par Un expert en programmation
    D'ailleurs il croit toujours que le JS c'est de la POO

  8. #8
    Expert éminent sénior
    Donc ils prennent un langage pour sa ressemblance avec l'anglais pour prouver que les compétences en programmation informatique dépendent surtout des capacités linguistiques… pas du tout biaisé comme démarche…

    10 sessions de 45 minutes, ça reste quand même très court pour une formation. Avec seulement 36 participants, dont 21 femmes, et pas de gauchers.

    Les sessions sont organisées sur des tests régurgitant le contenu du cours… donc surtout de ma mémoire à court terme, et a priori pas réellement d'exercices réellement pratiques ou de gros projets.


    Le test final est un QCM et un test de codage. Bizarrement le QCM est très orienté sur le langage lui-même:
    Following the ten session Python training, participants completed a 50-item multiple-choice test consisting of information presented in the first 14 lessons in Code cademy. Half of the questions queried semantic knowledge, or an understanding of the purpose of functions in Python, and the other half investigated syntactic knowledge including questions such as “Which line of code is formatted correctly?” Participants were given 30 ;minutes to complete this test.
    Et pour le test final:
    After completing the multiple choice portion of the post-test, participants were tasked with programming a Rock-Paper-Scissors (RPS) game that a user could play against the computer. This project was created by Codecademy, but participants did not complete it during learning. The programming test included instructions that partially broke down the larger problem into predefined steps. Participants were not allowed to use any additional resources (e.g., notes, forums, help buttons) to complete the project but were able to run and test their code. Participants were given 30 ;minutes to complete the project. The code they produced was scored by three independent raters using a rubric developed by Python experts that assigned points to each step of the project (ICC = 0.996, 95% confidence interval from 0.993–0.998, F(35,70) = 299.41, p ;< ;0. 001). Programming accuracy was operationalized as each participant’s score out of 51 total points.

    Bref, une grosse connerie, comment cela a-t-il pu être accepté dans un journal aussi prestigieux que Nature ???
    Ils partent d'une conclusion, et organisent leur expérience de sorte à tomber dessus !
    "Parce que le diable est dans les détails, une vision sans nuance ne peut prétendre à la compréhension du monde."

    Mon ancienne page perso : https://neckara.developpez.com/

  9. #9
    Expert éminent sénior
    Pour résumer simplement, ils testent des compétences principalement linguistiques, et trouvent que les résultats sont prédits par les compétences linguistiques de la personne.


    Le problème est que la programmation ne se résume absolument pas à régurgiter des connaissances linguistique sur le langage, ou de pouvoir effectuer des tâches très simples lorsque très fortement guidés.

    Cela ressemble un peu aux premiers TP que l'on pourrait faire en L1… mais il ne faut pas oublier que les formations durent de 2 à 5 ans, avec des travaux pratiques, et même après cela, tous les étudiants n'ont pas nécessairement un niveau satisfaisant.


    Le problème c'est que la programmation informatique ne se base pas tant sur la connaissance des fonctions du langage (ce qu'on retrouve très facilement sur Internet), mais sur le respect bonnes pratiques/conventions du langage, la recherche d'information/lecture des documentations/autonomie, ainsi que de pouvoir modéliser les problèmes de sorte à pouvoir les résoudre facilement et d'écrire du code propre qui sera maintenable.

    Or cela n'est absolument pas testé par l'étude qui nous est présentée.
    "Parce que le diable est dans les détails, une vision sans nuance ne peut prétendre à la compréhension du monde."

    Mon ancienne page perso : https://neckara.developpez.com/

  10. #10
    Membre extrêmement actif
    Citation Envoyé par Neckara Voir le message
    Donc ils prennent un langage pour sa ressemblance avec l'anglais pour prouver que les compétences en programmation informatique dépendent surtout des capacités linguistiques… pas du tout biaisé comme démarche…
    Tu n'as pas du tout suivi... les études montrent que ce sont les régions du cerveau utilisées pour le langage sont mobilisées pour l'écriture de code, pas que c'est directement lié à une meilleure lecture du texte.

    Être bilingue ou plus améliore les performances du cerveau de manière globale, ce n'est pas lié à une langue particulière.

    D'ailleurs d'autres études montrent que c'est également le cas pour les maths, les mathématiciens lisent les maths comme un langage. C'est également le cas pour la musique.
    Citation Envoyé par Un expert en programmation
    D'ailleurs il croit toujours que le JS c'est de la POO

  11. #11
    Expert éminent sénior
    Citation Envoyé par Sodium Voir le message
    Tu n'as pas du tout suivi... les études montrent que ce sont les régions du cerveau utilisées pour le langage sont mobilisées pour l'écriture de code, pas que c'est directement lié à une meilleure lecture du texte.
    .

    De quoi es-tu en train de nous parler ?


    Citation Envoyé par Sodium Voir le message
    Être bilingue ou plus améliore les performances du cerveau de manière globale, ce n'est pas lié à une langue particulière.

    D'ailleurs d'autres études montrent que c'est également le cas pour les maths, les mathématiciens lisent les maths comme un langage. C'est également le cas pour la musique.
    Cela n'a rien à voir avec ce dont je parle.
    "Parce que le diable est dans les détails, une vision sans nuance ne peut prétendre à la compréhension du monde."

    Mon ancienne page perso : https://neckara.developpez.com/

  12. #12
    Membre extrêmement actif
    Ben oui ça n'a rien à voir avec ce dont tu parles puisque tu es hors sujet

    Un cerveau performant en linguistique est plus efficace pour tout ce qui mobilise les zones du langage, et ça ne se limite pas au langage justement.
    Citation Envoyé par Un expert en programmation
    D'ailleurs il croit toujours que le JS c'est de la POO

  13. #13
    Expert éminent sénior
    Citation Envoyé par Sodium Voir le message
    Ben oui ça n'a rien à voir avec ce dont tu parles puisque tu es hors sujet
    Je ne sais même pas ce dont tu parles…

    As-tu regardé l'article donné en source ?

    Citation Envoyé par Sodium Voir le message
    Un cerveau performant en linguistique est plus efficace pour tout ce qui mobilise les zones du langage, et ça ne se limite pas au langage justement.
    Quel est le rapport avec le sujet ou mes propos ? .
    "Parce que le diable est dans les détails, une vision sans nuance ne peut prétendre à la compréhension du monde."

    Mon ancienne page perso : https://neckara.developpez.com/

  14. #14
    Membre extrêmement actif
    Encore une fois c'est parce que tu es hors sujet.

    "Donc ils prennent un langage pour sa ressemblance avec l'anglais pour prouver que les compétences en programmation informatique dépendent surtout des capacités linguistiques… pas du tout biaisé comme démarche…"

    Toi tu parles de la lecture littérale, l'article parle de fonctions cognitives. Bref, si tu ne comprends toujours pas je ne vais pas m'acharner... et du coup tu ne dois pas être très bon en développement
    Citation Envoyé par Un expert en programmation
    D'ailleurs il croit toujours que le JS c'est de la POO

  15. #15
    Membre expérimenté
    Un informaticien, c'est beaucoup plus que quelqu'un qui sait écrire du code. C'est l'étude elle-même qui est hors sujet.

  16. #16
    Expert éminent sénior
    Citation Envoyé par Sodium Voir le message
    Toi tu parles de la lecture littérale, l'article parle de fonctions cognitives. Bref, si tu ne comprends toujours pas je ne vais pas m'acharner... et du coup tu ne dois pas être très bon en développement
    Attends, tu n'as lu que les deux premières lignes de mon message pour ensuite décréter que je suis hors-sujet ?
    Le tout en faisant des assomptions sur ce que j'essayais de dire ?


    Le message que j'essayais de véhiculer est qu'il existe une pléthore de langages et qu'ils se sont basés sur un qui, étrangement, les arrangent. Ce qui introduit un biais dans l'étude.


    De manière générale, certains profils peuvent se retrouver avantagés alors qu'ils pourraient l'être moins avec d'autres langages informatiques, e.g. nécessitant de faire attention aux accolades/parenthèses.

    Notamment, e.g. certaines personnes très douées en langues peuvent se retrouver très vite perdues dès qu'il faut faire preuve d'un peu d'abstraction et utiliser des symboles ou des variables qui ne sont pas directement explicites ou qui ne sont pas des mots/phrases.


    Il ne faut pas oublier que pour les facultés cognitives, il y a beaucoup de corrélations un peu dans tous les sens, ce qui peut donner des avantages à certains profils pour certaines tâches. Par exemple, certaines personnes obtiendront des résultats différent s'il faut reconnaître e.g. une couleur, un mot, un concept, un nombre, ou une forme. De même que certaines personnes auront plus de facilité à associer ou réassocier un concept à un mot qu'à un symbole.
    "Parce que le diable est dans les détails, une vision sans nuance ne peut prétendre à la compréhension du monde."

    Mon ancienne page perso : https://neckara.developpez.com/

  17. #17
    Expert éminent sénior
    Citation Envoyé par BugFactory Voir le message
    Un informaticien, c'est beaucoup plus que quelqu'un qui sait écrire du code. C'est l'étude elle-même qui est hors sujet.
    Sachant que l'étude n'évalue même pas la capacité à écrire du code.

    Elle évalue la capacité à retenir certains éléments du langage, sans forcément garantir que la personne sera capable de lire du code ou de réellement les utiliser.

    Derrière, ils évaluent quand même la capacité d'écrire des bouts de codes de manière très guidé, ce que je n’appellerais pas "écrire du code".


    Mais je te rejoins sur le fait qu'être bon dans un langage de programmation ne se résume pas à être capable de pisser du code.
    "Parce que le diable est dans les détails, une vision sans nuance ne peut prétendre à la compréhension du monde."

    Mon ancienne page perso : https://neckara.developpez.com/

  18. #18
    Membre éclairé
    Et j'irais même jusqu'à me demander si être un bon développeur signifie forcément être bon dans un langage de programmation, ou plutôt est-ce qu'un bon développeur sans une bonne équipe c'est pas un peu comme du nutella dans une fiente, c'est à dire pas un truc que je mangerais...

    Et puis qu'est-ce que c'est être bon, pk la vi ?

    Je pense que les gens feraient mieux d’essayer de s'améliorer en se comparant à eux-mêmes plutôt qu'aux autres...

  19. #19
    Expert éminent sénior
    L'un n'empêche pas l'autre. Le fait d'avoir de bonnes connaissances langagière aide fortement à être un professionnel efficace...indépendamment de la profession. Après, l'étude pour le démontrer est plus que douteuse(36 personnes, ouah, la taille d'échantillon énorme!!! le QCM pour tester les capacités à programmer en Python, c'est énorme aussi...).

    Mais bon, ce n'est pas comme si c'était la première fois qu'on lisait des âneries sur notre métier. Rien qu'en écoutant nos grands chefs parler....
    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.

  20. #20
    Membre confirmé
    Citation Envoyé par Neckara Voir le message
    Sachant que l'étude n'évalue même pas la capacité à écrire du code.

    Elle évalue la capacité à retenir certains éléments du langage, sans forcément garantir que la personne sera capable de lire du code ou de réellement les utiliser.

    Derrière, ils évaluent quand même la capacité d'écrire des bouts de codes de manière très guidé, ce que je n’appellerais pas "écrire du code".


    Mais je te rejoins sur le fait qu'être bon dans un langage de programmation ne se résume pas à être capable de pisser du code.
    Pour compléter, on pourrait dire qu'il font appel avant tout à leur capacité linguistique pour prendre en main leur premier langage en se raccrochant à ce qu'ils connaissent.

    Après c'est clair qu'il en faut un minimum, a chaque fois qu'on rajoute une librairie, on a plein de nouvelle classe... en anglais, mais si t'es pas fichu de comprendre comment c'est censé fonctionner, ça ne te mènera pas plus loin que d'aller demander à google et faire un copier/coller (en n'oubliant pas de citer la source du code copié et la licence ).