はじめに
私はエンジニア歴5ヶ月です。
先日、購入して読んでみた「世界一流エンジニアの思考法」を駆け出し目線から感じたことをアウトプットしてみようと思います!
この本を読もうと思った理由
2つあります。1つ目は先輩の紹介です。他の先輩方も読んでいて
「本当に参考になった。」、「新卒段階から読んでいたら、もっと成長できた。」という声が多かったため、どんな本なんだろうと興味が湧きました。
2つ目は、ネットの記事を読んで衝撃を受けたからです。先輩の紹介もあり、興味本位でその本について調べていた所、その記事のタイトルの中に
「試行錯誤は悪である。」
と書かれていました。(具体的な記事は忘れてしまいました。申し訳ありません。)
当然、私の頭の中は「?????」です。
アメリカで働くエンジニアは試行錯誤する必要がないレベルのつよつよなの?と思いましたが、著者は、自分の事を「三流」と述べています。
もっと中身を深く知ることで、自分の仕事の参考になるのではないかと感じた私は購入し、読んでみることにしました。
結論、駆け出しの私にも参考になる事が沢山書かれており、読んで本当によかったと思っております。
今後に生かすためにも印象に残った部分を、自分の過去の行動と照らし合わせながらまとめてみたいと思います!
事実をもとに仮説を立ててから作業することで作業効率が上がる。
「試行錯誤は悪である」という項目が一番気になったので、真っ先に読んでみました。
著者は、事実をもとに、目的を達成するにはどのような手順を踏む必要があるのか、ということを順序立てて考えてから、手を動かすことが生産性や作業効率の向上に繋がると述べていました。
私の悪い癖で、何かエラーや課題に遭遇した際には、闇雲にどの部分が原因なのかを片っ端から試行錯誤してしまいます。
結果、先輩へ質問しに行った際に、エラーを解決する目的(どのような状態に持っていきたいのか?)を認識できていなかったり、
目的に向けてどの手順を踏むべきかを逆算して考えることができていなかった事も多々あります。
この項目は、自分の作業が非効率だということを改めて深く認識する機会にもなりました。
これから意識していきたいこととして
1、目的をしっかり認識すること
大前提として、課題やエラーを、どのような状態に持っていきたいのか(ゴール)を認識しないと、逆算して必要な情報を集めたり、解決策を考えたりすることができません。
しかし、私自身、闇雲に調べていくうちに、何の目的を達成するために調べているのかが抜け落ちてしまい、調べることが目的になってしまっている事があるため、まずは目的をしっかり認識する事の大切さを理解することができました。
2、事実(ファクト)を集める
これは先輩にも口酸っぱく言われて来ており、改めて大切さを再確認できました。
例えば、Webアプリケーションの外部APIの実装の時、処理がどこまで通っていて、どこで止まっているのかを確認できているのか、解決したい目的に対して、現状どのような情報が足りないのかを認識できているのか。
仮説を立てるために、事実をきちんと集める事の重要さをこの本を読んで振り返るきっかけになりました。
理解に時間をかける
「理解」の定義として、著者は
- 人に説明できること
- いつでも即座に使えること
- その知見をもとに応用できること
と述べています。
振り返ってみると、周りの先輩エンジニアや技術力の高いエンジニアの方々は、私の質問に対して、私が理解できるレベルまでしっかり噛み砕いて説明してくださいます。
一方、私が人に技術や実装の理由(なぜその方法で実装したのか)について説明しようとする際、相手に伝わるような説明ができず、理解不足を露呈する場面が多いなと振り返ります。
実際、業務内だと、タスクの期限があるため、タスクが進まないと焦ってしまい、ググったサイトの情報やChatgptのヒントをコピペし、技術や知識の理解に手が回らない時も多々あります。
そんな時こそ、ドキュメントをしっかり読みこむ、時間が許す限り、分からない部分をきちんと理解できるまで調べることが、最終的に自分の身になり、業務の生産性向上に繋がるのかなと思いました。
とにかく、1つでも多くの知識、技術を「理解する」ことを重視して作業していきたいです。
感想
他にも「Be lazy」のマインドセットや、情報量を減らすコミュニケーションなど、この本から学びになった事はいくつもありましたが、特に自分がこれから大切にしていきたい要素として2つピックアップさせていただきました。「偉大な習慣を身につけたエンジニア」になれるよう少しでも日々の行動に学んだことを取り入れていきたいと思いました!!