【エンジニア就活】AIエンジニア・データサイエンティスト選考におけるコーディングテストの内容と対策

【エンジニア就活】AIエンジニア・データサイエンティスト選考におけるコーディングテストの内容と対策

2025/03/19

会員登録すると
このコラムを保存して、いつでも見返せます

私は情報系学部に所属している25卒の大学院生です。就職活動では、数々のインターンシップを経験し、複数のメガITベンチャーや大手メーカーなどからAIエンジニア職として内定をいただきました。選考過程において、何度かコーディングテストを受験する機会がありました。近年、コーディングテストの難易度自体は高くないものの、AIエンジニアやデータサイエンティスト(以下、DS)職向けのテストは、インフラ、フロントエンド、バックエンドエンジニア向けのテストとは方向性がやや異なると感じています。
本記事では、AIエンジニア・DS職のコーディングテストおよびWebテストの内容と、その効果的な対策についてまとめます。

AIエンジニア・データサイエンティストに求められる能力

AIエンジニアとDSは、ともにAI(機械学習)技術を用いて課題解決に取り組む職種です。明確な定義の違いは少ないものの、一般的にAIエンジニアは、開発したAIそのものに価値が置かれ、製品に組み込まれるケースが多いと考えられます。例えば、自動車の自動運転AIや、近年の生成AIを開発する人材は、AIエンジニアと呼ばれる傾向があります。
一方、DSは、データ分析に基づいた意思決定支援に重点を置く傾向があります。大量の顧客データを分析し、企業の施策評価やABテストなどを実施するイメージです。ただし、職務内容の境界線は曖昧であり、本記事では両者をまとめて扱います。

これらの職種では、主に以下の3つの能力が求められます。

- データサイエンス力・数学力
- エンジニアリング力
- ビジネス力

データサイエンス力・数学力 とは、数学、統計学、アルゴリズムに関する知識を指します。例えば、売上予測AIを開発する場合、どのような指標をどのような手法で最適化すべきか、統計学や数学的な知識に基づいた判断が必要です。特に近年のトレンドであるディープラーニング(深層学習)を扱うには、数理最適化、ベクトル解析、微分積分、線形代数、統計学など、幅広い数学的知識が不可欠です。

エンジニアリング力 とは、AIを実装するためのプログラミング能力や、データベース、ネットワークに関するスキルなどを指します。高度なデータサイエンス力・数学力があっても、AIをコードとして実装する能力がなければ、エンジニアとして活躍することは困難です。また、優れたAIを開発できたとしても、それを実行するための環境(クラウド、エッジデバイスなど)を整備できなければ、製品化は実現しません。

ビジネス力 とは、AI技術とビジネスを結びつける能力です。どんなに優秀な技術者であっても、ビジネスやAI活用業界への理解が不足していると、費用対効果に見合わないシステムを開発したり、目的と手段が逆転した開発をしてしまう可能性があります。

これらの能力をバランス良く兼ね備えている人材が、AIエンジニア・DSとして高い市場価値を持つと考えられています。したがって、Webテストの内容も、これらの能力を評価するものが中心となる傾向があります。特にAIエンジニア職のWebテストでは、データサイエンス力・数学力、エンジニアリング力を重視する傾向が見られます。

Webテストの内容

私が実際に受験したWebテストは、回答期間が数日間のものと、数時間以内のもの、大きく分けて2つのタイプがありました。それぞれの内容について具体的に説明します。

数日間かけて回答するテスト

数日間という解答時間が設けられているため、参考資料を参照しながら解答することが可能です。実際、情報収集を禁止する指示はありませんでした。出題された問題の例としては、以下のようなものがあります。

- 統計学:信頼区間、ABテスト、コンバージョン率(CVR)などに関する理解度を問う問題。

- AI(機械学習):ディープラーニング、ブースティング、決定木などのアルゴリズムに関する知識を問う問題。

- AI実装:与えられたデータセットを用いて、AIモデルを構築し、予測精度を向上させる実問題。PythonやTensorFlow, PyTorch, scikit-learnなどのAI系ライブラリの利用スキルと、一定以上の予測精度を達成する能力が評価されます。

- データベース:データベースの負荷分散手法や、SQLを用いたデータ操作に関する問題。ビッグデータ処理に必要なデータベース技術に関する知識が問われます。

これらの問題は、AIエンジニア・DSに不可欠なデータサイエンス力・数学力、エンジニアリング力を総合的に評価することを目的としていると考えられます。統計学の問題は、検証実験やAI開発における効果測定において、統計的に妥当な意思決定が行えるかを評価する意図があります。AI(機械学習)に関する問題は、主要なアルゴリズムの原理や特徴を理解しているかを問うものです。

