本記事はCodeRabbitのお届けするポッドキャスト、THE MERGEよりWhich Skills Will Matter Most for Software Engineers? | Kunal Kushwahaの日本語解説記事です。
TL;DR
AI時代のソフトウェアエンジニアには、コードを書く力に加え、課題を見つけてプロダクトを作り、ユーザーに届ける力が求められます。WeMakeDevsの創設者であるKunal Kushwaha氏は、技術の基礎を学びながらAIを補助として使い、問題解決やコミュニケーションに時間を使うことを勧めています。
動画では、オープンソースへの貢献や知識の発信、AIが生成したコードへの責任、ハッカソンでの開発方法を取り上げています。具体的な学習方法として、LLMをローカルで動かし、仕組みを理解してから規模を広げる方法も紹介しています。
オープンソースへの貢献と知識の発信で経験を積む(7:34〜)
学生がインターンに応募すると、過去の経験を求められます。しかし、経験を積むためのインターンに入れなければ、履歴書に書ける実績も増やせません。Kushwaha氏は、この行き詰まりを解く方法としてオープンソースへの貢献を挙げています。自身も大学2年時にKubernetesへ貢献し、企業との面接や人との出会いにつながったと振り返ります。コード以外の貢献もあり、初心者が参加できる活動もあると説明しています。
AIが普及しても、問題を解いたり、オープンソースやハッカソンに参加したり、ブログや登壇で発信したりするという行動は変わらないといいます。また、人前で学ぶことは、見た動画や学習の進み具合を報告するだけではありません。学んだことの中から、他の人にも役立つ知識を自分の言葉で説明することです。発信を通じて業界の人から意見をもらうことで、仲間との関係も築けるのです。
基礎知識とプロダクトを考える力を磨く(31:39〜)
プログラミング言語や低レイヤーの仕組みを時間をかけて学んだ人は、AIの進歩を前に、自分の知識にどんな価値があるのかと考えるかもしれません。Kushwaha氏は、基礎を理解していれば技術の流行に振り回されにくくなると話します。この際、すべての分野に精通する必要はありません。専門分野を持ちながら、周辺の分野にも理解を広げる姿勢を勧めています。
基礎に加えて重視するのが、プロダクトを考える力です。例として、既存のWebサイトを見て、どこを変えるか、その変更が市場や業界にどう影響するかを説明する課題を挙げています。言語の習熟度に加え、ユーザー理解やチームで働く力、共感、問題解決の力も問う考え方です。AIの性能向上だけを追うのではなく、自分自身が何を学び、どんな価値を提供できるようになったかを考えるよう促しています。
AIを活用しても成果物への責任は残る(40:08〜)
経験を積んだエンジニアは、AI時代にどう対応すればよいのでしょうか。Kushwaha氏は、基礎を大切にし、単調な作業をAIで自動化して問題解決に注力することを勧めています。システムへの指示がコードから自然言語に変わっても、アーキテクチャや保守について考える仕事は残るという考え方です。AIがコードを書いた場合も、リリースする成果物への責任は人間が持ち続けるのです。
コードレビューについては、対談の中で異なる見方も示されます。聞き手であるヘンドリックは、保守性や性能の問題が数か月後に表面化する可能性を挙げ、テストが通っていても変更内容を理解する必要があると指摘します。Kushwaha氏も、どこまで確認するかは、変更の影響や事業上のリスクによると説明しています。ボタンの色を変える作業と、事業継続性を左右する大規模な障害対応では、求められる確認が異なります。
ただし、AIのレビューを活用しつつ最終的に承認する人が変更を確認し、責任を持つという点では、両者の考えは一致しています。
動く最小限のプロダクトを作ってから機能を広げる(51:00〜)
ハッカソンでは、AIによって一人で担当できる範囲が広がっています。Kushwaha氏が運営するイベントでは、半数を超える参加者が一人で参加しているといいます。AIを使えば、短時間でもデザイン、インフラ、開発などに取り組めます。そのぶん、何を作るか、ツールをどう組み合わせるか、成果をどう伝えるかに時間を使えるようになりました。
成果を出す参加者は、最初にMVPを完成させるといいます。中心となる機能とシンプルな画面を用意し、必要なツールを連携させます。その動く状態を確定させてから、追加機能に取り組みます。審査員がすぐに試せるデモを用意することも重視しています。アイデアの独自性だけで勝敗が決まるわけではありません。基本機能が動き、操作がスムーズで、作ったものの価値が伝わることも評価につながると説明しています。
AIの出力を教材にしてLLMの仕組みを学ぶ(1:02:07〜)
次の仕事を探す人には、希望する役割や会社、その仕事で使われるAIツールを整理するよう勧めています。一方、学生や初心者には、最初の言語やツール選びで立ち止まらず、まず作り始めることを勧めています。AIにWebサイト全体を作らせる場合も、生成されたコードを読んで理解することが大切です。処理や関数の仕組みをAIに質問すれば、作ったものを教材として使えます。
具体的な学習テーマとして挙げるのが、LLMのローカル実行とファインチューニングです。まず手元で動かし、ネットワークやエージェント同士の連携を理解してから、規模を広げる方法を考えます。APIやハードウェア、各種クラウドといった選択肢を知れば、仕事で実行環境を選ぶときの判断材料になります。Kushwaha氏は、Kubernetesをローカルで動かして仕組みを学び、本番ではマネージドサービスを使う方法にも通じると説明しています。
まとめ
対談の中で繰り返し語られたのは、基礎を学び、AIを使いながら、自分で問題を解く力を伸ばすことです。オープンソースへの貢献や知識の発信を通じて経験を積み、ユーザーやプロダクトについて考え、動くものを素早くリリースします。AIに任せられる作業が増えたとしても、何を作るかを判断し、成果を説明し、他の人と協力する力は常に問われます。
AIが生成した成果物は、内容を理解して確認し、承認する人が責任を引き受けます。学習では、生成されたコードを教材にしたり、LLMをローカルで動かして仕組みを確かめたりできます。Kushwaha氏は最後に、自分では変えられないことを心配し続けるより、学習や準備など、自分が取り組める行動に力を注ぐ方が大事だと伝えています。




