13歳の息子が最近、ScratchというMITの開発した子供用のプログラミング言語に
興味を示し、バスケットボールのゲームを作ろうとしてました。
で、バグにぶちあったようです。そこで、エンジニアである自分の父親に、
「バグはどうやって解決するの?」って聞きました。
その答えに対して、父親がまず息子に言ったのは、
「まずはプログラミングするときに、ひと時にやることは
ひとつだけというルールを徹底させることだ。
コードを一つ変更したら、まずはテストをして動くことを
確認してから、次の変更をすることだ。
シンプルなようで、なかなかこれができないんだ。
大概、自分はよくわかっていると思ってしまって、
いくつも変更してしまい、プログラムが動かなくなると
結局どこに問題があるかわからなくなる。
直接の答えではないけれど、アドバイスとして
おまえにいっておくよ。」でした。
そして、「デバッグの方法」としては、
「デバッグはサイエンスと似ているところがある。
それは仮説を立てるというところだ。
デバッグをするときに、やみくもにやっていても
なかなか解決しない。ここが問題なんじゃないかという
仮説を立てて、それを掘り下げていくんだ。」
といってました。
デバッグとサイエンスが似ているなんて考えたことも
ありませんでしたが、横で聞いている私もなるほどと
思いました。
やはり、何かを学ぶときには、「考え方」をコーチングしてくれる人の存在とは大切なものだと思いました。