上級問題「ラッパーと最高の韻」をChatGPTに解かせた結果
上級問題は、最も韻を踏んでいる単語の集合を見つけるため、特定のスコアを最大化する部分集合を見つけ出す問題だ。数理的な発想や高度なアルゴリズム・データ構造・重実装を要する問題であり、大規模データや複雑性の高い操作を拘束処理することが求められる。
上級問題に関しても、ギブリー田島氏が挑戦結果のサマリーを3点でまとめている。1点目は、問題の複雑性が上がったことでChatGPTの問題理解度や出力精度が落ち、指示を区分するないしは工夫するスキルもより求められてくるところだ。
2点目は、出力されたコードの改善がより必要となるため、プログラミングに対する能力が求められる点。3点目は、受験者が理解をして使いこなせると、効率的にコーディングをする上では、優秀な補助ツールである点が挙げられた。
10X石田氏がChatGPTで解いてみた結果と所感は?
10X石田氏は、最初に問題文を入れても全く正しい回答をしてくれず、苦戦したと振り返る。30分くらいで諦めて、初めて問題文を読んで理解した上で、どのように解くか考えた。
文字列のリストを入れて、最長共通接尾辞の組み合わせを高速に出せれば解けそうだとわかったので、工夫して入力。速度が出ないところもChatGPTにお願いし、時間ぎりぎりで96%の正解率を出すことに成功した。
「コーディングの友として、十分役立つので問題をしっかり分割して、正しいお願いができれば、正しい答えが返ってきそうだと感じました」(石田氏)
GMO津田氏がChatGPTで解いてみた結果と所感は?
GMO津田氏も開始15分ぐらい苦戦した後、20分くらい問題を読み込み、自分が理解した後に要素を分解してChatGPTに設計を依頼した。
設計に関しては自分でやっても同じぐらいの品質・時間が出せると思ったが、メソッドを書いてもらったところ、コードを書く速度は圧倒的にChatGPTの方が品質・時間ともに良かったと語っている。最終的に20問中19個回答して時間終了となった。
上級問題となると、コードを書く速度は圧倒的に速く、アルゴリズムを理解できる最小単位を把握して、そこで正しくこの条件を出すメソッドを作ってくれるのであれば、使わない手はないと語った。
「辞書検索で使うTrie木を使ったら?など、いろいろ提案してくれるので、コーディングの友として本当に役立つと思いました」(津田氏)
今回の結果を採用選考に活かすとしたら、どのような目線で臨むかも語られた。
「ChatGPTが教えてくれる結果をうまく活かしてコーディングできていればいい。コーディング結果をディスカッションで語りたい。問題は、複雑な仕様を読み解いて、コードに落とすことのできる問題を選ぶ可能性が高いですね」(10X石田氏)
「ChatGPTをうまく使いこなせるかは、有効な評価になります。逆にChatGPTに使われてる状態になっていないかも判断の必要があると思っています。設計(PM)と実装(ChatGPT)を分けることで、PMのテストにも使えるのではないかと思いました」(GMO津田氏)
今回の検証結果についてのまとめ
最後に田島氏は、今回の検証結果を以下のようにまとめた。
- 従来のコーディングテストに対して、ChatGPTを用いても有効である
- 出力内容を適切に読解し、指示できるプログラミング力が求められる
- ChatGPTをスキルも有効な手段になってくる
「企業が知りたいと考えるエンジニアの純粋なコーディングスキル、AIを活用することができる実務力を測るプロダクトを今後も開発していきたいと思います」(田島氏)
参考記事:AI主導の世界においてのコーディングテストはどうあるべきか
Track Testでは、ChatGPTのコーディングテストの正答率を検証した結果をレポートにまとめています。AIが普及した世界における、企業のエンジニア採用選考や評価への向き合い方についての見解にご興味がある方はぜひご覧ください。