強いエンジニアになるには?
まえがき
このnoteを始めて数本の記事を書いてきました。この少ない数でもよく読まれる記事とそうでない記事があるようです。
ここまでで見られた傾向は、自己紹介は読まれやすいということ、そしてタイトルは疑問文の方が読まれやすいということです。
伝えたいメッセージをタイトルにした方が良いかなと思っていましたが、どうやら違うみたい。
読者になんだろうと思わせるタイトルの方が良いみたいです。
ということで、今回は疑問文で始めます。(これがアテンションエコノミーか)
そして、私が考える強いエンジニアとは、以下です。
結論
『たくさん読んで、たくさん失敗するエンジニア』
解説
定義
強いにも色々あります。
程度の強さであったり、影響の強さであったり、丈夫な強さであったり。
ここでは、最後の意味に近い、靱性的な強度として使用しています。
つまり、砕けずに問題に挑戦し続ける、あるいは解決し続ける強さです。
私が見た強いエンジニア
研修や現場では他のエンジニアと一緒に課題に取り組むことがあります。
そのとき、この人は強いなと思う人たちには、ある共通点がありました。
それは、圧倒的な前向きさです。
どれだけ難題に思えても、解決策を考え続け、楽観的にも思える態度で、問題を解決し続けていました。
以前に同じような処理を書いていないか、ネットに同じ問題に悩む人の情報はないか、日本語だけでなく英語で調べたらどうか、使えるライブラリはないか、公式による回答はないか、生成AIが有益な情報を出してくれないか、そのようなことを試しまくります。
それでもなければ、よし作ればいいか、となります。コストはかかるので、実際に作るか、後行の案件に回すかは、その重要性と他の案件との兼ね合いにもよります。
そのような前向きさは、メンタルの強さとは異なる次元に感じました。
ただ単に問題解決を楽しんでいる。そんな雰囲気でした。
未経験から強いエンジニアになるために
天衣無縫の極みとも呼べそうな彼らの存在を知り、私はどうしたら強くなれるか考えました。
私にも問題解決を楽しむ心はあります。難題に対して、難しいではなく面白いと考える訓練もしています。肉体を通したメンタルトレーニングだってしてる。
でもそれだけではまだ強いとはいえない。
なぜなら、解決するための技術が圧倒的に足りないからです。
強いエンジニアたちは、圧倒的な前向きさに加えて、自分で修羅場を乗り越えて習得してきた、地に足のついた技術力を有していました。
では、我々はどうしたらその技術力を手に入れられるでしょう。
私はたくさん読んで、たくさん失敗することが必要だと思います。
何を読むのか
では、何を読むのかといえば、主にコードと公式ドキュメントです。
めんどくさがらず、これらの内容が腑に落ちるまで、あるいは人に説明できるくらいまで、読み込むことが技術的な知識を得る確実な方法であり、近道でもあると思います。
次いで、ブログの記事やコミュニティのスレッドにも先達の知恵が詰まっているので、これらを読めるようになることも役に立ちます。
最初は慣れない言葉遣いや省略されている内容に戸惑うかもしれませんが、何事も数を熟すことで慣れていくと思います。
強いエンジニアたちは往々にして、文章から要旨を掴む能力が高く、早いです。
おそらくこれは、何度も同じような文章を読んできた経験から培われた能力やセンスであると思います。
だろうでやった気にならない
だだし、いくらコードを読んで、ドキュメントを読んで、技術コミュニティの意見を理解できたとしても、自分でコードを書かず、自分で環境を構築してみなかったら、何も始まりません。
もちろん公式ドキュメントに書かれた仕様的にこれは不可能だ、と結論づけることはあります。
けれど、このコードはこう書いてる、この人はこれで上手くいっている、だから大丈夫だろうと考えるのは危険だと思います。
そのコードでは考慮できていない処理があるかもしれない、この記事の環境やバージョンと自分のそれらとは異なるかもしれない。
こうかもしれないという自分の仮説に基づいて挑戦する。
そして、失敗して痛い思いをして、改善して、それを繰り返さなければ、地に足のついた技術力は身につかないのだと思います。
そうして手に入れた技術力と問題を解決したいという根本にあった気持ちを持ち続ければ、きっと強いエンジニアになれると思います。(願望)
まとめ
圧倒的な前向きさを手に入れよう
たくさん読んでたくさん失敗しよう
以上、拙い文章を最後までお読みいただきありがとうございました。
(ご意見、ご感想お待ちしております)