• 締切済み

プログラミングと数学的知識について

コンニチワ 有能なプログラマの経歴を見てみますと数学者などが多いですが 私はプログラミングは好きですが数学は苦手です。 公式などを使わない文章問題は比較的得意なのですが それ以外はほとんど苦手です。 プログラミングをする際必要な公式などはその都度調べています。 しかし、最近は数学的知識があってこそ生まれるアイディアというものが あるのではないかという風に考えるようになり、数学を本格的に学ぼうかと思い始めました。 やはり数学的アルゴリズムなどをきちんと勉強しておいた方が いいアイディアが生まれるのでしょうか? 専門家の方や詳しい方の意見をお聞かせください。

みんなの回答

  • xxtest
  • ベストアンサー率0% (0/1)
回答No.4

 漠然とした回答で恐縮ですが、自分の経験上では自分が「これは必要だ!と」思った事柄は後になって大体、必要になって、なんで、アレをしっかりと学ばなかったのだろう。と後悔する事が多いです。実際に必要に迫られることもしばしばでした。  ですが、付け焼刃は引き出しは多くなっても、とても役に立ったことは少なかったです。学ばないよりはマシでしたが。  よって数学的アルゴリズムもしっかりと学ぶことで引き出しが多くなり、よりいいアイディアが生まれると思っています。

  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.3

 ものすごく難しいものを勉強する必要はないんです。しかしね、最低限知っていて貰わないと、ソフトを任せられない。手取り足取り、結局自分で書いた方が早いじゃん。そういうレベルってあるわけです。思った以上の性能を出すソフトを書いてくれる。それがプロってもんですね。  たとえGUIばかりを書くにしても、システムを矛盾なく整理して、統一されたメタファーというものを構成する必要がある。これだって数学の実力が要求されます。グラフィックを扱うにも必須です。また、求められる内容は、必ずしも高校・大学教養課程とは一致していません。ちょっと理想化した基礎を考えると、こんな感じです。 代数:数式の変形。線形代数の基礎。複素数の取り扱い。整数論の基礎。群・環。 解析学:総和Σ、乗積Πの扱い方。級数。微積分の基礎。極値問題。テイラー展開。直交多項式。 幾何学:2次元の解析幾何。3次元の解析幾何。計算幾何学の初歩。 記号論理:一階述語論理。最低でも命題論理。 言語処理:オートマトンの概念と状態遷移図。文脈自由文法。 データ処理:補間法。DFT。フィルター。 グラフ理論:木構造と探索のアルゴリズム。 組み合わせ論:順列・組み合わせ。確率、統計的検定の基礎。 計算機科学:計算量の概念。誤差論の基礎。コンパイラの仕組み。乱数。データ構造とそのアルゴリズム。いくつかのプログラミング言語の概念(Lisp, Forthなど、直接は使わなくても)。 基礎的な力学。  このへんを大体おさえれば、これまで「アイデア!」と思っていた物の多くが自明であり、最適ですらない、ということに気付かれるかも知れません。  あとはそれぞれの問題領域ごとにジョーシキが求められるし、問題毎に勉強もしていくんですね。同じ計算をする「公式」だって1000倍も効率が違ったりしますよ。  仕事を依頼されてから基礎から勉強するなんて、注文受けてから牛を捕まえに行く牛丼屋みたいなもの。一流のプロになりたければ、易しいレベルで良いから幅広い数学の知識が必要です。数式を説明するよりコード書いた方が早い、ってんじゃお話にもなりませんやね。 クヌース「コンピュータの数学」共立出版、浅野哲夫「計算幾何学」朝倉出版、は良い参考書だと思います。  蛇足ながら:ソフトを書くヒトのレベルが猛烈に低くなっています。そういう連中と自分を比べて安心しちゃ絶対にいけません。今後、開発途上国と言われていた国々が、工業化社会をすっとばしていきなり脱工業化社会を構築していくと考えられます。つまりソフトで飯を食おうとしている。必死に勉強しはい上がろうとしている彼らの真剣さを考えると、日本の多くのソフト屋さんの程度の低さは、もはや失業予備軍と呼んでも構わない。努力そのものなど評価されません。「徹夜の連続です」なんて泣き落としにくるような奴は無能の証拠として直ちに切られます。これがIT革命の本当の意味です。  文章題が得意、というのは大いに見込みアリです。数学以上に重要なのが日本語を正確に理解し、述べる能力ですから。志を高く持って、誇りある仕事をしてください。

  • TCM
  • ベストアンサー率44% (81/181)
回答No.2

 担当する分野によると思いますよ。一口にプログラムといっても、事務処理系、組み込みソフト系、CG系、科学技術計算系等々いろんな分野があります。科学技術計算の分野であれば数学や物理の知識は必須ですが、科学技術計算のアプリケーション開発でもGUIの部分を担当するのなら、数学的知識よりもMFCやMotifに関する知識がある方が重宝されるでしょうし。  プログラマに求められるのは、論理的に思考できる能力、仕様に書かれた機能をプログラミング言語で展開できる能力です。その観点からすると、jhiphopさんは文章題がお得意ということですので、プログラマに向いているようのお見受けします。  ただ、暗号や乱数発生等の分野で画期的なアルゴリズムを創造するということならば確かに数学、それも最先端の知識が必要だと思います。でも、実用的アプリケーションて、そんなものだけじゃないですからね。アイディアでしだいですよ。もちろん、数学を勉強しておいて困ることはないです。

  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.1

計算機 って呼ばれてますからねコンピュータは。 知っているに越したことは無いと思いますよ。断片すら知らなければ活用することも出来ませんしね。 アイディアの素としては数学の知識に限らないと思いますよ。 #私も数学苦手です。