努力とセンスの関係と優秀なプログラマー

http://www.quora.com/What-are-the-best-kept-secrets-of-great-programmers/answer/Jeff-Darcy?

1 comment | 1 point | by WazanovaNews 2年弱前 edited


Jshiike 2年弱前 edited | ▲upvoteする | link

スポーツにしろ、勉強にしろ、仕事にしろ、何をやるにもその特定の分野でトップ1%人は尊敬するほどすごいのですが、本人が長く続けつつ努力をしてきたことが垣間見えるので、なぜ優秀なのかというのが理解できる範囲。ただし、そのさらにトップ10%、いわゆる世の中でその分野のトップ0.1%の人というのは、すごすぎて、どうしてそうなれるのかが分からないと実感することがあります。議論している時に、数歩先の真理を理路整然と突然読み取って指摘されるような、驚くようなセンスを見せつけられる経験を数度したことがあります。

けどそれをセンスとか才能という言葉で片付けずに、経験値の差によるパターン認識力の違いと考えれば、そしておそらくほとんどのケースはそうだと思うので、継続的に努力をすることの尊さを再認識して、また頑張ろうという気になります。センスがものをいう分野はあれど、常に努力で向上する余地はあるかと。

「ものすごくできるプログラマの秘訣とは?」という質問に対するJeff Darcyの回答は、他の分野にもあてはまることも多く参考になります。

  1. コンセプトを理解する。記憶やパターン認識に従って問題を解決するのは、一から論理的に考えて解決するよりも早い。似たような問題に出会った経験があれば、解決策を直感的に思いつける。それができなくても、少なくとも自分の専門分野周辺の研究やプロジェクトの成果を常に把握しておくようにすれば、どこからインスピレーションを得ることができるかはわかるようになる。Miguel Parazの言うように、自動的に問題を解決できるように見えるマジックは、実践の積み重ねというアプリケーションである。

  2. 自分の道具を理解し、常に磨いておく。ツールの動作/設定をどうするかに時間を費やすことで、ハイレベルな思考のプロセスは邪魔される。その積み重ねが生産性に大きな差をもたらす。

  3. 時間を管理し、一つのことに集中する。コードを書くなら、コードを書き、パッチのレビューをしたければそれをする。新しいアルゴリズムについてブレストしたければ、そうする。三つのことを同時にはやらないこと。メール、Twitter、IRCなどに邪魔されないようにする。

  4. 優先順位を考える。ある特定の問題を解決すれば、それが別の問題の解決につながることもよくある。正しい順番でやることが大切。

  5. なんでも再利用すること。アイデアであれ、コードであれ。既知の手法で問題を解決する度に時間の節約になる。使い回したソリューションが、その問題にとってパーフェクトな解でなくても気にしない。必要あらば、後から改善できる。次の問題の解決に向かったほうがよいケースがほとんどである。

#働き方


ワザノバTop200アクセスランキング


Back