プログラミング能力を向上させるコツは、筋トレと一緒かも?

Pocket

以前ちょっとお高いプライベート・ジムでトレーニングしていたことがあるのですが、筋力トレーニングって「あ、もうだめかも」というところからが勝負で、そこから歯をくいしばってどのぐらい行けるかが、効率よく筋力アップするコツだということを教わりました。

そういった意味では、プログラミング能力に関しても同じことが言えるのかも知れない、と最近思ったのです。

自分が最高だと思ったコードしかコミットしない

過去を振り返って、今いる会社ソニックガーデンに入社したとき、CTOであるmat_akiから、「自分が最高だと思ったコードしかコミットしないで下さいね」などと言われた記憶があります。

「えー、素早く確認してもらいたいときにそんなことこだわっていたら、スピード落ちない?」

みたいなことを言った記憶もあるのですが、

「いいえ。コードのクオリティは落とさないんです。クオリティは落とさずにスピードを上げるんです」

などと言われて「お、おう」と返事を返した覚えがあります。

そもそも自分が最高だと思うコードとは何か?

そもそも自分が最高だと思うコードとは何かを考えようとすると、自分の書いたコードを振り返って、「これが今書ける最高のコードか?」と自問自答することになります。

これを続けると、筋力トレーニングで言う「あ、もうだめかも」と同じように、「もうこれ以上ないでしょー」という考えに至ります。

でも、ここからがスタートなんですよね。

「いや、もっといけるんじゃない?」と思うことが重要で、ここがプログラミング能力の伸びしろなのかな、と思います。

「もっといける」と思わないことには、能力が向上しないんですよね。

そういった意味では、「あ、もうだめかも」というところから、歯をくいしばってどれだけ良いコードをひねり出せるか、これがプログラミング能力を向上させるコツなのでは、と思いました。

もちろん、良いコードをひねり出すためには様々なプログラミングパラダイム、設計手法に通じていることも重要なので、そういったインプットの質も高める必要があります。それと同時に「あと一歩歯をくいしばって上に行く」アウトプットの質を高めることで、もっと上手くプログラミングができるようになるのではないか&できるようになりたいなーと、やたら筋トレで追い込まれたことを思い出しながら、思うのでした。