アカウント名:
パスワード:
足し算とか引き算だって数学なんだが…。XORなんてかなり難物だよね。逆に「停止性問題」だって数学だ。
.
1) 「プログラミングという行為」を理解するうえで必要最小限度な数学2) 「プログラミングする対象」を理解するうえで必要最小限度な数学
この両方を理解してはじめてプログラムを作れるようになる。2 は作るプログラムごとに変化するけれど 1 は作るプログラムに依存せず必要。ところが 1 と 2 の中には重複しているものが多い。足し算、引き算の類は重複している話だ。また、この2つ、切れ目が実は余りはっきりしない。
で、さらに困ったことに、上記2つはまだプログラムを1つ作るために必要な知識に過ぎない。プロとしてそれなりのプログラムを、どんなジャンルに置いても作るには、次の2つが必要で、上記の1,2 はそれぞれ 3, 4 の一部分だ:
3) 「プログラミングという行為」を理解するうえで必要十分な知識4) 「プログラミングする対象」を理解するうえで必要十分な知識
で、例えば。3 には「チューリングマシンの停止性問題」が含まれる。これが理解出来ないと「完璧なデバッグは不可能」と言うことが判らない。あくまでもコスト問題だと勘違いしてしまう。では 3 を理解するにはどれだけの数学が必要なのだろう??
3 の一部には「一連のインストラクションを実行できる1台のMPU (マルチコアで言うならコア1つ分) の速度は無限には早くならない」という知識も必要だ。光の速度の壁も問題だし、発熱も問題だ。これらは物理の問題だが、その物理を理解するのに必要な数学があるよね…。
3 の一部には「ランダム・アルゴリズム」と言う奴が存在する。Skil Lists [iij4u.or.jp] なんてのはこれを利用している。しかし、こいつを正しくプログラムに利用しようとすると「ランダムって何?」を正しく理解しなくちゃいけない。これを理解するための数学(統計とか)がこれまたあるよね?
で、こうやって考えると。「外しても大丈夫そうな数学のジャンル」って何? という疑問が逆に生じる。
..
ようするに何かと言うと。
「赤ちゃんが初めて走れるようになった」
というレベルと
「プロのスポーツ選手が走る」
のとでは、同じ「走る」にしても必要な知識が圧倒的に違うし、意識しなくてはいけないことも違うように、
「ちょっとプログラムを書いてみる」「プロとしてちゃんとしたプログラムを書く」
の2つは必要な知識が全然違う。また、その知識を数学として理解する必要性もぜんぜん違う。前者はほとんどの知識を数学として意識する必要はない。後者になるとそれぞれの背景にある数学を意識した方がより広範囲にその知識が利用できる。
となると。この質問はそもそも、どのレベルの話をしているのだろう? という疑問に行き着く。
1つ、はっきりとわかることがある。
プロとして、3 と 4 の両方を突き詰めていこうとするなら、『全部やっとけ』が正解だ、と言うこと。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり
そもそも何を「数学」としている? (スコア:1)
足し算とか引き算だって数学なんだが…。XORなんてかなり難物だよね。
逆に「停止性問題」だって数学だ。
.
1) 「プログラミングという行為」を理解するうえで必要最小限度な数学
2) 「プログラミングする対象」を理解するうえで必要最小限度な数学
この両方を理解してはじめてプログラムを作れるようになる。2 は作るプログラムごとに変化するけれど 1 は作るプログラムに依存せず必要。ところが 1 と 2 の中には重複しているものが多い。足し算、引き算の類は重複している話だ。また、この2つ、切れ目が実は余りはっきりしない。
.
で、さらに困ったことに、上記2つはまだプログラムを1つ作るために必要な知識に過ぎない。プロとしてそれなりのプログラムを、どんなジャンルに置いても作るには、次の2つが必要で、上記の1,2 はそれぞれ 3, 4 の一部分だ:
3) 「プログラミングという行為」を理解するうえで必要十分な知識
4) 「プログラミングする対象」を理解するうえで必要十分な知識
で、例えば。3 には「チューリングマシンの停止性問題」が含まれる。これが理解出来ないと「完璧なデバッグは不可能」と言うことが判らない。あくまでもコスト問題だと勘違いしてしまう。では 3 を理解するにはどれだけの数学が必要なのだろう??
3 の一部には「一連のインストラクションを実行できる1台のMPU (マルチコアで言うならコア1つ分) の速度は無限には早くならない」という知識も必要だ。光の速度の壁も問題だし、発熱も問題だ。これらは物理の問題だが、その物理を理解するのに必要な数学があるよね…。
3 の一部には「ランダム・アルゴリズム」と言う奴が存在する。Skil Lists [iij4u.or.jp] なんてのはこれを利用している。しかし、こいつを正しくプログラムに利用しようとすると「ランダムって何?」を正しく理解しなくちゃいけない。これを理解するための数学(統計とか)がこれまたあるよね?
で、こうやって考えると。「外しても大丈夫そうな数学のジャンル」って何? という疑問が逆に生じる。
..
ようするに何かと言うと。
「赤ちゃんが初めて走れるようになった」
というレベルと
「プロのスポーツ選手が走る」
のとでは、同じ「走る」にしても必要な知識が圧倒的に違うし、意識しなくてはいけないことも違うように、
「ちょっとプログラムを書いてみる」
「プロとしてちゃんとしたプログラムを書く」
の2つは必要な知識が全然違う。また、その知識を数学として理解する必要性もぜんぜん違う。前者はほとんどの知識を数学として意識する必要はない。後者になるとそれぞれの背景にある数学を意識した方がより広範囲にその知識が利用できる。
となると。この質問はそもそも、どのレベルの話をしているのだろう? という疑問に行き着く。
.
1つ、はっきりとわかることがある。
プロとして、3 と 4 の両方を突き詰めていこうとするなら、『全部やっとけ』が正解だ、と言うこと。
fjの教祖様