はじめに
話題になっていた本のレビュー動画です。
じぶんはまだ経験の浅いジュニアエンジニアなので、一流エンジニアから何か吸収しようと思い、レビューを書いてみることにしました。駆け出しエンジニアの方は、ぜひ読んでみてください。
どんな本
結論この本は仕事の生産性を上げるための本です。
マイクロソフトという世界トップ企業は仕事の生産性がとにかく高いです。
生産性が高いから世界トップエンジニアは、脳の構造が元々凄いのではなく、思考の習慣が違うみたいです。
ここにスポットを当てて説明されています。
トップエンジニアの思考法
この本で書かれているのは、東大出身のCTOなどのトップエンジニアからもらったアドバイスとも重なります。
ぜひ1つでも吸収してください。¥
いきなり試行錯誤して手を動かすのではなく、まずは仮説を立てる
よく駆け出しエンジニアはエラーが出た時に、いきなり手を動かしてしまいます。
しかし、一流エンジニアはいきなり手を動かしません。
ログを読んで、まずは何が起きているかを仮説を立てることから始めます。
情報を集める→→→→→いくつかの仮説を立てる→→→→→→その仮説を検証する行動を取る
の順番でエラーを解決していきます。もし仮説が間違っていたら再度仮説を立てます。
トップエンジニアは、いきなり手を動かすのではなく、社内のシステムなどの理解に時間をかけるみたいです。
自分の体験(いきなり試行錯誤して手を動かすのではなく、まずは仮説を立てる)
自分は、エラーが出るとあれもこれもと色々手を動かしてエラーを解決しようとしていました。そんな時CTOの方から、以下のアドバイスをもらいました。
1.まずは仮説を立てること
2.仮説を立てたならなぜその仮説を立てたのか根拠を持つこと
3.がむしゃらにコードは書かないこと
これをいつも言われていました。ついエラーが出ると手を動かしてしまうのが駆け出しのあるあるですね。😂
仮説の立て方の記事
下の記事をぜひ読んでください。問題の切り分けについて書かれています。
少ない時間で成果を出す
よく日本だととにかく気合と根性でいっぱい勉強するぞーとかいっぱい働くぞーみたいなことを言われているが、大事なのは少ない努力(無駄な努力を省く)で最大の成果を出すことです。
トップエンジニアはこれを大事にされているみたいです。
優先順位をつけて、大事な1つのことに集中して、それ以外はやらないことが大切になってきます。
自分の体験談(少ない時間で成果を出す)
CTOの方からあることをアドバイスをもらいました。まずはやらないことを決めよう‼︎
みんなTodoリストを作る人は多いけど、Nottodoリスト(やらないことリスト)を作る人は
けっこう少ないです。よく一生懸命勉強しているのに、成績上がらない人とかであるあるなのは、
「やらなくてもいい努力をしている人が圧倒的に多い」とおっしゃていました。
自分も不要な勉強をしてしまい、エンジニアの転職活動を始める時期が半年遅れてしまいました😭。
20代の半年はかなり大きいです。💦
少ない時間で成果を出すための動画
この動画はエンジニアと関係ないですが、かなり的を得たことを言っています。
1日4時間は1つのことに集中するために時間を確保する
マルチタスクはやらない方がいいです。自分もタスクの進捗も遅くなりましたし、
学習効率も圧倒的に悪かったです。生産性が40%落ちてしまうみたいです。😱
なので、マイクロソフトのエンジニアは、他の人のチャットやスマホなど全てシャットアウトして
1つの作業に全集中で、目の前のことに取り組みます。
コードリーディングの方法つまりシステム理解
やり方は、コードを全部読むのではなく、インターフェースと構造を理解することからやります。自分はGAFAから正社員なって欲しいとお願いされるレベルの強強エンジニアから
「まずはメイン機能を理解する。その後に自分のタスクに関連するとこだけ理解する」
ということを教わりました。
この本のメインテーマは無駄を省くこと
本の内容のメインテーマは、無駄を省いていって、力を入れるべきとこに全集中という印象でした。
今日からでもできそうなことなので、取り組んでいってください。
追加でエンジニアの仕事は経費削減をすることで、会社の利益に貢献します。
技術だけでなく、このような経費削減にも力を入れるといいです。
番外編(元GAFAのCTOの方がお話をされていること)
世界レベルのエンジニアは、プログラミングやフレームワークの知識だけでなく
ITの基礎概念(基本情報の試験の内容)なども理解している人が多いみたいです。
ex)
ネットワーク(TCPIP)、Linux、Webセキュリティなど
わかりやすいYoutube動画
資料