今更ながら「世界一流エンジニアの思考法」を読んだ
はじめに
今更ながら「世界一流エンジニアの思考法」と言う有名な書籍を読んでみました。すでにまとめ記事書いてる人はたくさんいますが、参考になるマインドがたくさんあったので自分でもアウトプットがてら記事に残そうと思います。 記事を書きながらFailFastや、どんなにAIが進化してもソフトウェアエンジニアの仕事はなくならないなど共通してる部分がいくつかあったので、以前大学で参加したGoogle本社の方の講演を簡単にまとめた記事も載せておきます↑
内容
「思考法」が高い生産性を生み出す
マイクロソフトのどんなに優秀な開発者でも常人離れした記憶力や頭の回転の速さがあるわけではない。そのほとんどが思考法(マインドセット)で高い生産性を形作っている。この思考法がAI時代を生き延びる重要なスキルになってくる。
手を動かす前に仮説を検証する
事実(データ)を1つ見つける→いくつかの仮説を立てる→その仮説を証明するための行動をする
これによりむやみやたらに試行錯誤せず圧倒的な効率を生み出す。
頭が良くても「理解」には時間がかかる
マイクロソフトのどんなに優秀な開発者でも理解には時間がかかる。基礎的なことを焦らず一つずつ徹底的に理解する習慣をつける。
Be Lazy(怠惰であれ)というマインドセット
より少ない時間で価値を最大化するという考え方。例えば
- 優先順位をつけて1つのことだけをやる
- 会議は会議の時間内で事を完結させる
- 不必要な仕事をやめる
などがある。
Fail Fast(早く失敗する)
リスクや失敗を恐れる体質は生産性の面で劇的な低下をもたらす。どんどんチャレンジして早くフィードバックを得る。早く失敗することはそれ自体に意味がある。
コードリーディングは全部読まない
クラスの中身などの実装はちゃんとできているとして、大まかな構造やインターフェースを把握する。
難易度別に分ける
物事を大きく4つの難易度に分けて考える
レベル1. 何もググらず即実装できる
レベル2. ググれば実装できる
レベル3. スパイクソリューションがあれば何とかなる
レベル4. 自分では無理
レベル1の領域をどんどん増やせるように努力する。
マルチタスクをやらない
そもそも人間はマルチタスクに向いていない。PCのCPUもマルチタスクをしているように見えて実際は1つの作業しかしていない。
1日に1時間は自分の時間を確保する
1日に4時間はメール返信や他の作業をせず自分のやるべき作業だけに集中する時間を確保する。
技術ブログを書く
何か新しい技術を学んだらブログに書いて人に説明できるようにする。
人が見ることを前提としたメモやコードを書く
何かをメモしたりするときは自分が見返すためだけでなく他の人がみても理解できるような形式で書く。コードもしかり。
タイムボックス制で学習の時間を確保する
1日のタイムスケジュールを決めておいて時間でしっかり区切って学習時間を確保する。例えば日々の業務の時間を18時までと決めたらどんなにキリが悪くてもそこで業務を終えることでより多く自分の時間を確保するようにする。
AI時代には「専門性」こそが強みとなる
どんなにAIが高度なソフトウェアを作り出せるようになっても現実的にそれをどうやって顧客に提供するか?そこには当然人間の手が必要。例えばChatのシステムを作って、あるAIが作ったプログラムをバックエンドで使うとしたら
- たくさんのアクセスを捌くための仕組みはどう作るのか
- セキュリティはどう担保するのか
- 用途や目的に応じたAIモデルはどう作るか
- モデルを求めるサービスにどうインテグレーション(統合)させるか
などソフトウェアエンジニアが担わなければ実際に使えるサービスは生まれない。時流に惑わされず「専門性」を追求する姿勢こそが1番強いのではないか。
自分の人生は自分でコントロールする
自分の人生や幸せに責任を持って、自分でコントロールするというマインドを持つ。
おわりに
今回は「世界一流エンジニアの思考法」と言う書籍についてまとめました。自分はまだ学生ですが、普段やってるインターンでも活かせそうな考え方がたくさんあり本当に勉強になりました。いきなり全てを実践することは難しいかと思いますが、記事でまとめた内容をまずは1つでも意識していけるように頑張ろうと思います!
参考
結構サクッと読める書籍ですのでこの機会に読んで見てください⭐️
Discussion