プログラマの基礎体力

私がコードをコミットすると「それ、即リファクタリングしてください・・・」と突っ込まれます・・・。そして修正してコミットします。たしかに、提案してくださる案は保守がしやすく、コードが綺麗な場合が多く、うーんと私を唸らせます。さて、ここで問題なのは、「なぜ私のコードにツッコミがはいるのか」です。どのような差があるのでしょうか。デザインパターンをよく知っている?どうもそのような知識背景で行っているようには思えません。そのプログラム言語の基本文法についてよく知っている?しかし、提示していただいたコードは私も理解できますので、知らない機能や書き方だったりではないようです。そこで思うのは「プログラマの基礎体力」でした。ふとした思いでしたが、ググって調べてみると私の足りないなと思うところでした。

プログラマの基礎体力の鍛え方

これは、「プログラムを読む」>「プログラムを書く」この繰り返しが一番良いという結論になりました。実はまだ実践はしていませんが、よしおかさんと弾さんのブログを読んで思いました。今日から実践しますので、その結果どうなるかは数カ月後には分かると思っています。そのエントリーと言うのが以下です。

2つのエントリーの第一印象は、よしおかさんのエントリーを弾さんが否定しているように見えました。しかし、よく見てみると言っていることはほとんど同じことだと気づきました。このことについてTwitterで少し会話しましたので、それを以下に時系列に引用します。

プログラマの基礎体力ってなんだろ う・・・とふと思って、ググってみたらヒットしたのがよしおかさんのブログ。http://bit.ly/akR5RS やっぱり「コードを読む」これがプログラマの基礎体力を鍛えるものだな。コードを読む(基礎体力を鍛える)時間を毎日確保するようにしよう。

でも、プログラマの基礎体力について は、danさんがそんなものは存在しないとかいてるなぁ。http://bit.ly/cIzbPG

@japanrock でもこれ、理由がよく分かりませんね。

そうですね。「何かを吸収する(本を読 むなど)」>「ブロギング」がよい基礎代謝レーニングなら、「何かを吸収する(コードを読むあど)」>「コードを書く」もよい基礎代謝レーニングになるかと思います

あ、そうか。「読む」>「書く」 が重要なんだ。「読む」だけじゃダメで、ちゃんと基礎体力つけるなら、代謝しましょうってことか。「読む」こと自体は悪いことじゃないんだ。

@japanrock そうですよね。「よしおか試案」は只言 葉が足りないだけで(「書く」の部分を暗黙としてるだけで)同じこと言ってるように思えるんですよね。

@japanrock 弾さんは「Outputすることが重 要」と言ってるけど、それは当たり前で、既存のトレーニングでは「Input:入門書を読む、Output:コードを書く」だったので、「よしおか試案」 では「Input:コードを読む」も “加えよう”と言ってるんだと思います。

そうですね。よしおかさんは「書く」こ とは前提だと思います。書かないで読むというのも変ですしね・・。

デザインパターンの知識や言語の基本文法知識はいらないの?

言語の基本文法はしらないと話にならないとして、デザインパターンは知識としては良いと思うのですが、カッチカチにそのパターンにはまるプログラムがどのくらいあるでしょうか。だいたいはその応用であり、プログラムを読むことによって、自然と身につくものだと感じています。もちろん前提にデザインパターンの知識があれば、「あ、このパターンはこれだ」と納得できますので、頭に残りやすいというのはあるとおもいます。しかし、必ずや必須かというと、そうでもないような気がしています。それより、より多くのプログラムを読み、「この書き方は!」と唸る方が大切かなというのが私の現在の感覚です。

まとめ

プログラマの基礎体力を鍛えるには「コードを読む(input)」>「コードを書く(output)」の繰り返しが大切。「コードを書く」ということは仕事で毎日のように行っているので、「コードを読む」ことをGoogleカレンダーに繰り返しの予定として組み込みました。また、このエントリに対するツッコミお願いします><