余暇にコードを書くべきか?

書くべきだと思いました、自分は。

家でプログラミングしたり、コードなんて書かないよ、
っていう人は案外多いんだけれど、

じゃ、家で実装を思いついたり、こういう時はどんな動作になるんだろう、って思ったとき、
どうするんだろう?
気になった事を確かめたりしないんだろうか。
それとも、頭の片隅にそんなことは全くなくて、仕事のときと余暇のときとではスイッチが切り替わるんだろうか。
そんな疑問があります。

自分が理想のプログラマ像として思い描くのは「可能であるならば一切プログラミングをしないで適切に目的を達成してしまう」プログラマです。
で、なぜ、わたしがそれを理想とするのか察しのよい方はすぐに思い当たることかと思いますが、プログラムは一般的に短いほうがよいとされます。それはプログラムを1行でも書けばそこにはバグが潜む可能性が生まれ、コードが長ければ長いほど含まれるバグは増え、テストやデバッグ、メンテナンスと言ったコストは跳ね上がっていきます。で、あるならば適切に目的が達成できるのなら1行も書かないことが理想であるはずです。

不射の射 - TrickDiary

これは確かにと思います。
でも、結果としてそうなるためには多くのコードを読み書きし、失敗を知り、学ばなければならないのではないか?
と思います。
そうでなければ、どんなコードを書くべきか、書かないべきか。
どんなテストが必要か、どんなデバッグが効果的か、
メンテナンスしやすいコードか、しにくいコードか、
そういった判断ができないんじゃないでしょうか。


余暇にコードを書くというのは、例えば野球で言えば素振りや投げ込み、基礎練習にあたるんではないかなと。
なんで、野球なんだよ、って感じですが、

自分はある程度、コードを書く練習というのは必要だと思っていて、
鍛錬を必要とするものだと考えているからです。

野球選手もできるだけ少ない打席や、投球である方が優れているとされますね。
疲労も抑えることができるし、故障の確率も減らせるでしょうし、試合に勝つ確率を高めることができます。

でも、だからといって、普段から素振りや投げ込みをしない人間が、
「可能ならば、出来るだけ少ない投球や打席で試合に勝つべき」
と言うことはできないと思うんですよ。
普段、野球のことなんか考えていない野球選手は一流にはならないと思うんですよ。


本当に多くの、行数ではなく、内容として中身として多くのコードを読み書きした人間だけが、
書くべき書かないべき、なんていうことをより高い精度で判断できるようになるんじゃないかな?


勿論、現場で問題にぶち当たらないと、
本当の問題が見つからないことはあります。
でも、基礎練習ができているプログラマなら、
できていないプログラマよりも、その対処に困らないでしょう。


なんてことを思います。
「可能であるならば一切プログラミングをしないで適切に目的を達成してしまう」プログラマこそ、
誰よりも多くのプログラムを読み書きしていると感じました。

例えば、プログラムをするっていうことには、
プログラムを読み書きする他にも、ツールを試してみたり、
ライブラリを使ってみたり、
色んな意味が含まれているんじゃないでしょうか。