以下の本を読んで、気になったフレーズと、なぜ気になったか、そこから何を学んだのかを
自分用にアウトプットとしてまとめていきます。
読んだ本はこちら↓
世界一流エンジニアの思考法 by 牛尾 剛さん
いきなり手を動かさない。まずは、事実(データ)を一つ見つける→いくつかの仮説を立てる→その仮説を証明するための行動をとる。
例えば、何かしら不具合やコンパイルエラーなどが発生した時、以下のようなアプローチを取ることがある。
- エラー発生!
- 色々適当に怪しいところをぽちぽちいじる
- あ、なんか治った!とりあえずよかった!
- 終わり。。。。
このアプローチは最悪で、よくないところが二点ある。
- 治るんだったらまだいいが、、、
2
の手順の部分で、治るかどうかは割と運頼みなところもあり、目立てが悪かったらとんでもない時間かかる可能性がある。 - 直せたところで、なんで治ったのか、何が原因だったのかを理解できていないので、何も自分の知識となっておらず、将来的な生産性が上がらない。
不具合などが発生したときには、以下のことを意識してアプローチする。
- いきなり手を動かすのではなく、なぜ不具合が起きているかを考え調査の方針を立てる。その上で手を動かす。
思考のない試行錯誤は悪
理解が十分でないまま手を動かして努力しても、空回りになるだけで身につかず、あやふやの試行錯誤は取り組んだことも忘れやすく頭に残らない。「何かを早くできるように急ぐ努力」がかえって本質的な理解を遠ざけてしまうのだ。
問題が発生した際にアプローチとして、問題解決を急ぐばかり、成長に糧にならない方法を取りがち。
例えば、
- GPTに直接投げて、帰ってきた答えをそのままコピペ
- ググって出てきたコードを直接はる。
上記の方法でも解決自体はできるかもしれないが、自分の成長としては何も残らず、次同じような原因の問題が発生したら同じことを繰り返す可能性が高い。(実際、自分はかなりこれやってしまっていた....)
よっぽどの非常事態でない限り、問題が発生した際の解決のアプローチとして、単純に問題が解決できたという結果だけを
追い求めるのではなく、それに伴う自分の成長も意識して問題解決に取り組む。
その際、理解に時間がかかってしまっても、焦らない。
どんなに頭がいい人でも、理解に時間をかけている。
(頭のいい人が問題解決が早いのは、以前時間をかけてしっかりと基礎を理解をしているから)
メンタルモデルを作ることのススメ
そもそも、メンタルモデルとは?
↓
人々が世界を理解し、予測し、解釈し、新しい状況に適用するための、自己の心の中のイメージや理論のこと
メンタルモデルを前もって自分の中で作っておくことで、さまざまな事象に対して理解が早まる、、、らしい。
ここに関して、理解が浅いので、本書で紹介されている以下の本を読んでさらに理解を深めるのと、自分に合ったメンタルモデルを探していきたい。
一つのことで2時間以上ブロックされたなら、質問するなり相談するなりして寝かせておいて、他の仕事をやっておく方が断然生産性が高い(p.47)。
自分一人で解決しようと躍起になるのは、よくやりがちだが、これは自分自身にとっても、チームにとってもよくない。
エキスパートに早い段階で質問をすることで、修正の方向性も正すこともできるし、最終的なアウトプットも大抵よくなる。
自分一人で決めた方向性ではなくなるので、修正後の認識齟齬、出戻りも少なくなりチームとしても良い。