[解決済み] プログラミングに数学は必要なのか?[クローズド]
質問
大学時代、友人と「ベテランプログラマに高度な数学は必要なのか」という議論をしたことがあります。彼はそれに猛烈に反論していました。彼は、プログラマに必要なのは高校や大学1年の数学の基礎知識だけで、それ以上でも以下でもなく、プログラミングのタスクのほとんどすべては高度な数学さえ必要なく達成できる、と言いました。しかし彼は、アルゴリズムはプログラマにとって基本的なものであり、必須の資産であると主張しました。
私のスタンスは、すべてのコンピュータサイエンスの進歩は、ほとんど数学の進歩に依存しており、したがって、数学の完全な知識は、現実世界の困難な問題に取り組むときにプログラマーを大いに助けるだろう、というものでした。
どちらの主張が正しいのか、いまだ決着がつきません。ご自身の経験から、そのスタンスを教えてください。
どのように解決するのですか?
あなたの質問にそのまま答えるなら、「いいえ、数学はプログラミングに必要ではありません」と言わざるを得ません。しかし、このスレッドで他の人が提案しているように、数学を理解することと、アルゴリズム的に考えることができることとの間には相関関係があると私は考えています。つまり、量、プロセス、関係、証明について抽象的に考えることができるようになることです。
私は9歳くらいからプログラミングを始めたのですが、その段階で多くの数学を学んでいたかというと、そうでもないでしょう。しかし、少し努力すれば、変数、for ループ、goto ステートメント (失礼、私は Vic 20 BASIC で、まだ Dijkstra を読んでいませんでした)、および画面にグラフィックを表示するための基本的な座標幾何学を理解することができました。
私は最終的に純粋数学の優等学位とコンピュータサイエンスの副専攻を取得しました。主に解析学に焦点を当てましたが、離散数学、整数論、論理学、計算可能性理論もかなり勉強しました。統計学、確率論、ベクトル解析、線形代数からいくつかのアイデアをプログラミングに適用できたことを除けば、学部時代のプログラミングやその後の商業および研究用プログラミングに直接応用できる数学はほとんど勉強しませんでした。
しかし、慎重な推論、反例の検索、公理的基礎の構築、概念間の接続の発見など、数学が要求する正式な思考方法は、大規模で複雑なプログラミングプロジェクトに取り組む際に非常に大きな助けとなったと強く信じています。
スポーツ選手が自分のスポーツのためにトレーニングする方法を考えてみましょう。たとえば、サッカー選手は間違いなくサッカーの基本的な技術にトレーニング時間の多くを費やしています。しかし、一般的なフィットネスを向上させるために、ジムで自転車やローイングマシンを使ったり、ウェイトトレーニングをしたりすることもあるでしょう。
数学の勉強は、プログラミングのための精神力や体力を高めるためのウェイトトレーニングやクロストレーニングに例えることができます。プログラミングの基礎練習は絶対に必要ですが、数学の勉強は、コアな分析能力を向上させる素晴らしい精神鍛錬になるのです。
関連
-
[解決済み】n個のノードを持つ有向グラフの最大エッジ数は何個ですか?[クローズド]。
-
[解決済み] 回帰式 T(n) = 2T(n/2) + Θ(1) を代入して解きます。
-
[解決済み] 算術オーバーフローと算術キャリーの比較
-
[解決済み] LaTeX: 数学モードで3行をスタックする
-
[解決済み] Mathematica の行列対角化
-
[解決済み] glm::normalizeは何をするのですか?
-
[解決済み] 初心者の言葉で「NaN(Not a Number)」とは何か?[クローズド]
-
[解決済み] NaN値をチェックするにはどうすればよいですか?
-
[解決済み] 割り算で使う場合の「/」と「//」の違いは何ですか?
-
[解決済み】「エントロピーと情報利得」って何?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Mathematica の行列の対角化
-
[解決済み】直線x=2, y=3, 3x+2y=6で形成される三角形の点での直心を求める方法とは?[クローズド]。
-
[解決済み] 回帰式 T(n) = 2T(n/2) + Θ(1) を代入して解きます。
-
[解決済み] 大きな符号なし2進数から小さな2進数の引き算
-
[解決済み] スケールファクターまで
-
[解決済み] n log n = c の計算方法
-
[解決済み】"ランダム性 "を理解する
-
[解決済み】円内のランダムな点を生成する(一律)。
-
[解決済み】線分の法線ベクトルを計算するには?[クローズド]。
-
[解決済み] 標準的な正規化ではなく、なぜソフトマックスを使用するのですか?