IT業界で気づいたことをこっそり書くブログ

くすぶってるアプリエンジニアが、日々気づいたことを適当に綴っていきます(受託→ベンチャー→フリー→大企業→ベンチャー→起業)

もっと基礎を疎かにしろ!

プログラマーに数学が必要かどうかの論争って定期的におこりますよね。
Twitterでバズってましたね。

note.com

 

私は「大学を出たような人が改めて数学を勉強し直すほどのことは必要ないんじゃない?」と思ってます。さすがにセンター試験レベルの数学は理解できていてほしいですし、嫌いだからって逃げてたらいつか痛い目見るとは思いますけど。

こういう論争でよくあるのは「若手プログラマーは今のうちに数学を沢山勉強しておけ」という論に対するカウンターですよね。私もこういう論調にはイラッとします。そういうので語られる数学って実務で出てきませんし。

もちろん数学が必要になる分野の人も居ますけど、その人が別の分野で必要になる知識を基礎から覚える必要は必ずしもないわけです。

いわゆる「教養は必要かどうか」という話ですね。

 

教養は必要かどうか、というテーマに終止するのであれば多分世の中は平和なんです。
「実務では使わないけど、教養として知っておくと良いことあるかもしれない」くらいの論調であれば波風は立ちません。
問題なのはプチインフルエンサーみたいな技術者が新人に対して「実務で使うからこれらの数学の基礎を叩き込んでおくように」と言うと炎上するわけです。
まあそういう数学の知識をフルで使うのはかなり特殊な人でしょう。これはWeb系だの組み込み系だのSIだの全部ひっくるめてもそうです。疑うなら情報処理試験の内容を見てほしいです、ほぼ数学は出てきません。

 

面倒くさいのは、かなり特殊な人に限ってインフルエンサーなんですよね。彼らも人間なので、自分の状況が世間の状況とイコールであると信じてしまうんですよね。バカですよね。
あとは新人って「これ勉強しとけ!!」って言われると信じちゃいますから、そうやってバズらせるのを狙ってる人も居ますよね。あるいは天然で勉強家な人が「俺が勉強してよかった本」とかまとめちゃって、それが新人に拡散されまくった結果バズって、「バズってるからこれらは必要な知識なんだろう」と誤解されるケース。バカですよね。

 

ところで私は基礎勉強に対する過剰な信仰が嫌いです。
勉強する=良いことみたいな。こういうの真面目な人ほど学生時代に叩き込まれますよね。知識の積み重ねみたいなやつです。
これと対象的な考え方に「研究」があると思います。テーマを探し、課題化し、解いて目的を達するみたいな。
両者は似ていますが、勉強は誰かが作って体系化したものを頭の中にコピーする作業です。研究はまず目的や課題があって、それを満たすために色々行動するみたいな感じです。必要ならば勉強もするみたいな。
私はプログラミングにおいては研究の力の方が重要だと信じています。

 

ITの業界は過去の天才たちが非常にうまいことやっていて、基礎知識がなくても、途中から始められるようにできています。途中から階段を登り始めて目的を達することができる。よく「巨人の肩に乗る」って言いますよね。
基礎部分が隠蔽されている場合は、時には基礎を知らないほうがノイズがなく思考がうまく進むケースもあります。
もちろん基礎を知っていたら、巨人の肩が揺らいだ時にそこを補強することもできます。しかし巨人の足元から肩まで勉強するとなると相当な秀才でもない限り難しいと思います。更に悪いことに巨人自体が毎年更新されていくので追いつくのが大変です。

 

ちなみに数学の基礎というのはその巨人で言ったら脚くらいの位置にあたるんじゃないでしょうか?

 

その巨人の部分をどうにかするというのは世の極一部の天才プログラマーに任せて、世の大多数のプログラマーは肩に乗ったあとの応用研究に勤しむべきです。
目的や課題を探し、プログラムが動くように考え、必要になったらより低レベルの基礎を学んでいくという、下から積み上げるのではなく必要に応じて上から順に探査していく方が効率的ですしプログラマー的な思考だと思っています。

 

というか積み上げ式の勉強を信仰してる人を見ると大丈夫だろうかと不安になります。
本を10冊読んだ人より、アプリを1つリリースした人のほうが私は信用できます。
もちろん優秀な人はどっちもやっちゃうんですが、大多数はそれを自分ができると思わないほうがいいです。

 

それにしても前から思ってましたが知識体系化の作業って非常に難しいですね。
なぜ難しいかと言えば、例えばQiitaやSNSみたいなシステムだと評価者が分かってない人ばかりですから(私含め)、いいね数やバズ具合で正しいかどうか判断できませんし。
ブログみたいなのも書き手の事情や出世ゲームや好みや優秀さに依存していますから、果たして自分の事情と合うかどうかは判断が難しいところです。
結局どこまでいっても自分の頭で考えていくしかないというのがプログラマーという職業だと思います。いつか業界の新陳代謝がゆっくりになればそれも終わる日が来るかもしれませんけど、我々が現役の間はたぶん無理そうです。