「世界一流エンジニアの思考法」を読んだ感想
こんにちは、マサフミです。
僕が最初にnoteで読んだ記事は以下の記事でした。
「世界一流エンジニアの思考ってどんな感じなんだろう?」とふと気になったのがきっかけです。
記事を読む中で、どうやらその内容を本にしてまとめたということで、ずっと気になってたので、今回その本を買って読んでみました。
結果、めちゃくちゃ感動しました!!
今まで僕は、エンジニアとしては周りの人と比べて能力は高くないと思っていましたし、適度に手を抜いたり人にパスしたりするように要領よく物事ができないなあと思っていたのですが、その悩みの原因や解決のヒントが見つかった気がします。自分に能力がないと思い込んでる全エンジニアが読むべきだと思います。
今回は、この本を読んで得た気づきや学びをシェアしたいと思います。
要点
一流エンジニアだって物事の理解には時間が掛かる。ただ、その理解の質とスピードを高めるために、彼らはメンタルモデル(物事を理解するのに使う脳内イメージ・フレームワーク)を用いている。
一流エンジニアは"理解すること"に時間をかける。"理解したつもり"になって先延ばしにしない。
一流エンジニアは、やることを減らしている。
最小の労力で結果を出すことに価値がある。
失敗とフィードバックを歓迎する。
メンタルモデルとは
一流のエンジニアも、一発で全てを理解するような天才!というわけではなく、頭の作りは僕ら普通の人とあまり大差はないようです。
ただ、頭の使い方、思考の方法を工夫することにより、物事の理解を難なく行っているとのことでした。
それがメンタルモデルです。
僕も初めて目にした概念です。
一流エンジニアはメンタルモデルを活用し、問題を解決するためのフレームワークを持っています。
オブジェクト指向やアーキテクチャを学んでいくと自ずとシステム思考のメンタルモデルが頭の中に出来上がってきて、それを用いてソフトウェアの構造を理解していくと思うのですが、そのイメージを意図的に自分の中につくりげておき、それをいつでも取り出せる状態にしておくのが重要かと思います。
ここで、僕が普段思考するときによく使う考え方の癖も、ある種メンタルモデルだなと思って、Input-Output思考として図示してみました。
「達成したい目標、ToBe、Output」と、それに対して、「今の現状、AsIs、Input」の2つを結びつけ、それに対してどう対処していくか?を考えます。
シンプルですが、これはどんなことにも使える、万能で強力な思考法だと思います。
おそらく多くの人もこの考え方をしているのではないかと思います。
例えば、ある機能の実装に取り掛かる時、
理想とする機能のToBe
それに対してまだできていない現状
を正しく把握し、上記の課題を解決するために、どうクリアしていくか?その対処法を考える際に、Input-Outpu思考を使います。
いくつかタスクを細かく分割していったら、次にその各一つ一つのタスクについて、さらにInput-Output思考を使って、じゃあどうやるか?を考えていきます。
このように、大きな粒度から小さな粒度まで、幅広く応用できるためよく使っている思考法です。
"理解すること"に時間を掛ける
一流のエンジニアであっても、物事を理解するのに時間が掛かることもあるそうです。
ただ、分からないことを分からないままにせず、大量に資料を読み込んだり、動画を何度も見返したり、「えっ、そんな初歩的なこと聞くの?」と思いそうなことでも、自分が理解するまでしつこく人に聞く。
そうやって築き上げた盤石な基礎が、彼らが一流である所以なのかなと思います。
思えば僕も、中途半端な理解のまま進めてきたことが何度もありました。
「早く結果を出したい」「とりあえず動くものを出したい」と、目先の成果ばかり求めて、理解を疎かにしてしまったせいで、その後の仕事全体の質が上がらない根本の原因になっているのかなと思います。
これもまさに僕の中に染み込んでしまっていて、「自分でまずは調べなきゃ…」と癖付いてしまってるのですが、これじゃ効率も悪いし時間だけがかかってしまうのでよくない癖だなと思ってます。
ちょっと話逸れますが、「ググれ、カス」って言葉自体日本の良くない文化を表してるなと思います。なんでも自己責任。周りを頼れない。知らないことが悪。そんなことも知らないの?と言わんばかりの冷たい態度。
そういう空気感の文化もなんとかしたいなと思っています。
やることを減らす
優先順位の考え方を例に、一流のエンジニアとそうでない者での「やることを減らす」という考え方の違いを説明されていました。
タスクが5つあるとしたら、
一流のエンジニアは、「これが最も優先度が高いのでこれをする。それ以外はやらない」と、1つにフォーカスする。
一流でない者は「これが1番目、これが2番目…」と全てに順位付けをする。
やることを絞り1つにフォーカスすることで、格段に脳のクリアさが出てくることを僕も実体験として感じたこともあります。
会議一つ取っても、会議中に内職をせず、会議に集中する。準備、Next Action決め、資料の修正も全部会議の中で完結させる。
そうすると、会議の時間が価値の高いものになります。
僕も普段の生活で、「仕事、筋トレ、家事、趣味、読書、睡眠、….全部やらなきゃ…」とパンクしそうなぐらい全部やろうとしてしまい、そのため、かえってどれも中途半端に終わってしまっているような感覚があります。
これからはモノを捨てたり、やることを減らしたりすることを意識していこうと思います。
日々の生活への適用
メンタルモデルを作ることも、理解することに時間をかけることも、やることを減らすことも全部普段の生活の中でも意識してみるとよりいいんじゃないかなと思います。
仕事が終わったら仕事のことはやらない。(ただし自己研鑽の学習は除く)
妻や友人知人との時間を精一杯楽しむ。
普段の会話のなかで、分かったつもりのまま放置しない。
全部やろうとしない。
もう着ない服、使わないものは捨てる。
最後に
今まで自分は能力が低いから周りより上手く立ち回れない、うまくできないと思っていたんですが、一流エンジニアの事例や思考の癖、マインドセットを知ることができて、自分を客観視できました。
どうやっても上手くできなかった理由が分かったように思います。
僕と同じように、自分は能力が低いと思い込んでるエンジニアにこの本を読んでほしいと思います。
最後まで読んでいただきありがとうございました!
スキ、コメントお待ちしています。