一、はじめに
7月に、私は記事『AIプログラミングアシスタントの評価:GitHub Copilot と 豆包 MarsCode』を書き、後者を推奨しました。
豆包 MarsCode チームは最近、私に彼らの新しい機能「コード練習」を試してもらいました。これは面接と問題解決の準備に特化しています。


試用後、私は多くの考えが浮かびます。
AI がプログラマーの面接を変えると感じ、今後は AI による問題解決の後の面接の時代になると思います。
二、面接の LeetCode 問題解決
現代のプログラマー面接では、一般的にアルゴリズムの問題解決があります。
面接に備えるため、多くの人がアルゴリズムの問題を解くことで準備します。最も一般的なのはLeetCodeの問題集を使用することです。
LeetCodeは世界で最も人気のあるアルゴリズムの問題集です。アメリカ出身で、様々な面接用アルゴリズムの問題を収集しており、現在3000問を超えており、その中には多くの大手インターネット企業の実際の問題も含まれています。
多くの学生は粘り強く、毎日数時間を費やして、その中の問題を解き、アルゴリズムの能力を鍛えています。一般的に、少なくとも200問を解く必要があり、面接で自信を持てるようになります。

(画像の説明:上の図はある外国人が問題を解く統計パネルです。彼は365日中毎日問題を解き、合計1500問解きました。)
三、AIがLeetCodeを破壊
生成型AIが登場した後、より多くの人々が、AIがあると人間が問題を解く必要がなくなったことに気づきました。
2024年の8月、アメリカのユーザーがRedditフォーラムにこんな投稿をした。

彼は、自分がスクリプトを書いてAIにLeetCodeのアルゴリズム問題を自動で解かせ、1日で633問を解き、正答率は86%で、コストはたった9ドルだったと言っている。
この投稿は大きな反響を呼んだ。
AIが正解をヒントを出せるなら、なぜAIを参考にして面接に準備しないのか?苦心してLeetCodeを手で解く必要はない。
四、AIアシスタントの問題解決能力
私たちはAIに問題を解かせることで、効率的に学べる。
LeetCodeの問題を選んで、どれほど簡単なことかを見せてみる。
你是一个 JavaScript 程序员,请补充完成下面的函数。 要求是输入一个代表罗马数字的字符串(比如"IX"),该函数会返回对应的阿拉伯数字(比如9)。 /** * @param {string} s * @return {number} */ var romanToInt = function(s) { };

上記の問題を選んだのは、短くてデモンストレーションしやすいからです。また、この問題は難易度が低いけれど、複数の状況を考慮する必要があるので、初心者の面接に最適です。
選んだAIツールは、VS Codeエディタの豆包MarsCodeプラグインで、無料です。
VS Codeコードエディタで、左側のバーからこのプラグインを開きます(未インストールの場合は、「MarsCode」としてプラグインマーケットで検索できます)。その後、ダイアログに問題を入力します。

少し待って、AIが答えとコードの解説を提供します。


理解できない部分があれば、AIに質問します。

