「世界一流エンジニアの思考法」読了。
はじめに
こんにちは、としまつです。
明けましておめでとうございます。
2024年もよろしくお願いします。
さて本年1発目の読書アウトプットです。
今年は去年よりも読書量を増やしていきたく、そしてアウトプットも増やしていきたい。簡潔に、気軽に、学びを書いていきます。
今回は「世界一流エンジニアの思考法」という本を読みました。
エンジニアとして上達していくためにはどういった思考を持つと良いのかの学びになる本でした。
学び・気づき
(1)調査や修正の際の試行錯誤は「悪」である
一流エンジニアは手当たり次第に手を動かさない。手を動かす前に「仮説」を立ててからその仮説を確かめるために手を動かす。仮説が間違っていたら新たな仮説を立て再度その仮説を証明するための行動をとる、という流れをしているという。
試行錯誤で手を動かす方が早く完了できるというのは間違った認識なんだろうなと思いました。もし仮説を立てずに早く修正が終わったとしても、根本的な原因や、今後につながる学びなどは得られないはずだなとも。
職場の先輩がこの仮説を立て取り組むということを常にされており、自分が質問した時は「今何が起きていると思いますか?事実を把握して仮説を立ててから調べてみましょう」というアドバイスをよくもらっていることを思い出し納得しました。
まずは事実把握と仮説を立てることからはじめよう。
(2)コードリーディングのコツは極力コードを読まないこと
1行ずつコードを読んで理解していくのではなく、他の開発者が書いたコードを信頼して実装はちゃんと動くものとする。極力細かくは見ずにインターフェイスと構造を理解するようにする。メソッドやクラスのインターフェイスの役割やパラメータを理解するようにする。
コードを端から端まで読む必要がある、という思い込みがあったので新たな気づきになりました。脳の負荷を下げ全体的な構造を把握することが、生産性向上やエンジニアとしての成長につながるのだろうと。
加えて生産性向上は脳の使い方次第だということも学びになりました。
(3)「アウトカム」至上主義が上達を阻害する
何かしらのアウトカム(結果)を出し続けることに集中した仕事のやり方だと、エンジニアの中長期的な生産性は上がらない。例えばAIにコードを全て書いてもらったり、既存のコードをコピペしてアウトカムを出しに行ったりなど。技術は地道な積み重ねが必要で、時には時間をガッツリ使い徹底的に理解をして情報を整理し、すぐに取り出せるレベルの理解にしてこそ長い目で見た時の生産性は上がる。
自分自身、すぐ成果を出そうとコードをコピペしてきたり、学習よりも簡単に終わる作業タスクを優先してしまったりすることがあるので、地道に理解を深めていく意識を強めていかねばと思いました。
(4)タイムボックス制で学習時間を設ける
生産性を上げるためには学習。仕事を定時くらいで切り上げその後で自分のやりたいトピックを勉強したり試したりする。仕事ばかりしていては根本的な生産性が上がらない。そこで学習時間を確保するためにタイムボックス制を設ける。先に時間を確保しておき、確保した時間で何をやるかを決めておく方法。アウトカム重視をやめ、意識的に仕事以外の時間を設けることで脳の酷使を止めることにつながり生産性が上がる。
誰よりも長い時間仕事をすることで誰よりも成果を出せるようになる、はかなり際どい考え方だなと再度思いました、反省。正直仕事ばっかりしていると学習時間が全然取れない。脳みそが「起きているなら仕事しなければ」みたいな思考になっているので考え直そう。朝の時間などに学習時間を確保するなど事前の時間確保を徹底していきたい。
実践すること
障害調査などに取り組む際は、事実把握→仮説立て→検証の手順を守って実践する
コードリーディングの際は全体の構造、メソッドの役割、全体的なつながりを見ていくようにする
アウトカム至上主義の思考をやめ、タイムボックス制で学習時間を確保する
さいごに
思考一つで成長角度が変わっていくのだろうと感じました。エンジニアとして実力をつけていきたい。今年は学習に割く時間を増やしていこうと思います。やるぞやるぞ。
読んでくださりありがとうございました。
良い1年にしていきましょう!
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?