なんとなく肌感で、このままの自分だとエンジニアとしては成長できないと感じていた。
優秀な先輩や後輩との距離を日に日に強く感じていき、生まれ持った頭の違いと片付けてしまっていたが、今後のキャリアも考えるといよいよそうも言ってられなくなってきた。
そこでふとアマゾンでみたこの本を読んでみる
なにか今後の生き方に手がかりがあるかもしれない
あと、うっすら自分もADHDの傾向あるなと思ってたので、作者へのシンパシーがあった。
「試行錯誤するな」「触る前に考えろ」「マインドセットを作れ」「デザインドキュメントをかけ」「基礎は時間をかけて固めろ」
これらの教訓は衝撃的だった
プログラミングにおいて一刻も早くアウトプットとしては形にしたいという気持ちがずっとある。
自分はこの作者とタイプが似ている。
ずっとこういった仕事の仕方をしてきたが、変化が必要だ。
コードの着手前に一回まず考えるということを意識していこう。触ってから考える、はそそろそろ卒業しよう。(コード面においては、ね。)
Be lazy
感銘を受けたのは、「自分にとって難しすぎる」と思うときの2パターン
1つは基礎力が足りていないとき。これは時間をかけて積むしかないけど、0からはじめる必要があることは少ないので、手を出さないで良い。
2つめは自分が無理なやり方をしているとき。これは、思考法がそもそも間違っていることがある。
幾度となく「自分には無理だ・・・」を経験した身としては目から鱗
それは本当に無理なのか?脳みそが違うと判断して諦めてはいないか?
優秀なプログラマーだって同じ人間。基礎力を高さだったり、着眼点だったりが異なるだけで、自分とそこまで大きく違いはないのかもしれない。
理解度レベル1〜4の話も面白い。レベル1はなにも見ずにわかっている知識、レベル4は自分の中にない知識。
レベル4を求めるのではなく、レベル1を増やしていくのが優秀なエンジニアに近づける。
それは、ちょっとコード書いてみるときとかにコピペをしないでもスッとでる知識。for文とかif文とか
そこを増やしていくことで、そこの部分には以降着目しなくてよくなり、メインのロジックに思考を回せるようになる。
AIを使うとスッと文を出してくれるが、それは知識の蓄積にはならない。なんとなくのイメージで持っていることは、いざ0から書いてみると書けないということがよくある。この点はAIの使用では注意するべきだ。
あとはWIP=1(work in progress = 1)の法則
マルチタスクをしないという縛り。
ミーティング中は議題に向き合う。チャットすらしない。
自分の時間はしっかり確保し、それ以外のタスクはしない。
記憶力の話も出てきた。自分はこの記憶力が特に苦手。筆者と同じだ。
人に説明できる前提で考える。そして隙あらば説明するのが大切なんだろう。
ノートに頼らず、頭の中でフレームワークを組み立てるということも大切だとかいてあった。これは多分訓練が入りそうなないようだ。
後半は、結構筆者自身の考えが強くでてくる。サーバントリーダーシップな組織ができず、残業が美徳される日本のディスが多くなる。
最後の方のAIの話では、日本の批判文化をこき下ろしていた。
筆者の言ってることは概ね同感だが、エンジニアという地位に胡座をかいている感も正直否めない。エンジニアはこんだけ大変なんだからみんな敬うべき、という主張は、ちょっと傲慢にも感じた。
自分は、手を動かしている人たち皆が敬い敬われるのがいいと思っている。エンジニアどうこう関係なく、お互いがお互いを理解する姿勢が大切なんだと思う。
だから、自分も手を動かし続ける人でありたい。
総じて、この筆者すごいなと思ったのは、常に自分のありたい姿を追い求めていること。そして、自己肯定感が低いから周りのみんなとの差を感じていながら、彼らに追いつこうと直接聞きまくっていること。
自分の場合、できる人を前にしたら、くそ、あいつとは脳の出来が違うんだ、自分はあいつには追いつけない・・・という気持ちになる。
そこを、筆者はとにかくどうしたらそうな風になれるのかを観察し、アドバイスをもらい、時には本人に直接聞いている。
これができる人、マジですごいと思う。
ともあれ、非常に学びの多い本であった。
自分も筆者のこの学び続け、諦めない姿勢は忘れずに持っていたい。