見出し画像

世界一流エンジニアの思考法


読んだきっかけ

半年前くらいから読みたいなーと思っていてappleのブックに読みたい本として登録してたんです。
次何読もうかな〜と思ってたら、ふとこの本のことを思い出したので即購入しちゃいました!
プログラミングを普段やっている身として、一流の人たちがどんなことを考えているのか、どうやってそのような立場まで辿り着いたのか知りたかったんです。

本のあらすじ

 筆者はアメリカのマイクロソフトで勤務している日本人エンジニアの方です。クラウド関係の開発を行なっており、世界中の人々が利用するシステムの基盤を開発しているとのこと。
 筆者は自分のことを「三流」エンジニアだという。自分自身は要領の悪く、何かやるときは人の3倍くらい努力してようやく人並みになれる程度の人だと評価していた。

 「どうやったら不得意なことでも効率よく人並みのことができるのか」この気持ちがあり周りの世界一流であるエンジニアたちの行動や考え方を注意深く観察してみたのだという。すると、一つのことに気がついた。

実は、彼らはなにも全員が常人と比べて著しく頭の回転が速いわけでも、天才的記憶力を持つわけでもない。主に「思考法」(マインドセット)が高い生産性を形づくっているのだ。

世界一流エンジニアの思考法 p6

 日本は世界から見ると「生産性の悪さ」で大損をしている。単にDX化が進んでいないという話ではなくマインドセットやチームビルディングにおいて改善の余地がたくさんある。この本を読んだ人にとって考え方のエッセンスを生産性アップのヒントになることを願ってこの本を制作したと語られていた。

感想

 本の構成としては4章まであるのですが、今回は1章までの内容で私の感じたことや気づきについてまとめていきたいと思います。

1.試行錯誤は正しいわけではない

日本では、まず自分の力で試行錯誤することが尊ばれるし、まわりからも評価される。だが、IT技術者には試行錯誤がとても良くないのである。

世界一流エンジニアの思考法 p25

 日本人ならこの言葉を聞いて「これは嘘だろ」って思わない人はいないと思います。私自身この言葉を見た時はそう思いました。だって試行錯誤をしないと先に進むことなんてできないし、何もしてないと自分にとって価値のない時間を過ごしてしまうだけじゃないかと。これまでも試行錯誤ややってみるの精神が大事だって教わってきたし、そもそも積極性って大事じゃないのか!!!と。こう誰だって思うはずです。
 しかし、筆者はそれを否定していました。なぜなのか。

 その理由は、試行錯誤を行うことによる"時間の浪費"にありました。

 一流エンジニアたちはエラーが出た際、手を動かすのではなく頭を動かすのだそうです。問題はここかな?と思ってコードを修正したり、もう一度ログを出力したりしているのではないでしょうか。というか私がそうです。でも、大事なのは手を動かして原因を調べるのではなく、どこが原因でエラーが起きているのかを今ある情報から予想してみて、原因がわかったらその部分の解消のために手を動かすということだといいます。
 また、エラーログをじっくり見ることによって、原因が理解できるだけでなくその他の情報も知ることができる。自分の知っている知識だけで解決策を探るよりも必要な情報だけをみて原因を調べる方がより効率的なのである。

 この考え方を聞いて私はぐうの音も出なかった。エラーが出ると毎回原因の予想をして解決しようと手を動かしているのだが、正直何度も間違ってやっとの思いで解決に至る場合が多い。試してみてダメでも自分の経験になるしやるだけ得だ!とか思ってました。でも、試していることは自分が知っている知識の範囲内で行われていることであり、解決したとしても実質得たものは解決することのできたその1つの事象というだけです。しかも、もし同じ状況が起きた時に解決策を忘れていたら私はもう一度同じ間違いたちを行うことになるでしょう。いい経験になると思っていたものは、実はほとんど価値のないものだったのです。私に必要なこと、それは「もっとよくじっくり考え、エラーログをすっ飛ばさずにみること」だったのだと気付かされました。

2.基礎の理解が応用につながる

どんなに頭がいい人でも理解には時間がかかるものなのだ。頭のいい人が理解が早いように見えるのは、そうやって時間をかけて基礎を積み重ねているので、すでに理解していることに関して頭のメモリにコンテキスト(文脈)が載っているからだ。

世界一流エンジニアの思考法 p28

 この言葉を聞いて、私は以前知り合いから受けた質問を思い出しました。python言語について、「python特有のメリットはなに?」と聞かれたのですが、私は返答として、「機械学習ができるモジュールなどが多く用意されていること」と答えたのですが、他の言語でもやろうと思えばできるよなーと。細かい理由まで話せなかったことに自分の中で引っ掛かりがありました。答えれなかったのも詳しく理解していないからってことなのかもしれないなと感じました。すぐに新しいことを学ぼうとして基礎を固めないままなことって私の性格上多いなと思いました。もっと時間をかけて一つ一つのことに対して理解をする。この癖をつけたいなと思います。

最後に

 まだ半分以上内容があるわけですが、もう1章だけでも感じることがたくさんありました。一流エンジニアになりたい方だけでなく、効率的な行動がやりたい、自分にできていないことは何か、を知りたい人にはとてもお勧めできる本です。残りのページもじっくり読んで、感じたことを投稿したいと思います。では、その2でお会いしましょう。


この記事が気に入ったらサポートをしてみませんか?