Que signifie Dijkstra lorsqu'il recommande une maîtrise exceptionnelle de sa langue maternelle? [fermé]

28

Dijkstra écrit ici :

Outre une inclinaison mathématique, une maîtrise exceptionnellement bonne de sa langue maternelle est l'atout le plus vital d'un programmeur compétent.

Je ne comprends pas la dernière partie de cette citation. Pouvez-vous expliquer ou élaborer?

PS J'ai grandi en Inde. Je parle bengali à la maison; Je parle marathi dans la communauté dans laquelle je vis; L'hindi est la langue nationale et très parlée, donc je le sais, et à l'école et au collège on m'a enseigné l'anglais comme première langue. Bien sûr, maintenant je pense dans une multitude de langues et je dois admettre que je n'en maîtrise aucune . Est-ce que cela affecte vraiment mon aptitude à la programmation? Si oui comment? et y a-t-il des solutions ?

Chani
la source
20
Intéressant ... J'ai un bon ami qui est indien (tamoul), et je l'ai vu une fois geler complètement quand quelqu'un lui a demandé comment dire une phrase "dans sa langue". En discutant avec lui plus tard, j'ai appris qu'il n'avait pas de langue. Lui et sa femme ont grandi en parlant des langues différentes, il ne peut pas parler avec sa belle-famille. Ils parlent tous les deux à peu près la langue de la ville où ils se sont rencontrés et l'anglais. C'est fascinant. Je ne savais pas que l'Inde était si fragmentairement linguistique.
Dan Ray
4
Ce n'est pas un hasard si de très bons programmeurs ont également tendance à être de très bons écrivains; savoir exprimer clairement ses pensées est une nécessité pour les deux métiers.
Jon Purdy
1
Je ne peux m'empêcher de me demander s'il y aurait moins d'interprétations des mots de Dijkstra s'ils étaient écrits dans sa langue maternelle (le néerlandais), où (je suppose) il avait une excellente maîtrise.
Brendan

Réponses:

29

Bien que je sois d'accord avec ce qu'a dit alex et quick_now, je pense qu'il peut y avoir une rotation différente. C'est ma propre théorie et je ne dis pas que Dijkstra voulait dire la même chose.

Qu'est-ce que la «maîtrise d'une langue»: c'est la capacité de prendre les éléments de base d'une langue et de les mettre en phrases et phrases constructives et utiles. Les alphabets et les personnages n'ont pas de sens en eux-mêmes. Vous devez les rassembler et en tirer un sens. Les mots n'ont pas de sens par eux-mêmes; ce n'est que lorsque vous les mettez dans un ordre approprié basé sur la syntaxe et la grammaire qu'ils expriment des idées concrètes.

N'est-ce pas exactement la même chose en programmation informatique? Nous avons rassemblé quelques mots-clés et symboles et en faisons des choses concrètes et réalisables. Un langage de programmation a des symboles et une grammaire comme un langage naturel. La maîtrise d'un langage de programmation nécessite la capacité de rassembler ces symboles et ces règles (individuellement sans signification) pour rendre quelque chose de significatif et d'utile.

Je crois que cela signifie qu'il existe une corellation directe entre la capacité d'une personne à apprendre une langue humaine et une langue informatique. Les deux ont besoin du même ensemble de capacités humaines et de capacité de réflexion. Jetez un œil à vos collègues et vous constaterez que ceux qui ont de faibles compétences en programmation sont également ceux qui ne peuvent pas parler ou écrire aussi clairement que les autres. Ceux qui savent bien choisir les langues humaines ont les compétences nécessaires pour devenir aussi de bons programmeurs.

