Dijkstra schreibt hier :
Neben einer mathematischen Neigung ist eine außergewöhnlich gute Beherrschung der Muttersprache das wichtigste Kapital eines kompetenten Programmierers.
Ich verstehe den letzten Teil dieses Zitats nicht. Können Sie das bitte erklären oder erläutern?
PS Ich bin in Indien aufgewachsen. Ich spreche zu Hause Bengalisch . Ich spreche Marathi in der Gemeinde, in der ich lebe. Hindi ist die Landessprache und wird sehr häufig gesprochen, daher weiß ich das. In der Schule und am College wurde mir Englisch als Muttersprache beigebracht. Natürlich denke ich jetzt in einer Vielzahl von Sprachen und ich muss zugeben, dass ich keine beherrsche . Beeinträchtigt das wirklich meine Programmierfähigkeit? Wenn ja wie? und gibt es irgendwelche lösungen ?
Antworten:
Ich stimme zwar dem zu, was alex und quick_now gesagt haben, aber ich glaube, dass es einen anderen Dreh geben kann. Dies ist meine eigene Theorie und ich behaupte nicht, dass Dijkstra dasselbe meinte.
Was ist "Beherrschung einer Sprache": Es ist die Fähigkeit, die Grundbausteine einer Sprache zu nehmen und sie in konstruktive, nützliche Phrasen und Sätze zu fassen. Alphabete und Zeichen sind an sich bedeutungslos. Sie müssen sie zusammenfügen und eine Bedeutung daraus ziehen. Worte sind für sich genommen bedeutungslos; Nur wenn Sie sie in eine richtige Reihenfolge bringen, die auf Syntax und Grammatik basiert, drücken sie konkrete Ideen aus.
Ist es nicht genau das gleiche in der Computerprogrammierung? Wir haben ein paar Schlüsselwörter und Symbole zusammengestellt und daraus konkrete, praktikable Dinge gemacht. Eine Programmiersprache hat Symbole und Grammatik wie eine natürliche Sprache. Die Beherrschung einer Programmiersprache setzt die Fähigkeit voraus, diese (individuell bedeutungslosen) Symbole und Regeln zusammenzusetzen, um etwas Sinnvolles und Nützliches zu schaffen.
Ich glaube, dies bedeutet, dass es eine direkte Korrelation zwischen der Fähigkeit einer Person, eine menschliche Sprache zu lernen, und einer Computersprache gibt. Beide benötigen die gleichen menschlichen Fähigkeiten und Denkfähigkeiten. Werfen Sie einen Blick auf Ihre Kollegen, und Sie werden feststellen, dass diejenigen mit schlechten Programmierkenntnissen auch nicht so klar sprechen oder schreiben können wie andere. Diejenigen, die sich gut mit menschlichen Sprachen auskennen, verfügen über die erforderlichen Fähigkeiten, um auch gute Programmierer zu werden.
quelle
Dijkstra sagt, dass Sie in der Lage sein müssen, klar, präzise und kraftvoll in der Umgebungssprache Ihres Arbeitsplatzes zu schreiben und zu sprechen. Er hat vollkommen recht: Wenn Sie nicht auf eine Weise über technische (und nichttechnische) Probleme sprechen und schreiben können, die andere sofort verstehen, sind Sie als Softwareentwickler behindert und ineffektiv.
Die Idee ist, dass das Schreiben über Code genauso wichtig ist wie das Schreiben des Codes selbst.
SO ist das perfekte Beispiel: Wie oft haben wir gute, einschneidende, wertvolle Fragen gesehen, die weggeblasen oder geschlossen wurden, weil sich das Poster nicht gut auf Englisch ausdrücken konnte? Antwort: zu viele.
quelle
Das Zitat besagt, dass Sie Ihre Muttersprache kennen müssen (zB Marathi in Ihrem Fall). Dies ist ein wichtiges Kapital.
Psychologen sind im Allgemeinen der Meinung , dass es Ihnen hilft, Ihre Gedanken besser auszudrücken, wenn Sie eine Sprache gut kennen. Einige sagen, dass alles, was wir denken, auf unsere Primärsprache beschränkt ist. Je reicher die Sprache (und das Wissen darüber) ist, desto besser kann die Person die Ideen kommunizieren und strukturieren.
Wenn Sie mehrere Sprachen kennen, können Sie auch verschiedene Denkmodelle verstehen.
quelle
Betrachtet man das Stück in seiner Gesamtheit, so handelt es sich um eine interessante Liste, die jedoch aus dem Jahr 1975 stammt. Man kann durchaus sagen, dass sich die Zeiten in der Zwischenzeit in gewissem Maße geändert haben und Teile dieser Liste von Grundsätzen etwas veraltet sind.
Eine Schlüsselkompetenz, die Programmierer meiner Meinung nach haben sollten, ist die Fähigkeit, effektiv zu kommunizieren. Dies bedeutet nicht nur eine Erklärung; es bedeutet Verständnis. Unabhängig davon, was Ihre Arbeitssprache ist, Englisch in Ihrem Fall, obwohl nicht Ihre Muttersprache, werden diejenigen, die Schwierigkeiten haben, effektiv in ihrer Muttersprache zu kommunizieren, es anderswo nicht einfacher finden.
Generell kann man sagen, dass Sie unabhängig von Ihrer Position im Leben im Alltag benachteiligt sind, wenn Sie Schwierigkeiten in Ihrer Muttersprache haben.
Ich würde mich nicht darüber aufregen lassen, was er mit Meisterschaft meint - basierend auf Ihrem Beitrag oben, ich vermute, dass Sie mehr als ausreichende Englischkenntnisse haben und ich extrapoliere, dass Sie effektiv in Ihren anderen Sprachen kommunizieren.
quelle
Ich vermute, er bezieht sich auf ein gutes Verständnis dessen, was die Leute von Ihnen wollen - mit anderen Worten, gute verbale Kommunikationsfähigkeit.
(Um es selbst zu sagen: Ein Teil davon bedeutet im Zusammenhang mit der Programmierung, dass man manchmal verstehen muss, was Leute NICHT sagen oder was sie sagen, aber nicht sehr klar.)
quelle
Ich denke, in (jeder) Sprache gut zu sein, dient dazu -
Wenn Ihr Standpunkt nicht klar ist, können Sie besser denken, überarbeiten und neu formulieren. Bis Sie genau das sagen, was die nächste Person (oder Maschine) verstehen soll.
quelle