AI実装問題は、理論知識だけでなく、実際にAIモデルを構築し、課題解決に繋げられるかを評価します。データベースに関する問題は、AI技術を応用する上で重要となるビッグデータ処理の基礎知識を評価するものと言えるでしょう。

数日間かけて解答できるとはいえ、出題範囲は広く、問題の難易度も相応に高いものが含まれます。

数時間で回答するテスト

過去に私が受験した数時間以内で解答する必要があるテストは、主にコンピュータサイエンスの基礎的なアルゴリズムに関する問題で構成されていました。多くの企業が、Track社のコーディングテストプラットフォームを採用している印象です。Track社の採用テストにも様々な種類がありますが、ここではAIエンジニア・DS職で出題されやすいものに焦点を当てて説明します。

出題内容は、ソート、探索アルゴリズムなど、情報科学の基礎知識を問うものが中心です。プログラミング言語は、C, C++, Pythonなどから得意な言語を選択できる場合が多いです。具体的な問題例として、以下のようなグラフ問題が出題されました。

例題:都市間の最短経路
あなたは都市Aから都市Eまで移動したいと考えています。都市は以下の道路で繋がっており、各道路には距離が設定されています。都市Aから都市Eまでの最短経路を求めてください。

JSON


この問題は、ダイクストラアルゴリズムと呼ばれるアルゴリズムを用いて効率的に解くことができます。テストでは、問題文を正確に理解し、適切なアルゴリズムを選択、実装する能力が評価されます。

コーディングテストは、大問の中に複数の小問が含まれる形式が多く見られます。各小問は、問題傾向は類似しているものの、解答に必要な能力レベルが異なります。多くの場合、小問は以下の3つのレベルで構成されています。

- レベル1:必ずしも最適なアルゴリズムでなくても、総当たりなどの非効率的な手法で正解できる可能性がある問題。

- レベル2:最適なアルゴリズムを選択しないと、制限時間内に解答を終えることが難しい問題。

- レベル3:最適なアルゴリズムを基盤としつつも、問題の特性に合わせてアルゴリズムを修正する必要がある、応用的な問題。

レベル1の問題は、基本的なプログラミングスキルがあれば対応可能ですが、レベル2以上の問題を解くには、アルゴリズムとデータ構造に関する知識が不可欠です。レベル2以上の問題で要求されるアルゴリズムを、ゼロから自力で考案できたとしたら、それは過去の偉人に匹敵する偉業と言えるでしょう。

コーディングテスト対策

効果的な対策方法としては、まず就職活動関連ウェブサイトの口コミなどを参考に、過去の出題傾向を把握することから始めましょう。出題傾向を分析すれば、対策すべき領域と必要なスキルレベルが見えてきます。以下に、私自身が実践した対策方法を紹介します。

数学対策

大学の授業内容をしっかりと理解することを基本としつつ、情報工学に特化した数学書を追加で学ぶことで対策しました。大学の数学の授業は、学科共通の内容も多く、情報工学との直接的な繋がりが必ずしも明確ではない場合があります。

そのため、大学の授業で数学の基礎知識を習得した後、情報工学と数学の繋がりを重視した書籍を学ぶことで、数学知識の実践的な応用を理解度を深めることができます。これにより、学習意欲を維持しやすくなります。

プログラミング対策

プログラミングスキルの面では、個人開発、研究活動、アルバイトなど、様々な実践を通してスキルを習得してきました。効果的だったと感じているのは、「何か具体的な目標を実現するためにプログラミングを学ぶ」という意識を持つことです。

プログラミング言語を学ぶのを先に行い、その後何を作るかを考えるよりも、作りたいものを明確に定めることから始め、そこから逆算する形で必要なスキルを習得していくアプローチの方が、より効率的にスキルを身につけられたと感じています。

ただし、この学習アプローチは個人の特性や好みによって効果が異なると考えられるため、自身の特性に合わせて学習方法を柔軟に変更するのが適切と思われます。

アルゴリズム対策

大学の授業と並行して、競技プログラミングコンテンツを扱うアルゴリズムの入門書を一冊学びました。アルゴリズム学習の際に重視したことは、アルゴリズム知識を単に暗記するのではなく、「どのような問題にどのアルゴリズムを適用するのか」、すなわち問題状況に応じたアルゴリズム選択方法を理解することです。これにより、実践的な問題解決能力を向上させることができます。

おわりに

本記事では、AIエンジニア・DS職向けのコーディングテストの内容と対策についてまとめました。通常のSPI試験と比較して、出題範囲が広く、難易度も高い傾向にありますが、決して乗り越えられない壁ではありません。

大学レベルの数学知識を習得している学生であれば、適切な対策を行うことで、十分に対応可能です。本記事が、AIエンジニア・DS職を目指す皆様の就職活動に少しでもお役に立てれば幸いです。

会員登録すると
このコラムを保存して
いつでも見返せます

トップ企業内定者が利用する外資就活ドットコム