Newsletter Developpez.com

Inscrivez-vous gratuitement au Club pour recevoir
la newsletter hebdomadaire des développeurs et IT pro

« Apprendre un langage de programmation, c'est comme apprendre une nouvelle langue »
Vrai ou faux ?

Le , par Katleen Erna, Expert éminent sénior
"Apprendre un langage de programmation c'est comme apprendre une nouvelle langue" : vrai ou faux ?

Apprendre un langage de programmation, c'est comme apprendre un autre langage. C'est pareil.

Voilà le genre d'analogie qui l'on peut entendre et lire très fréquemment. Même des professeurs d'informatique emploient de tels propos.

Mais vous, qu'en pensez-vous ?

Je connais par exemple certains développeurs très doués pour jongler d'une langage à l'autre, mais qui par ailleurs sont inconpétents lorsqu'il s'agit d'apprendre une langue étrangère (la plus facile soit elle).

Les différences entre langages formels et naturels sont en effet de taille.

Deux camps s'affrontent ici : ceux qui pensent que le C++ s'apprend comme l'anglais ou l'allemand ; et ceux qui pensent que le C++ s'apprend plutôt comme le solfège et l'écriture des partitions.

Alors, selon vous, apprendre un langage de programmation, c'est comme apprendre une langue étrangère ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de rem02 rem02 - Membre du Club https://www.developpez.com
le 01/04/2010 à 18:51
Mon dieu....

Je ne sais pas parler l'allemand. J'ai totalement oublier l'espagnole et l'anglais.

