ダイクストラは、母国語の非常に優れた習得を勧めるとき、どういう意味ですか?[閉まっている]


28

ダイクストラはここに書いています

数学的な傾向に加えて、母国語の非常に優れた習熟は、有能なプログラマーの最も重要な資産です。

この引用の後半部分は理解できません。説明または詳しく説明してください。

PS私はインドで育ちました。私は家でベンガル語を話します。私は住んでいるコミュニティでマラーティー語を話します。ヒンディー語は国語であり、非常に広く話されているので、私はそれを知っています。学校や大学では英語を第一言語として教えられました。もちろん、今では多くの言語で考えているので、どの言語にも習熟していないことを認めなければなりません。これは私のプログラミングの適性に本当に影響しますか?はいの場合、どのように?そして、解決策はありますか?


20
おもしろい...私はインド人(タミル語)の良い友人がいて、誰かが「彼の言語で」フレーズをどう言うか尋ねたときに彼が完全にフリーズするのを見たことがあります。後で彼と話をすると、彼は言語を持っていないことを知りました。彼と彼の妻は完全に異なった言語を話すように育った、彼は彼の義理と話すことができない。二人とも出会った街の言語と英語をほとんど話します。とても魅力的です。インドが言語的に断片化されているとは思いもしませんでした。
ダン・レイ

4
非常に優秀なプログラマーが非常に優秀な作家になる傾向があることは偶然ではありません。あなたの考えを明確に表現する方法を知ることは、両方の工芸にとって必要です。
ジョンパーディ

1
ダイクストラの言葉が彼の母国語(オランダ語)で書かれていれば、彼の言葉の解釈が少ないのではないかと疑問に思わずにはいられません。
ブレンダン

回答:


29

私はアレックスとクイックナウが言ったことに同意しますが、別のスピンがあるかもしれないと信じています。これは私自身の理論であり、ダイクストラが同じことを意味していることを示唆していません。

「言語の習得」とは:言語の基本的な構成要素を取得し、それらを建設的で有用なフレーズや文にする能力です。アルファベットと文字自体は無意味です。それらをまとめて、意味を引き出す必要があります。言葉自体は無意味です。具体的なアイデアを表現するのは、構文と文法に基づいて適切な順序で並べた場合のみです。

コンピュータプログラミングでもまったく同じではないですか?いくつかのキーワードと記号をまとめ、それらから具体的な実行可能なものを作成します。プログラミング言語には、自然言語と同じように記号と文法があります。プログラミング言語を習得するには、これらの(個々に意味のない)シンボルとルールを組み合わせて、意味のある便利なものにする能力が必要です。

これは、人間の言語を学習する人の能力とコンピューター言語との間に直接的な相関関係があることを意味すると考えています。両方とも、同じ人間の能力と思考能力のセットが必要です。同僚を見てみると、プログラミングスキルの低い人も、他の人ほどはっきりと話すことも書くこともできないことがわかります。人間の言語を選ぶのが得意な人は、優れたプログラマーになるために必要なスキルを持っています。


3
+1、これはダイクストラの声明を読んだときの最初の解釈でした。
ロブ

1
@quickly_now:「非常に多くのプログラマーは、非常に優れたコードを書くことはできますが、話すか書くかのいずれかでうまくコミュニケーションする能力に欠けています」と私は異議を唱えます。それを非常に良いから許容できるもの変更します。請負業者として30年後、多くのプログラマーに会いました。明確でないものは、最終的には動作するコードを生成する可能性があります。しかし、優秀なプログラマーは実際には、自然言語と人工言語の両方のさまざまな言語で書くことができます。
S.Lott

4
優れたプログラマーであることの本質は、優れたコミュニケーターであることです。それが私がそれを解釈した方法です。
ニール

