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 ?
Réponses:
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.
la source
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.
la source
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.
la source
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.
la source
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.)
la source
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.
la source