Open2

読書メモ【世界一流エンジニアの思考法】

taka.1415taka.1415

実装は極力見ないようにして、インターフェースと構造を見る
ダイヤグラムや関係性のグラフを書いたりする
実装はちゃんとできていると信じて、読んでいるメソッドやクラスのインターフェースやパラメータの役割を理解するようにする

自分がしんどいと思う努力は一切やめてしまい、レベル1の即解決できる問題を増やすこと
体が覚えている、というやつですね

マジでアウトカムを急いでは行けない、まじでそう

taka.1415taka.1415

この本は、今エンジニアさんで、プロダクト開発をやっているけど、大量のフィードバックに押しつぶされそうになっていたり、成長している感がなくて焦りを感じている人だったり(まさに自分のこと!)が読んだほうがいいと思った。
牛尾さん自身が自分は3流プログラマーだとおっしゃっていて(側から見るとマイクロソフトのエンジニアさんなので全くそんなことは思わないのだが!)、根本的に感じている焦燥感や不安感が上記のような悩みを抱えている人だろうなと思った。そして、牛尾さんはこの焦燥感や不安感に真摯に向き合い、周りのスーパーエンジニアの思考法やアドバイスから解決策を考えようしている。この本で語られているメソッドを一つずつ見ていって、自分の血肉にしていきたいと思った。

思考法

・理解する、とは、即座に作れたり、他人にわかりやすく説明できること、応用ができること
・メンタルモデルを作る
・「Be Lazy」(より少ない時間で価値を最大化するという考え方)
・納期は絶対、の考え方を捨てて、決められたタイムボックスの中で価値を最大化する方法を考える
・いかに脳みその負荷を減らすかを考える
・アウトカムを重視しない
・頭だけで整理して記憶する

テクニック

・LeetCodeの勉強をする
・小さなドキュメントをコードの前に書く
・システム思考というフレームワークで全体の関係性やフローをビジュアル図としてイメージする
 ・その時に、ドメインエキスパート(その領域に詳しい人)に聞くことを恐れない
・コードリーディングのコツは、できるだけ読まず、構造やインタフェースに注目する
・マルチタスクは絶対にやらない。タスク管理ツールを用いてシングルタスクを徹底する
・1にち4時間は自分だけの時間を確保する
・コーネルメソッドで他人に説明できるように整理する
 ・ブログを書くのももちろん重要
・自分が知らない分野ほどリプロデュースやデバッグをしてみる。ただしメンタルモデルを作るためにやるべき。

仕事の難易度チェック
L1;何もググらず即実装できる
L2:ググれば解決できる
L3:スパイクソリューションがあればなんとかなる
L4;自分では無理

L4の物事を頑張るのは仕事ではなく、勉強の中でやったほうがいい
L2をL1にできると脳の負担が激減する