プログラミング初心者の雑感だけれど、たまにプログラミングは数学の証明と類似しているなーと思います。
両者の共通項は次のような感じ。
- 解くべき問題の条件が与えられており、
- 証明すべき命題(完成形)を示すことが目的であり、
- その道筋は当事者に委ねられている
3点目の、「どのように導くか」という点で技量が試されたりするところも、プログラミングと数学の証明で共通していると言えるでしょう。
高校時代のお話 - たくさんの問題に触れて引き出しを増やすこと
そういえば、僕の通っていた高校は、理系重視の方針もあり在学生の7割ほどは理系だったかなという感じなのですが、クラスで数学の証明なんかをやると、普通なら20行くらい必要なはずのところを、スラっと5行くらいで書いてしまう人がいたりしました。
先生も苦笑い。彼はプログラミングをやらせてもきっと綺麗でスマートなコードを書くんじゃないかなと思います。
そういえば、彼が何をしていたかと思い返してみると、いつも「大学の数学」を解いていた気がします。きっと僕なんかよりずっとずっと多くの問題に触れていました。
「たくさんの問題に触れて引き出しを増やすこと」
数学教師が口を酸っぱくして言っていた言葉がふと蘇りました。