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

第1章
生産性の高さの違い
・デバックの手法(試行錯誤は時間を消耗してしまう)
→事実を1つログで見つけ、
→いくつかの仮説を立てる
→その仮説を証明する行動を取る
理解とは?
・その構造を掴み、人に説明できること
・いつでも、どこでも即座に取り出し、利用できる
・知見を踏まえて、応用が気く
例)コードリーディング
・コード意図とその背後のアーキテクチャーを理解する
→コードリーディングをする際に、処理ばかりを追うだけでなく、なぜこのようなコードにしたのか背景まで理解をする。
理解ができる対策
-
基礎を丁寧に勉強する
→基礎がしっかりしてないと、結果的にコードの応用が来ても理解ができなくなってしまう。 -
急がず、徹底的に理解する
→適当に理解すると、デバッグなど推測が難しく
なる。結果工数が伸びるなどにつながる。

第2章
より少ない時間で価値を最大にする
・1番重要な「1つだけ」をピックアップする
・時間を固定して、その代わりで価値を最大化する
早く失敗できるように考える
・早く手を動かし、フィードバックをもらい、改善する
→ITは、開発しないとわからない。だからこそ早く手を動かし、検証する。
結果を出す と バリューを出すの違い
・結果を出す
→決められた納期に絶対達成する
・バリューを出す
→途中で問題が起き、どうやって達成するのか考える

第3章
-
コードリーディングは極力読まない
・実装は極力見ずに、インターフェースと構造を理解する
→図を書きながら理解すると良い
・メソッド、クラスのインターフェースの役割やパラメータを理解する -
仕事を難易度別で考える
レベル1: 何もググらずに即座に実装できる
レベル2: 解決策は思いつくが、ググる必要がある
レベル3: 解法がわからないが、スパイクソリューションをしたら、できそう
レベル4: 自分だけでは解決困難。または、すごく時間がかかる
生産性とは、「レベル1」をいかに増やすこもができるのか
→レベル3、レベル4をレベル1に向上よりも、
→レベル2からレベル1に向上させた方が生産性高い
レベル1のものが増えると、脳の負荷も下げられる。
〜レベル4が来た場合〜
・自分には解けないと見極める
- マルチタスクは行わない
・今手をつけている仕事を1つにする
→会議中も内職せずに、その案件に対し積極的に参加し、案件をリードし進捗を進めた方が効率が良い。
・1日4時間は自分だけの時間を確保する
→4時間シングルタスクで最大限集中することができる
→他の時間は、メールや他の対応を行う
4.記憶力の向上
・自分が記述したコードを、説明できるか確かめる
→説明できない時は、理解ができておらず、わかっていない
〜おすすめ対応策〜
・ブログを書く
- 頭の中のみで整理する
・ミーティングの議事をその場で書かない
・人の話を聞く時は、他の人に説明することを想定し、聞きながら頭の中で整理する
・他者の言葉をメモしながら考えず、頭の中で考えて、完全に整理し終えてから、文章に書く

第4章
コードは読み物
・コードは、他の人が理解できないと意味がない
→読んだ人がどう感じるかを意識する
ミスコミュニケーション
・お互い行き違いが発生し、了承が得られない
→早めにコンタクトを取る
クイックコール
・予定されていないビデオ通話のこと
考慮すべき点
・相手が労力を要せず回答できるかどうか
→工数がかかるなら、自分で調べる
相手の質問に対し、自ら手を動かす
→自分の成長につながる

第5章
仕事は楽しいかどうか