牛尾 別に謙遜しているわけじゃなくて、マジ三流なんですよ。ちょっと偉そうな言い方すると、僕はエバンジェリストとしての才能はあったんです。何の努力もしないのに、世界中にいるチームメートの中でワールドの大会で一番を取ったりしてましたから。でも、自分が何かやる、「手を動かしてプログラミングする」とかになったとたんに暗黒です。日本ですらプログラマーとして通用しなかった。周りからは「牛尾さん、コンサルとかPMなら才能あるのに、プログラマーとしては正直才能ないんで止めといたほうがいいですよ」って言われていたほど。自己評価が低いんじゃなくて、これは客観的なアナライズなんです。
けんすう なるほど。でも本に書かれているメソッドで、プログラミングでも一流の人たちに追いつけるようになった実感があるんですか?
牛尾 まだ道半ばだとは思っています。僕の周りはもう意味わからんくらいに賢い人やスーパー一流の頭脳の人がピアノを弾くようにコードを書いてますから。そんなインターナショナルチームで、三流なりになんとかサバイバルできています(笑)。
自分よりはるかに頭のいい人が10回もビデオを見て学習していた
けんすう やっぱり本で驚いたのはそんな賢い人たちも、理解するのにしっかり時間をかけているということ。僕も、プログラミング書いてたことがあるんですけど、検索してコピペして作っても結構動くところまで行っちゃうので、めっちゃ試行錯誤して動かして、あとからバグ直すみたいなことをやりがちで、反省しました。
牛尾 僕はアメリカ行くまで理解に時間をかける重要性を全くわかってなかったですね。自分がコードを書くのが遅いのは頭が悪いからだと思っていた。
僕がやっているAzure Functionsという巨大クラウドサービスは、世界中の人たちが使うから、ものすごく複雑なアーキテクチャーになっているんですが、その中のマイクロサービスごとに教則ビデオがあるんですね。社内向けにエンジニアが解説している1時間半くらいのものが。
これがすごく複雑な内容なのに大学の新卒の子とかがアーキテクチャーを理解してがんがんコードを書いている。なんでそんなことができるんだろうと思って聞いてみたら、「いやー、あれ難しいですよね。だから僕はビデオ10回見ます」という。自分よりはるかに頭のいい人が理解できるようになるまで繰り返し見て、十分に時間をかけて学んでいたことに衝撃を受けました。
僕は1回見て「自分の頭じゃわからないから、あとはコードをいじっているうちに掴めるだろう」という感じでやっていたのに。
「いきなり実践投入して慣れさせる」日本の傾向
けんすう コードに限らず、日本では1、2回みてわかんなければ「まずやってみなくちゃわからないから」とすぐ行動に移させる場面が非常に多いと思います。本当は、ボーリングのセンターピンを打ち抜くように物事の核心を理解したほうが断然効率がいいのに。
日本は本来、空手や茶道などまず「型」を徹底的に身につけさせる文化があるはずなのに、なぜか仕事においては「いきなり実践投入して慣れさせる」傾向がすごく強い。最近とくに、日本で「とにかく動け」「まず試行錯誤しよう」みたいなアドバイスが多いのは、“考え過ぎて行動できない人”が増えたことも背景にあると思いますが。