牛尾 でも理解の深さこそが生産性の鍵なんですよね。少なくともエンジニアの世界では、試行錯誤からはじめてしまうと膨大な時間をとられます。ソフトウェアは目に見えませんから、まずは徹底的に理解して頭の中にメンタルモデルをつくるのが重要で、「このシステムはこういう構造の中で、この一連の動きをする」みたいなイメージをしっかり持つ。すると、障害が起きてログが出たときに、「このログが出ているということは多分この流れの中で何かが起こってるから、残りの可能性はこれとこれだ。だったらそれが特定できるようにログを投げてみよう」と、クリアに仮説を立てられます。
このコーディングかもしれない、あのコーディングかもしれないとごちゃごちゃ試していると、そのつど15分待つし、うまくいかなかった時に雪だるま式に時間のロスが生じてしまいますから。
けんすう 本当にそうですよね。知り合いの優秀なエンジニアも同じようなこと言ってて、バグがあった時はいきなりコードを見ずに、「ここがこうなってこうだから、あそこがこうなっているかも」と30分くらいしゃべってから初めてコードは見ると言っていました。
つまり全体構造がこういう仕組みで動いているからここがバグを起こしやすい、というところまで考えてから見ないと、コード全部読むか、エラーログを見て勘で探ることになってしまう。この思考法は人生全般にもすごく役立つ本質的な話だと思います。
学生1人あたりの教育にかけているお金の日米格差
牛尾 あと日本とアメリカの環境で大きな違いを感じるのが、ベースとしている学問の厚みです。日本では、勉強なんて社会に出て役立たないから大学生活をエンジョイしとこう、みたいな風潮が強いですが、アメリカではエンジニア職は最初からコンピューターサイエンスの知識がめちゃくちゃ求められます。みなコンピューターサイエンスの学位があり、博士号を持っている人も多い。
そもそもイノベーティブなことをしようとする時に、知識や技術のない人が集まってもイノベーションなんて起こせませんよね。
けんすう 全くの同意見です。ある教育畑の人に聞いたんですけど、アメリカの大学は1人の学生にかけているお金の量が日本と全く違っていて、例えばハーバードだと1人あたり4000万円ほどかけられている。ところが日本だと一番お金をかけられている東大でも数百万円ほどで、早稲田大学あたりの私立では150万くらいなんだそうです。
大学の教育の品質も、かけられているコストも全然違って、もう相当な差が開いてしまっている。アメリカでは社会がしっかり教育に投資をしていて、そこでのリターンも得ている好循環があると思います。
(その2へ続く)