DPD
la source
3
+1, c'était mon interprétation initiale de la déclaration de Dijkstra quand je l'ai lu.
Rob
1
@quickly_now: "un grand nombre de programmeurs qui peuvent écrire un très bon code mais qui manquent de capacité à bien communiquer en parlant ou en écrivant" Je contesterais cela. Je changerais cela de très bon en acceptable . Après 30 ans en tant qu'entrepreneur, j'ai rencontré beaucoup de programmeurs. Les inarticulés peuvent - à terme - produire du code de travail. Mais les bons programmeurs peuvent réellement écrire dans une variété de langues, à la fois naturelles et artificielles.
S.Lott
4
L'essence d'être un bon programmeur est d'être un bon communicateur. Voilà comment je l'ai interprété.
Neil
8
@quickly_now, Neil, Onesimus; Je pense que c'est un peu plus profond que la communication verbale ou écrite. Je crois qu'il parle de la relation entre le langage et la cognition, par exemple. web.mit.edu/newsoffice/2008/language-0624.html . Je pense que cela signifie la maîtrise de certains tonques (généralement le ton natif, car il est rare de devenir plus compétent dans une deuxième ou une troisième langue) indique de solides constructions linguistiques linguistiques qui correspondent directement à la capacité de programmation.
Rob
1
@OnesimusUnbound, je pense que Dijkstra a mentionné la langue maternelle parce qu'il est logique de s'attendre à ce que les gens soient bons dans leur langue maternelle (qui dans de nombreux cas mais pas tous, est aussi leur langue de construction) mais pas nécessairement dans leur deuxième / troisième langue . Cependant, dans le monde moderne, cela peut être différent, par exemple, je suis beaucoup mieux en anglais que dans ma langue maternelle. Mais c'est parce que je ne l'ai jamais appris à l'école
DPD
23

Dijkstra dit que vous devez être capable d'écrire et de parler clairement, avec concision et force dans la langue ambiante de votre lieu de travail. Il a parfaitement raison: à moins que vous ne puissiez parler et écrire sur des problèmes techniques (et non techniques) d'une manière que les autres puissent comprendre immédiatement, vous êtes gêné et quelque peu inefficace en tant qu'ingénieur logiciel.

L'idée est que l'écriture sur le code est aussi importante que l'écriture du code lui-même.

SO est l'exemple parfait: combien de fois avons-nous vu de bonnes questions incisives et précieuses rejetées ou fermées parce que l'affiche ne pouvait pas bien s'exprimer en anglais? Réponse: trop.

Pete Wilson
la source
7

La citation dit que vous devez connaître votre langue maternelle (par exemple le marathi dans votre cas). C'est un atout important.

Les psychologues pensent généralement que bien connaître une langue vous aide à mieux exprimer vos pensées. Certains disent que toute notre réflexion se limite à notre langue principale. Plus la langue (et sa connaissance) est riche, mieux la personne peut communiquer et structurer ses idées.

La connaissance de plusieurs langues permet également de comprendre différents modèles de pensée.

alexwriteshere
la source
7
Si «Certains disent que toute la réflexion que nous faisons se limite à notre langue principale» est vraie, alors ma langue maternelle n'est pas (plus) ma langue principale? Com'on. Ma langue maternelle et principale est le néerlandais, mais ma langue de réflexion pendant la programmation est l'anglais ... Et pas seulement parce que la plupart de la terminologie et presque tous les articles qui m'aident à réfléchir aux défis de la programmation sont en anglais. En fait, j'ai du mal à travailler avec un ordinateur qui parle le néerlandais chez moi, ne trouve rien et se fie à la localisation des menus. (Une autre raison pour laquelle le menu personnalisé est nul).
Marjan Venema
7

En regardant la pièce dans son intégralité, c'est une liste intéressante mais qui date de 1975. Il est juste de dire que dans une certaine mesure, les temps ont changé entre-temps, rendant certaines parties de cette liste de principes quelque peu obsolètes.

Une compétence clé que les programmeurs devraient, je pense, doit avoir la capacité de communiquer efficacement. Cela ne signifie pas seulement une explication; cela signifie comprendre. Quelle que soit votre langue de travail, l'anglais dans votre cas, bien que ce ne soit pas votre langue maternelle, ceux qui ont des difficultés à communiquer efficacement dans leur langue maternelle ne le trouveront pas plus facile ailleurs.

D'une manière générale, il est juste de dire que quelle que soit votre position dans la vie, si vous avez des difficultés dans votre langue maternelle, vous serez désavantagé dans votre vie de tous les jours.

Je ne serais pas coupé sur ce qu'il entend par maîtrise - sur la base de votre contribution ci-dessus, je soupçonne que vous avez une maîtrise plus qu'adéquate de l'anglais et de cela, j'extrapole que vous communiquez efficacement dans vos autres langues.

