2023.5.4
“技術力がある人”は多分こう考えているんだろうな【エンジニア】
こんにちは、かじです。
今回は、技術力があるなと感じるエンジニアの特徴を述べていきたいと思います。
今回は僕の独断と偏見になりますので客観性は皆無です。どうかご容赦ください。
僕はプログラミング学習を独学で始めて3年、会社で勤めて2年というキャリアの中で、最近ではエンジニアとの採用面談なんかも少しずつやらせてもらうようになりました。
その中には、僕と同じような歴の方もいれば、業界数十年のベテランという方もおられました。
また、先輩エンジニアとも関わる中で、多分、技術力があるというのはこういうことなのかなと思うことがあったので、まとめてみたいと思います。

1.技術力がある人は全てを知っているわけではない
コンテナ、クラウド、サーバーレス、SPA、クロスプラットフォーム等、日進月歩で開発技術は進化をしています。これがトレンドとか、必須知識とかネット上では沢山の情報が溢れています。ただ、プログラミング学習段階の方がそういった情報を丸呑みにして、100%理解しておく必要性は必ずしも高くはないと僕は考えています。
その知識が必要だと感じた時に学べばいいのであって、決して流行の技術を学ぶこと自体は優先順位は高くありません。(もちろん知っていて損なことはありませんし、余裕がある方は学んだ方がいいと思います。)
ある業界歴の長いエンジニアの方と面談した時に、その方の職務経歴書にはAWSと書いてありました。
「AWSはどのようなサービスを使用した開発でしたか」と聞いたところ、EC2を使われた経験だったとのことです。
当時は、AWSでサーバーレスアプリのプロジェクトの人をアサインしたかったため、失礼ながら、サーバーレスの開発は可能かと僕は聞きました。
答えは、「仕組みは理解すれば可能です」と余裕の回答でした。
また、別の先輩エンジニアの方にプログラミングで解決できない問題があったため、質問したところ、先輩はその場でグーグルで調べて、解決方法を導きました。
優秀なエンジニアの方であっても、知らないことは沢山あるんだなと感じました。
まあ、全知全能の神でもなければ、そんなことは当たり前なのでしょうが。
2.基本は調べる、本を読む
そんな優秀なエンジニアの方々ですが、そういう人は何か新しい(使用したことのない)技術を学ぶ際は、公式ドキュメントや体系的に学べる参考書を読みある程度設計するところまでやっています。
その際、プログラミングできるレベルで公式ドキュメントや参考書を読むというよりは、どの技術を使用して機能要件を満たすかというところまで落とし込む視点で調査をしているというように、感じます。あくまで、僕の肌感覚ではありますが。
また、分からないことは、とにかく日本語英語関わらず、調べて解決します。エラーメッセージが出ていればエラーメッセージを分かるまで調べるのはもちろんですが、何もエラーが出ていないのであれば、ログを自ら出すようにして、事象を把握してググります。
3.コンピュータサイエンスやプログラミングの基礎知識の土台がある
結局言っていることは当たり前のことじゃないかと思われるかと思います。そもそも、人がぐぐって解決したことなら、お前がググってないだけではないかと思われてしまうかもしれません。
確かに当たり前のことを言っていますし、上記の場面では、僕はググっていなかったのですが、ググり方が分からなかったというのが正直なところです。
その事象が起こった際に問題が起こったポイントを適切な用語にして検索エンジンにかけるということができませんでした。
そこが、技術力のあるエンジニアとの大きな違いだと思うのです。
WEBの仕組みだけでなくコンピュータサイエンスやプログラミングの基礎知識から構成されている豊富な土台があるため、事象を見て何が起きているか、どう表現するかを思いついているのだと思います。
4.まとめ〜ググれではなく、ChatGPTに聞けの時代〜
Chat GPTが最近世間を賑わせています。
ググれと言われたことが、Chat GPTに聞けと言われることもそう遠くないのではないかとおもいます。
この仕事はAIに奪われるとか奪われないとか色々と言われていますが、奪われるような仕事は奪われたらいいと僕は思います。
ITの本質は人の仕事を増やすではなく減らすことが目的ですから、AIの発達によってIT技術の目的は一つ達成されることになります。
ただ、AIがいいとか悪いとかではなく、AIの本質として大量のデータをコンピュータが読み込んで、情報を理解しているように見せて、それっぽく回答しているというのがAIです。
プログラムを書く行為自体は人間より精度が高く早くできるかもしれません。AIに聞くための表現力、その表現力を支えるためには基礎知識という土台が必要になりますし、そのAIの回答の妥当性の判断も必要になります。
その時に必要なのはプログラミングという断片的なスキルではなく、包括的で基本的な知識と理解で、どのようにして課題を解決するかという思考プロセスが必要になると考えます。
技術そのものがどうこうではなく、技術をどう理解して、課題をどう表現するかへのアプローチを見直すことが技術力のあるエンジニアへの第一歩だと思います。
最後はそのような”技術力のある”エンジニアがAIに仕事を奪われることなく、AIをうまく活用して活躍していくのではないでしょうか。
締まりの悪い終わり方ですが、今回はここまでになります。
最後まで閲覧くださりありがとうございました。
~画像出展元~