8
@quickly_now、ニール、オネシモ; 言葉によるコミュニケーションや書面によるコミュニケーションよりも少し深いと思います。彼は言語と認知の関係について話していると思う。web.mit.edu/newsoffice/2008/language-0624.html。いくつかの音調(通常、第2または第3の言語に習熟することは珍しいので、ネイティブの音)を習得することは、プログラミング能力に直接対応する強力な精神言語構造を示していると思います。
ロブ

1
@OnesimusUnbound、ダイクストラが母国語に言及したのは、人々が彼らの母国語(多くの場合ではなく、すべてではなく、彼らの失語の言語でもある)であると期待することは論理的であるが、必ずしも彼らの第二/第三言語ではないためだと思う。しかし、現代の世界では異なる場合があります。たとえば、母国語よりも英語のほうがずっと上手です。しかし、それは学校で学んだことがないためです
DPD

23

ダイクストラは、職場の周囲の言語ではっきりと、簡潔に、そして力強く書き、話すことができなければならないと言っています。彼は完全に正しい:技術的な(および非技術的な)問題について他の人がすぐに理解できる方法で話したり書いたりできない限り、あなたは妨げられ、ソフトウェアエンジニアとしてやや効果がありません。

つまりコードについて書くことは、コード自体を書くことと同じくらい重要だということです。

SOは完璧な例です。ポスターが英語で自分自身をうまく表現できなかったために、良い、鋭く、価値のある質問が吹き飛ばされたり閉じられたりしたのを見たことがありますか?回答:多すぎる。


7

引用文では、母国語(例ではマラーティー語)を知る必要があると書かれています。これは重要な資産です。

心理学者は、一般的に考えても、言語を知ることは、あなたがより良い自分の考えを表現することができますことを。一部の人は、私たちが行うすべての思考は私たちの第一言語に限定されていると言います。言語(およびその知識)が豊富であればあるほど、その人はアイデアを伝え、構造化することができます。

複数の言語を理解することは、異なる思考モデルを理解するのにも役立ちます。


7
「私たちが行うすべての考えが私たちの第一言語に限定されていると言う人がいる」が本当なら、私の母国語は(もはや)私の第一言語ではありませんか?こっち 私の母国語と第一言語はオランダ語ですが、プログラミング中の私の思考言語は英語です...そして、プログラミングの課題について考えるのに役立つ用語のほとんどとほとんどすべての記事が英語で書かれているだけではありません。実際、私とオランダ語を話すコンピューターを操作することは難しく、何も見つけられず、物事のメニューの場所に大きく依存しています。(パーソナライズされたメニューがひどい別の理由)。
マルジャンヴェネマ

7

作品全体を見ると、それは興味深いリストですが、1975年にさかのぼります。それまでの期間はある程度変化し、その教義のリストの一部はやや時代遅れになっていると言っても過言ではありません。

プログラマーが持つべきだと思う重要なスキルは、効果的なコミュニケーション能力です。これは単なる説明を意味するものではありません。それは理解することを意味します。あなたの母国語ではなくても、あなたの仕事の言語があなたの場合は英語であることに関係なく、母国語で効果的にコミュニケーションするのに苦労している人は他の場所でそれを簡単に見つけることはできません。

一般的な注意として、あなたの人生の位置に関係なく、あなたの母国語が困難な場合、あなたは日々の生活で不利になるでしょう。

私は彼が習得によって何を意味するのか分からないでしょう-あなたの上記の貢献に基づいて、私はあなたが十分な英語のコマンドを持っていると思うので、あなたは他の言語で効果的にコミュニケーションをとっていると推測します。


本当です。ダイクストラにはポイントがあると思いますが、「プログラマー」という言葉は「コンピューター科学者」に置き換える必要があります。もちろん、科学者は明確な言葉で議論し、書くことができる必要があります。同じことはプログラマにも当てはまります。あなたは、私もあなたの(ネイティブの話をする)同僚と別の言語で議論していると思わないでください。ここオランダでは、すべての開発環境が英語ですが、コードについて同僚と議論しているときは、オランダ語で行います。
-vstrien

@vstrienので、同僚がそれぞれ異なる母国語を話したらどうするかを友人に教えてください。それがここの状況です。すべての身体は異なるインドの「州」から来ており、彼らは異なる言語を持っています(私は方言を意味しません..私は言語を意味します)あなたがそれを頭に置くことができることを願っています:Pそしてこれはまさに私の質問でした..私がお聞きしたかった何を(私は時間のスパンでの6つのdiff PPLと、ほぼ3 langsを話すために持っているので、私はに余裕カント)特定のlangで、これは悪い習慣であることをgoinggされている場合たと思う
チャニ

竜崎、これは人々がさまざまな人生の歩みを経験している状況です。私は、3つの使用言語を持つ組織で働いていました。あなたのような会社では、1つの使用言語があればうまくやっています。あなたが見つけることは、あなたの人生の特定の部分が特定の言語で機能するということです。
-temptar

@RYUZAKI:ごめんなさい、母国語でない言語で同僚と議論しないと言ったとき、私はあなたに指示していませんでした:)。しかし、その場合、明確にコミュニケーションをとる方法を見つけることが重要だと思います-そして、私が考えることができる最も簡単なことは、互いに説明するために1つの言語を使用することです。繰り返しますが、あなたのプログラミングスキルに影響を与えるとは思いませんが、コードを介して通信できない場合は、生産性が
低下

1
@temptar:「適用される数学のバックグラウンドを持たない世界中のかなりの数のプログラマーがいる」は、このステートメントをまったく無効にしません。あなたの観察は、「数学の正式な訓練を受けていない人でも、プログラミングの背後にある応用数学のいくつかを学ぶことができます」になります。あなたの観察に同意します。しかし、それはダイクストラの発言をまったく無効にするものではありません。確かに、それは補完的なようです。
-S.ロット

5

彼は人々があなたに何を望んでいるのか、言い換えれば、優れた口頭でのコミュニケーション能力をよく理解していると言っているのではないかと思います。

(私自身の傾向を言えば、これは、プログラミングの文脈において、人々が何を言っているのか、または何を言っているのかをはっきりとではなく理解する必要があることを意味します。)


1
また、あなたのアイデアを他の人に明確に伝える能力もそこに投入します。1つは他のimoと同じくらい重要です:)
デミアンブレヒト

1
私はあなたの言うことに同意しますが、ダイクストラが言っていることはまったくないと思います。
ロブ

1
これはすべて、高校の英文学の授業を思い出させます。あなたは著者が何を意味したかについて何時間も議論することができます。私はいつも私たちが彼らに行って尋ねないのはなぜだろうといつも思っていました。ああ...英文学。そのうちのいくつかは現在死んでいます。(あなたはあまりにも多くのF・スコット・フィッツジェラルドを試してみて、解釈してはならないことけれども、私はいつもの図をした- 。世界の彼の見解は、ウイスキーのボトルを通してそれを見ることで形成された私の英語の先生はどちらか、私はそれを言って好きではなかったです。)
すぐに

何時間も無意味に議論することもできますし、事実で議論を支持することもできます。たとえば、同じページにあるダイクストラの他の引用を見てください。「BASICを以前に経験したことのある学生に優れたプログラミングを教えることは事実上不可能 です。潜在的なプログラマとして、彼らは再生の望みを超え精神的に傷つけられ ています。」-再び言語と認知をテーマに話す。
ロブ

そして、そのような声明は単なる炎症です。Crikey、私はそれがすべてだったので、約30年前にBASICでプログラミングを始めました。私は自分自身をスーパーマンとは考えていませんが、「再生の希望を超えて精神的に切断されている」わけでもありません。私はそのような発言は非常に不快であると思います、そして、それは私が彼が言うことを信頼性が限られているとして扱うことを意味します。
すぐに

2

(あらゆる)言語に長けていることがこれに役立つと思います-

あなたのポイントが明確でない場合は、改善された方法で考え、修正し、言い直すことができます。あなたの言うことが正確にあなたが次の人(または機械)に理解して欲しいものになるまで。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.