temptar
la source
Vrai. Je pense que Dijkstra a raison, mais le mot "programmeurs" devrait être remplacé par "informaticiens". Bien sûr, un scientifique doit être capable de discuter et d'écrire dans un langage clair. La même chose s'applique aux programmeurs: vous ne m'attirez pas à penser que vous discutez avec vos collègues (également natifs) dans une autre langue. Ici aux Pays-Bas, tous les environnements de développement sont en anglais, mais quand je discute avec mes collègues d'un morceau de code, nous le faisons en néerlandais.
vstrien
@vstrien alors dites-moi ami ce que vous ferez si chacun de vos collègues parlait une langue maternelle différente? c'est la situation ici. chaque corps vient d'un "état" indien différent et ils ont une langue différente (je ne veux pas dire dialecte .. je veux dire langue) j'espère que vous pouvez mettre votre tête autour de cela: P et c'est exactement ce que ma question était .. je ne sais pas vraiment penser dans une langue particulière (je ne peux pas me permettre car je dois parler près de 3 langues avec 6 personnes diff en une heure) Ce que je voulais demander, c'était si cela allait être une mauvaise pratique
Chani
RYUZAKI, c'est une situation que les gens rencontrent dans de nombreux horizons différents. J'avais l'habitude de travailler dans une organisation qui avait 3 langues de travail. Dans une entreprise comme la vôtre, si vous avez une langue de travail, vous vous débrouillez bien. Ce que vous constaterez, c'est que certaines parties de votre vie fonctionneront dans certaines langues.
temptar
@RYUZAKI: désolé, je ne vous adressais pas quand j'ai dit que vous ne discutez pas avec vos collègues dans une langue non native :). Mais je pense que dans ce cas, il est important de trouver des moyens de communiquer clairement - et la chose la plus simple à laquelle je peux penser est d'utiliser une langue pour s'expliquer. Encore une fois, je ne pense pas que cela vous affecte dans vos compétences en programmation, mais bien sûr, cela nuit à la productivité si vous ne pouvez pas communiquer sur du code ..
vstrien
1
@temptar: "un nombre important et croissant de programmeurs dans le monde sans formation en mathématiques appliquées" n'invalide pas du tout la déclaration. Votre observation équivaut à «des personnes sans formation formelle en mathématiques peuvent encore apprendre certaines des mathématiques appliquées à la programmation». Je suis d'accord avec votre observation. Mais cela n'invalide pas (ou obsolète) la déclaration de Dijkstra. En effet, cela semble complémentaire.
S.Lott
5

Je soupçonne qu'il fait référence à une bonne compréhension de ce que les gens attendent de vous - en d'autres termes, une bonne capacité de communication verbale.

(Pour mettre ma propre perspective: une partie de cela signifie, dans le contexte de la programmation, que parfois vous devez comprendre ce que les gens NE disent PAS, ou ce qu'ils disent, mais pas très clairement.)

vite_maintenant
la source
1
J'y mettrais également la possibilité de transmettre clairement vos idées aux autres. L'un est tout aussi important que l'autre imo :)
Demian Brecht
1
Je suis d'accord avec ce que vous dites, mais je ne pense pas que ce soit du tout ce dont Dijkstra parle.
Rob
1
Tout cela me rappelle des cours de littérature anglaise au lycée. Vous pouvez discuter pendant des heures sur ce que l'auteur voulait dire. Je me demandais toujours pourquoi nous n'allions pas simplement leur demander. Oh ... Littérature anglaise. Certains d'entre eux sont morts maintenant. (J'ai toujours pensé que vous ne devriez pas trop essayer d'interpréter F Scott Fitzgerald - sa vision du monde a été formée en le regardant à travers une bouteille de whisky. Mon professeur d'anglais n'a pas aimé que je le dise non plus.)
quick_now
Vous pouvez argumenter inutilement pendant des heures, ou vous pouvez soutenir vos arguments avec des faits. Par exemple, regardez les autres citations de Dijkstra sur la même page, par exemple. "Il est pratiquement impossible d'enseigner une bonne programmation aux étudiants qui ont déjà été exposés au BASIC: en tant que programmeurs potentiels, ils sont mutilés mentalement au-delà de tout espoir de régénération." - reprenant à nouveau le thème du langage et de la cognition.
Rob
Et une telle déclaration est simplement incendiaire. Crikey, j'ai commencé la programmation en BASIC il y a environ 30 ans parce que c'était tout ce qu'il y avait. Je ne me considère pas comme un surhomme, mais je ne suis pas non plus "mutilé mentalement au-delà de tout espoir de régénération". Je trouve qu'une telle déclaration est assez offensante, et cela signifie que je considère tout ce qu'il dit comme ayant une crédibilité limitée.
quick_now
2

Je pense qu'être bon dans (n'importe quelle) langue sert cela -

Si votre point n'est pas clair, vous pouvez penser, réviser, reformuler de manière améliorée. Jusqu'à ce que ce que vous dites soit exactement ce que vous voulez que la prochaine personne (ou machine) comprenne.

essbeev
la source