これでどれだけ時間が節約できるか、問題の解決速度が大幅に向上します。
五、面接後の時代
AIが面接のアルゴリズム問題を迅速に解決できることがわかりますので、アルゴリズムを解くことに基づく面接の形式は、変化すべきではないでしょうか?
現代のインターネット大手企業は、仕事中にAIモデルを使用することを許可しており、面接で「手で問題を解く」ことを要求するのはもう少し時代遅れです。
AIはますます普及するでしょう。もし将来の面接でAIを使用しないのは、IDEエディタを使用しないのと同じく不合理です。プログラマーが面接で日常のツールを使用することを許可すべきです。
私の考えは、面接の評価の重点が変わる可能性があるということです。面接者が問題を解くのではなく、AIが生成したコードを説明し、レビューすることになります。
面接では、AIが生成した問題解決コードを渡され、そのコードを説明し、エラーを修正し、考慮されていない点を改善するように求められます。
これには多くの利点があります:(1)プログラマーの実際の仕事のモデルに近い;(2)プログラマーのコードの読み取りと理解能力を見ることができる;(3)事前準備や不正行為を困難にする;(4)協力能力をよりよく反映できる;(5)読み取るコードよりも書くコードに偏った職種、例えばプロジェクトマネージャーやアーキテクトなどにも適用できます。
これを「AIを基にした後の面接時代、つまり面接はコーディング問題の解決能力を評価するものから、コードのレビュー理解能力を評価するものへと進化した
。
六、AIによる練習機能
現在、多くのツールが面接のAI支援トレーニングを提供している
。豆包 MarsCodeの「コード練習」は最新の試みの一つである。これを使ってみて、面接の準備や効果的な問題解決に本当に役立っていると感じた。自分自身がAIと協力してプログラミングする訓練ができる。
これはクラウドIDEベースの__JHSNS_SEG_6d4b9a08_48__専用ページ__JHSNS_SEG_6d4b9a08_49__で、__JHSNS_SEG_6d4b9a08_50__100以上の字节跳动の面接問題を内蔵している__JHSNS_SEG_6d4b9a08_51__。__JHSNS_SEG_6d4b9a08_52__すべての関連操作はこのページに集中している。ブラウザさえあれば使用可能で、問題解決の全プロセスでページを切り替える必要がありません、使用を大きく便利にします:問題選択、解答、デバッグ、AI 対話……
また、無料で、今すぐ試してみてください:豆包 MarsCodeの公式サイトにアクセス「コード練習

」メニューをクリックして、そのページに入れます
。このページはクラウド IDE で、インストールする必要がなく、開いたらブラウザで直接使用できます

。デフォルトでは、ページは4つのセクションに分かれています。左側は面接問題集の目次で、現在100問ありますが、今後も増やしていく予定です。問題を選択してクリックすると、その詳細内容が表示されます__JHSNS_SEG_6d4b9a08_63__。ページの右側にはコードボックスとAIボックスがあります

はコード入力欄で、まずプログラミング言語を選択する必要があります。選べる言語は8種類あります(Python、JavaScript、Go、C++、C、Java、Rust、TypeScript)。上の図はJavaScriptです。次に、解き方のコードを入力し、上部の実行ボタンをクリックすると、実行結果が表示されます。
はAI入力欄では、3つの事前設定されたオプションがあり、これを選択するとAIがヒントを与えたり、コードを提示したり、コードをチェックしたりします。下にはAIとの会話に使うダイアログがあります。
通常、問題を受け取った後、(1)「少しヒントが必要ですね」とクリックしてAIに問題を理解してもらいます。(2)「コードのヒントを教えて」とクリックしてAIに初期コードを提示してもらいます。(3)コードを修正・完成させ、さらに「コードをチェックして」とクリックしてエラーが出るかどうかを確認します。
また、このページにはIDE機能も統合されており、構文チェックやコードデバッグなどが可能です。コードを入力するにつれて、自動的に使用方法のヒントが表示されます(下の図)。

このような「コード練習 は、面接問題集の強力なツールと言えます。私の考えでは、面接ガイドブックや塾も必要なくなるかもしれませんし、将来的には廃れるでしょう。
七、まとめ
AIはソフトウェア業界を変えると同時に、プログラマーの面接と就職活動も変えるでしょう。
AIを使った問題解決は将来のトレンドであり、上手く使えば面接を通過し、心に合ったオファーを手に入れやすくなります。
しかし、注意すべきなのは、AIは単なるツールであり、生成されるコードは必ずしも正しいか安全ではありません。また、プロジェクトの中にはブラックボックスがあるべきではありません。
正しいやり方は、 AIを使うけれど依存しないことです。考え方の方が答えより重要です。一行ごとのコードを理解した上で、その結果を受け入れることができます。私たちがAIを使う主な目的は、常に自分自身の能力を高めることではなく、AIに代わってもらうことではありません。コードの最終責任者はAIではなく、あなたです
(終)。












