すごいプログラマーの人は、ある技術についてとても詳しいというよりは、
「xxがうまくいかないのはなぜ?」
「どれくらい速くなったか?」
といった問題に対して、わかりやすい根拠をさっと出せる人だと思った。
初心者がやりがちなこと
- 「問題なく動いてそうなので、多分大丈夫です」
- 「コードを見る限り、大丈夫だと思います」
はっきりした根拠が示せないので、どうしても「多分」「おそらく」「だと思います」に逃げてしまう。
理想
- 「xxのn行目が、xではなくyになっていることが原因で、呼び出された関数zzzが反対の動作をしているからです。(該当箇所のソースと、修正前後の結果比較を貼る)
- 「修正前と修正後で以下の手法でベンチマークを取り、結果として修正後は3倍のリクエストをさばけているので、速くなりました。」
Before/After は大事
- プログラムを直したときは(バグ/改善)かならず before と after が存在するので、ひと目で見比べることができれば理想的
以下の記事にも書いてある
開発速度を上げるための Pull-Request のつくり方 - クックパッド開発者ブログ
素早く根拠を出すために何を勉強するか
- 便利なツールを知る。(たとえば、有名なパフォーマンス計測系のツールの使い方)
- 文章力をつける(順序立てて説明するって意外とむずかしい。スライドの作り方に似ている?)