Pourtant, je code en JAVA, C++, C, PHP, JEE, .NET (C#, VB, ASP)...

Et je trouve plus simple d'apprendre un langage de prog, plutôt qu'une langue...
Avatar de Kalishah Kalishah - Membre habitué https://www.developpez.com
le 01/04/2010 à 22:37
Je pense qu'un langage de programmation n'est pas comparable à un langage humain...

En premier lieu le langage humain est un vecteur d'information entre des êtres intelligents, capables d'abstraction et d'interprétation. Un langage humain sert à informer, échanger des idées, formuler des sensations, exprimer des sentiments... Un langage informatique sert quant à lui à formaliser un ensemble d'instructions destinées à être exécutées par une machine. La machine ne pense pas et ne ressent pas, elle se contente juste au final d'exécuter ce qu'on lui demande de faire à travers une série de 1 et de 0.

Le langage humain est intimement lié à la pensée. Il n'y a pas de pensée sans mot. Par ailleurs le langage humain s'exprime dans un contexte... selon des circonstances, selon une intonation... Des mots identiques peuvent parfois avoir des sens très différents. Et puis... avez-vous déjà essayé d'exprimer la colère, la compassion, ou encore l'ironie en javascript, en php ou en C++ ?

Un langage de programmation est une formalisation du langage humain. C'est un modèle de pensée intermédiaire entre le langage humain et le langage machine, binaire. On distingue d'ailleurs des langages de haut niveau, un peu plus proches de la pensée humaine (comme les langages objet), des langages de bas niveau.

L'apprentissage d'un langage de programmation (mots, syntaxe, mais aussi bibliothèques, architectures...) est davantage comparable à l'apprentissage d'une mathématique. Car de la même manière, les mathématiques sont un modèle de pensée intermédiaire entre le langage humain et la réalité physique du monde.

EDIT : je ne suis pas neurobiologiste, mais je parie que lorsqu'on "pisse" du code et lorsqu'on s'essaye à demander son chemin à Londres, ce ne sont pas les mêmes régions du cerveau qui sont sollicitées.
Avatar de javan00b javan00b - Membre actif https://www.developpez.com
le 02/04/2010 à 2:41
je pense perso que cest une mauvaise comparaison.

quand on apprend son premier language de programmation cest plus semblable a developper un 6eme sens.

quand ce 6eme sens est developpé et quon a maitrisé tout les subtilités de la programmation avec un "bon" language, disons le java et qu'on veux ensuite apprendre le c# exemple...

sa peux prendre 2semaine et personellement tu peux codé pas mal n'importe quel language intuitivement quand tu connais la base sans avoir besoin de l'apprendre... Contrairement a apprendre l'espagnol qui pourrai prendre des mois pourquoi ?

parce que les languages comme le francais, l'anglais, l'espagnol etc... n'ont aucune logique et base commune entre eux, tandis que les langues de programmation sont GÉNÉRALEMENT structuré de la meme facon.
Avatar de gmotw gmotw - Membre confirmé https://www.developpez.com
le 02/04/2010 à 9:16
Prend plutôt le français, le chinois et le russe comme exemple de langage, et non pas des langues d'origines latines. Parce que justement par leur origine, elles ont une logique et base commune.
Avatar de Patriarch24 Patriarch24 - Membre expérimenté https://www.developpez.com
le 02/04/2010 à 9:50
Autre piste que j'avais oubliée (honte à moi) : les travaux de Noam Chomsky sur les langages formels, et les travaux dérivés sur les sciences cognitives, l'apprentissage et la pratique des langages.

Si on se place au niveau de l'apprentissage d'une grammaire, d'une syntaxe et d'un vocabulaire (i.e. les mots clés), alors on peut y voir une certaine analogie. Seulement, dans ce cas, on a réduit les langues naturelles (vivantes ou mortes d'ailleurs) à leur expression la plus réduite et totalement dénuées de sens : la pensée, le sens commun, l'histoire, les tons, les sentiments, ... sont ignorés, alors qu'ils constituent la quasi intégralité de ce qui fait la difficulté d'une langue.
Avatar de obliveon obliveon - Membre habitué https://www.developpez.com
le 02/04/2010 à 13:16
Citation Envoyé par Katleen Erna  Voir le message
"Apprendre un langage de programmation c'est comme apprendre une nouvelle langue" : vrai ou faux ?

Apprendre un langage de programmation, c'est comme apprendre un autre langage. C'est pareil.

[...]

Personnellement, je pense que c'est totalement faux.
Pour moi la seule chose en commun entre un langage de proprammation et le langage humain est le terme "langage".

L'un comme l'autre se basent sur une grammaire et un vocabulaire.
Mais n'oublions pas que les livres de grammaire et les dictionnaires sont venus après le langage oral. D'ailleurs on distingue les livres de grammaires normatives des livres de grammaires descriptives.

Par contre, pour un langage informatique c'est plutôt le contraire, impossible de créer un programme informatique correct sans avoir établit les règles sous-jacentes.

On peut très bien communiquer dans une langue sans pour autant avoir étudier un livre de grammaire ou un dictionnaire. Pour preuve, mon frère est handicapé mental, il a commencé seulement à communiquer à partir de l'âge de 30 ans, et pourtant il ne sait ni lire ni écrire. Il n'a jamais appris les règles de grammaire et de conjugaison. Comment a-t-il appris ? Je pense que le rôle de son environnement a dû jouer (télévision, conversations extérieurs). Certes, il ne deviendra pas homme politique, mais il communique.

Me concernant, j'ai commencé à améliorer mon niveau d'anglais, en abandonnant les méthodes classiques apprises à l'école (collège, lycée). En m'imprégnant par l'écoute et la lecture de contenus intéressants et compréhensibles.

Le problème avec la méthode académique est qu'elle privilégie surtout l'écriture (exercices et tests). Certes, il faut une base lexical solide, mais je pense que se concentrer uniquement sur cette méthode ne risque pas de faire de nous des personnes communiquant avec aisance et confiance.

Du collège au lycée, je n'ai fait que cela, exercices sur exercices, travaux de compréhension de textes sur travaux de compréhension de textes, ma moyenne d'anglais était autour de 16 sur 20.
Par contre, niveau oral, quel catastrophe, sachant qu'en moyenne une classe de langue contient entre 25 et 30 élèves, et qu'un cours dure en général 1 heure (non pleine), je doute fort qu'au bout d'une année scolaire que chaque élève ait pu avoir au moins une trentaine d'heures de paroles.

Pour moi, l'apprentissage d'une langue étrangère doit commencer par la compréhension orale, ensuite écrite. Mais surtout, le plus important, faire en sorte que le contenu soit motivant et varié.
Selon moi les contenus académiques c'est bon les trois premières années mais ensuite, il y a de quoi démotiver le plus travailleur, car trop ennuyeux. Une langue vivante est censé être vivante.

Enfin, pour terminer, je dirai que le professeur est là uniquement pour guider et motivé l'élève. Lui donner des conseils sur des contenus appropriés à son niveau, ensuite c'est à l'élève de s'impliquer dans l'apprentissage de la langue.

Je ne pense pas que l'on puisse apprendre une langue étrangère comme une autre matière tel que les maths, la physique ou la littérature, matières où la présence du professeur est essentiel. Alors que pour une langue, il ne l'est que pour les bases.

Voilà mon point de vue.

Edit :
La grosse différence est qu'un langage informatique (plutôt le compilateur) tel que le C va râler si vous oubliez de fermer une accolade, un point virgule ou si vous écrivez "scan" au lieu de "scanf". Il est pas aussi tolérant qu'un interlocuteur humain où ce dernier s'intéressera au contenu du message avant tout (même si vous avez fait des fautes d'accords à l'oral ou de conjugaison).

De plus, je n'ai jamais eu l'impression de communiquer avec mon PC, c'est juste un "simple" programme. Entre un utilisateur et une machine il y a juste un semblant de communication (un échange d'informations), le programme est là essentiellement pour résoudre un problème. Contrairement à la communication inter-personnelle où chaque interlocuteur exprime des idées, des informations, des sentiments.
Avatar de Epica84 Epica84 - Membre habitué https://www.developpez.com
le 02/04/2010 à 16:00
Citation Envoyé par Sebish  Voir le message
Peut-être que le jour ou Eclipse me sortira du javascript avec un accent québécois je pourrais commencer à me poser la question.



Vous utilisez pas eclipse en anglais??? Pourtant vous avez l'ai pro JAVA donc je penser que vous utilisiez la Version english of course

Cordialement
Avatar de wakan wakan - Membre averti https://www.developpez.com
le 03/04/2010 à 17:35
Citation Envoyé par Killing Joke  Voir le message
C'est faux : il est beaucoup, beaucoup, beaucoup plus facile d'apprendre un nouveau langage de programmation de même "typologie" qu'une nouvelle langue. En ce sens l'effort n'est pas du tout le même.
Par contre apprendre un langage basé sur un autre paradigme (de l'object quand on vient du procédural, un langage impératif comme lisp quand on vient de l'objet, etc.) n'est pas du tout pareil que d'apprendre une nouvelle langue non plus (il n'y a pas que la grammaire et le vocabulaire qui changent ;..).

+1
Avatar de ypicot ypicot - Membre confirmé https://www.developpez.com
le 04/04/2010 à 20:55
Citation Envoyé par Kalishah  Voir le message
L'apprentissage d'un langage de programmation (mots, syntaxe, mais aussi bibliothèques, architectures...) est davantage comparable à l'apprentissage d'une mathématique.
(...)
EDIT : je ne suis pas neurobiologiste, mais je parie que lorsqu'on "pisse" du code et lorsqu'on s'essaye à demander son chemin à Londres, ce ne sont pas les mêmes régions du cerveau qui sont sollicitées.

Je plussois largement, et me pose exactement la même question concernant l'activité cérébrale d'un développeur.
Un détail qui me concerne, mais qui d'après un prof d'anglais est assez courant : je peux penser en anglais, et lors d'une discussion, je n'ai pas besoin de traduire ce que me dit mon interlocuteur. SAUF pour les nombres. Je suis absolument incapable de comprendre un nombre en anglais : je suis obligé de le décomposer et de le traduire (ce qui me fait perdre le fil de la discussion).

Ce phénomène est semble-t-il assez fréquent, et est dû au fait qu'on n'utilise pas les mêmes zones pour la langue "courante" que pour les nombres.

Je pense qu'on peut en déduire que "comprendre un nombre en anglais" est qque chose de différent de "parler en anglais".

Alors, comparer "apprendre l'anglais" avec "apprendre le C++"...

Yvan
Avatar de jkakim jkakim - Membre régulier https://www.developpez.com
le 05/04/2010 à 11:18
C'est totalement erroné !
On ne peut comparer un langage de programmation à un langage humain !
Je marche avec tous ceux dise non. Dans le sens qu'un langage humain a une plus grande complexité, avec un très grand dictionnaire de mots, une sémantique complexe pouvant variée selon le ton et prononciation, dans certains cas. Et une possibilité de détour comme l'ARGO et le mode contracté, ... Les possibilités sont énormes, aussi le temps et l'effort d'apprentissage est grande et très différentes.

Un enseignant dit : "Apprendre un langage de programmation revient à apprendre la signification de ses mots natifs et leur agencement".
Là encore, il est important de noter que les langages de programmation se limitent à l'écriture tandis que les langages humains vont jusqu'au parler : avec étude de phonétique, ton et autres.

Comparer ce qui est comparable c'est le début de la sagesse.

Et non : "Y a -t- il une différence entre un pain et un peigne ?"
Avatar de Bryce de Mouriès Bryce de Mouriès - Membre actif https://www.developpez.com
le 06/04/2010 à 10:55
Ah je viens de remarquer qu'il est en réalité beaucoup plus simple pour un très bon linguiste d'apprendre une nouvelle langue, Daniel Jackson y parvient en moins d'une minute avec seulement un texte ancien de plusieurs millénaires retrouvé sur une planète morte à des années lumières de notre galaxie. On ne peut pas lutter contre ça :/
Offres d'emploi IT
Architecte et intégrateur scade/simulink H/F
Safran - Ile de France - Vélizy-Villacoublay (78140)
Consultant sap finance/controlling H/F
Safran - Ile de France - Vélizy-Villacoublay (78140)
Ingénieur conception en électronique de puissance H/F
Safran - Ile de France - Moissy-Cramayel (77550)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil