2006年09月14日 17:45 [Edit]

Stiffと偉大なプログラマー達-プログラマーと数学・物理

引き続きSztywny Blog - Stiff asks, great programmers answerの翻訳。

今回の質問はこちら。

数学と物理は、プログラマーにとって重要?だとしたらなぜ?


プログラマー達の解答は以下のとおり。

Dan the Translator


Steve Yegge:

「離散数学」とか"concrete math"(訳注:「具象数学」?)と言われる分野は、プログラマーにとって非常に重要。確率、組み合わせ、グラフ理論、帰納的証明、その他の重要な道具がここに含まれている。 全てのプログラマーは、その能力の許す限り離散数学を学ぶべきだ。それがたとえわずかでも、ないよりはずっとずっとマシである。

その他の伝統的な数学に関しては、うーん、それほどよくは使わないけど、必要な場面ではやはり役に立つ。例えば、微積分は去年一度しか使わなかったけど、それはこんな問題だった。ピーク時の負荷を算定する必要があったのだけど、その傾向が「太陽と相関していて」、サイン曲線と近似していた。この問題を解く一番簡単な方法は、曲線の1/24を積分するやり方だった。微積分を知らなかったらこうは行かなかっただろうね。

私がWyvernを書いている時には、平面幾何の知識が驚くほど役にたったし、代数と線形代数にはしょっちゅう世話になっている。でも三角関数や微分方程式はそれほどでもないし、微積分もそれほどでもない。

感じとしては、数学の基礎ができていることで5%から10%いいプログラマーになったと思う(当社比)。もしもっと数学の素養があったら、もっといいプログラマーになっていたことは疑いない。そいうわけで、毎週数時間を数学の学習と演習に費やしている。

私は物理も好きで、人生を通して現在進行形で量子力学を理解しようとしている。とはいえ、物理はプログラマーとしてはそれほど役に立っているような気がしない。もっとも、もし私が物理の領域のプログラマー、例えば3Dゲームやシミュレーションを手がけていたら話はかわっていた。

Linus Torvalds:

個人的には、適量の数学の素養はいいことだともう。物理に関してはわからないのだけど、数学に関してはその理解と素養は、よりよいプログラマーになるために役立つ。多分数学とプログラミングのメンタルモデルが似ているから。どんなルールの組み合わせもいい代わりに、内部で整合性がとれてないといけないという点で。

David Heinemeier Hansson:

全然。少なくともWebアプリケーションの世界では。文章力の方がずっと重要だと思う。

Peter Norvig:

もちろん。アイディアの多くは元々数学的。帰納、再帰、論理、などなど。

Dave Thomas:

たぶん。でも正直なところ、数学や物理の技能とプログラマーの技能に相関を見いだせない。

だけど、音楽の素養とプログラマーの能力には、強い相関が見いだせる。なんでそうなのか見当もつかいのだけど、多分音楽に向いた脳はプログラミングにも向いているのじゃないか。

Guido Van Rossum:

数学に関してはイエス。ただしその一部。微分方程式は自分にはどうでもいいが、代数と論理学が重要。物理に関しては、多くのことに興味をもつのはよいことだという点を除けばそうは思わない。

James Gosling:

イェス! 数学では論理と演繹を教わる。分析的な目が培われる。そしてアルゴリズムを吟味する際には、数学にとってかわるものは存在しない。

Bjarne Stroustrup:

プログラマーとプログラミングの種類にもよる。数学の一部は頻繁に役に立つ。物理はそれほど頻繁には役には立たないけど、物理を学ぶことは実践的な数学を学ぶのに最良の方法でもある。

Tim Bray:

自分に関して言えば、大学レヴェルの数学はほとんどプログラミングで使っていない。


追記:

好奇心と怠惰の間 - concrete mathという言葉
で、そのほんの紹介文に
Amazon.co.jp: Concrete Mathematics: A Foundation for Computer Science: 洋書: Ronald Graham,Donald E. Knuth,Oren Patashnik<
Concrete Mathematics is a blending of CONtinuous and disCRETE mathematics. "More concretely," the authors explain, "it is the controlled manipulation of mathematical formulas, using a collection of techniques for solving problems."

なるほど。でも「計算機数学」では意訳が過ぎる気も。計算機よりの応用数学(Applied Math)というニュアンスですね。concreteの感じを活かして「硬派数学」というのも遊び過ぎのようだし....素直に「具象数学」のままが一番落ち着いてるかな。


この記事へのトラックバックURL

この記事へのトラックバック
 弾さんの【404 Blog Not Found:Stiffと偉大なプログラマー達-プログラマーと数学・物理】で見かけた「concrete math」という言葉。調べてみたところ、あのKnuth先生(→【ドナルド・クヌース - Wikipedia】)らが書いた本の題名らしいですね。で、そのほんの紹介文に Conc
[プログラミング]concrete mathという言葉【好奇心と怠惰の間】at 2006年09月14日 19:30
この記事へのコメント
R.Graham,D.Knuth,O.Patashnik. Concrete Mathematics -A Foundation for Computer Science-2nd Ed. Addison Wesley. 1994

計算機数学?
Posted by strayDuck at 2006年09月14日 19:16
>私がWyvernを欠いている時
私がWyvernを書いている時
Posted by TypoChecker at 2006年09月15日 03:53
TypoCheckerさん、
ありがとうございました。
blogを書くにあたって、私は明らかに校正を欠いておりますね:)
Dan the Typo Generator
Posted by at 2006年09月15日 15:05