ここで私が付け加えて話したいのは、クロードコードとかカーサーとかをコーディングエージェントとして使うのは当たり前で、それをどれぐらい深く使っているかという点が非常に重要だと思います。
クロードコードをそのまま使っているのではなくて、もちろんですけど、cloud.md を整理しているとか、スキルズを常にアップデートしてサブエージェントを活用して、
CI にもエージェント的なワークフローを組んで、組織全体のエンジニア生産性を高まる活動もしているかという点があれば、高く評価されると思います。
あとは、このコーディングエージェントをいかに使いこなしているかというのが、ある種のリトマススケンシみたいになっているところもあって、
エンジニアの転職でよく聞かれる質問の中で、最近興味を持って調べた技術は何ですかという質問があるんですが、
これで何を問うてるかというと、その人がいかに新しい技術をキャッチアップできるか、それを自分のスキルとして取り込む姿勢があるのかというのを聞いています。
エンジニアって常に勉強して、常に新しい技術を学んでいかないとどんどん置いていかれる職種ですよね。
なので、こういう学ぶ姿勢というのは非常に大事なので、この質問をしているんですが、
このコーディングエージェントってどう使ってますかという質問は、もちろん実務で皆さんコーディングエージェントを使っているので、使えないと困るという側面もあるんですが、
それと同時に、最近興味を持って調べた技術は何ですかという質問と同じように、最新の技術に興味を持って自分で調べて学んで、それを会社で活用できる人材ですかというのを同時に見ている。
なので、これから例えば転職活動したいとか、今大学生でこれから就職活動するという場面においては、クロードコードとか使ってますかという質問に対しては、二面性がある。
単に使いこなしてますかという側面と、この人積極的に新しい技術を調べる人材なんですかねという両面を踏まえて聞いているので、それを踏まえて回答するといいんじゃないかなと思います。
かつですね、もしまだクロードコードとかカーサーとか全然使いこなせてないという人であれば、そのまま転職市場に行ってしまうと、この人新しい技術キャッチアップしない人なんだというふうに思われてしまうので、事情があると思います。
忙しいとか、今の会社で会社のルールが厳しくて使えないとかあるかもしれないんですが、現実としてはそういうふうに見られるので、自ら機械を作ってですね、学習するのがいいんじゃないかなと思います。
ではですね、コーディングエージェントが発展すれば、いわゆるその技術的な基礎知識、コンピュータサイエンスの知識がいるのかいらないのかというのが次気になってくるところだと思いますが、これもあの質問が出ております。
内容は、AIを活用した開発が一般的になる時代において、情報処理技術や試験などのコンピュータサイエンスに関する知見は重要だと思いますかという質問に対して、とても重要が46%、まあ重要が38%と、とても重要とまあ重要を合わせると8割ですよね。
引き続きコンピュータサイエンスの基礎知識は重要だというふうに企業は取られていると。アルゴリズムとかデータ構造とかネットワークとかデータベースみたいな基礎知識は引き続き勉強する価値があるということですね。
この回答に対する自由記述もぜひ共有したいと思うんですが、これはですね私自身もまあ確かにそういう側面あるなぁと思いながら読んでいたものですが、例えば、
符号プログラミングによってハードウェアのスペックを意識しない開発をし、システムが高負荷に陥るようなコードが散見されレビュー負荷が増大したとか、
ジュニアのコーディングエージェント活用によって一見は動作しているが、運用保守や非機能要件の懸念、イレギュラーケースのコールができていないプルリクエストが増えてレビュワーの負担が上がっているとか、
基本的なアルゴリズムやアーキテクチャの理解が不足しているメンバーがAIの出力を鵜呑みにするリスクが顕在化しているなどという声もありました。
これを聞いてですね、シニアとかミドルのエンジニアの人は確かに今所属しているチームのメンバーのジュニアとかこういう側面あるなとか、
一方でその新卒とかジュニアのエンジニアの視点に立つと、実際このプルリクエストを出すクロードコードが出したものを実はあまり理解せずに出していることが多いとか、そういったことが頭に起きると思うんですが、
企業側に立ってみると、これがリスクだと、だからコンピューターサイエンスの基礎知識がある人が重要だということを言っているんですね。
さてこれらを踏まえまして、就活生、それから新卒の方向けに言いたいこと、アドバイスがあるとしたらこういうところかなというふうに思います。
まず一つ目はAIは使いましょうと、そして圧倒的に使いこなせる人材になることが大事です。
例えば面接でですね、クロードコードを使ってますだけじゃなくて、友達ととあるアプリを作ってました。
こういう問題があってこれを解決するためにアプリを作ったんです。
それをするためにスペック駆動開発を取り入れて、AIが自律的に行動環境を整えました。
発生した課題があれば都度スキルズに変換していくことで、自分としてチームの仲間の生産性を高める取り組みをしていきました。
みたいなことを言えるとすごくいいですね。
一方でAIを使わないという縛り経験を積むこともとても大事です。
会社に入ってから現場に配属されてからクロードコードを使わずに開発をするっていうのはかなり厳しいですね。
やっぱり一定結果が求められるのでやってもいいよと言われるかもしれませんが、
やはり周りと比べるとコーディングエージェントを使っている同期と使っていない自分と比べるとパフォーマンスがどうしても落ちてしまうので、
個人のマインドセットとしてもやらずに開発をするっていうのは非常に難しい時代にあると思いますが、
今であればですね、まだ仕事をしていない、インターンとかをしているかもしれませんが、
実際に正社員として働いていない今であれば、このAIを使わないという縛りができる状況かなと思います。
そのためにまずコンピューターサイエンスの基礎を学ぶというところですね。
情報系の大学に通っている人であれば、ちゃんと知識を受けてくださいというところではあるんですが、
もし情報系に通っていない方であれば、オンラインの講座を受けてみるみたいなのもいいかなと思います。
例えばアルゴリズムとデータ構造とかネットワークとかデータベースみたいなそういう講義のことですね。
それからIPAがやっている基本情報技術者試験とか応用情報技術者試験みたいな試験を持っているっていうのも非常にいいかなと思いますし、
もし取ったのであれば面接の時とかに、このAI時代だからこそ基礎力が大事でこれを取りましたと言えればすごいかっこいいと思います。
一方でただ単にコードを書ければいい、コードを書くための技術を持っていればいいという時代ではなくなってきたのも事実なので、
エンジニアの本質である課題を見つけてそれを仕組みで解決する、ロジカルに解決するという経験をたくさんすることも大事です。
これはコードを書くということに限らない話ですね。
例えばサークルをやっていて、なんとかっていうルーティンの作業があって非常に大変でしたとチームメンバー。
この問題を分解すると3つ問題を分解して、この2つはコードとかを使って自動化しました。
みんなハッピーですと。
この最後の1個は自動化することができませんでしたと。
この問題の本質はコミュニケーションパスがぐちゃぐちゃしていたのが問題だったので、
こういうふうなやり取りすることによってコミュニケーションパスを整理して、
最終的には例えば5時間かかっていたのが1時間で終わるようになりました。
みたいなことを言えるような経験をたくさんするということですね。
それからそもそもこれってやる必要あったんでしたっけとか、どういう経緯でこれやることになったんでしたっけみたいな、
もうHowからいくんじゃなくて、Yから突き詰めてそれをWhatで説明して、
で、Howまで落とし込むみたいなことができると非常にいいと思います。
エンジニアがコードを書くのも結局は手段であって、
最終的に解決したいのはロジカルにどうやって問題を解決していくかということが大事なので、
その経験をたくさん積んでほしいと思いますし、
もしポートフォリオを作るのであれば、経験としてぜひAIを使わずに書いていただいて、
そこで採用した技術とかロジックをなぜそうしたのかを詳しく説明できるようになるといいと思います。