MicroAd Developers Blog

マイクロアドのエンジニアブログです。インフラ、開発、分析について発信していきます。

マイクロアド選考 - コーディング試験について

マイクロアドの一部ポジションの選考過程ではコーディング試験を導入しています。
今回は、2023年1月時点でのその内容や注意点について述べます(採点時の基準等は予告なく更新されていく可能性があります)。

コーディング試験環境画面

コーディング試験の環境

コーディング試験環境ではWeb上で動くVisual Studio Code環境を利用してコーディングを行ってもらいます。
Visual Studio Codeのターミナル画面から試験の検証プログラムを実行することで現状の採点ができます。
最終的にクリアできる検証項目が多くなるようにコーディングをしてもらいます。

コーディング試験の狙い

やはり、開発する職種はコーディング能力が必要です。この能力はいくらあっても困らないです。
ただ、会社でエンジニアとして活躍するにはコーディング能力の他にも様々な要素が関わってきます。例を挙げれば技術の詳細を掘り下げる力や、問題分析する力などです。
これらをコーディング試験だけで検証することは難しいと考えています。そのため、採用の流れの1つのコーディング試験では会社に必要な最低限のコーディング能力を図ることを想定しており、難易度が非常に高い問題を出題する予定はありません。

具体的な注意ポイント

要求されるアルゴリズムの知識

基本的にソート、木、スタック、キューなど基礎的なデータ構造とアルゴリズムに登場する程度の知識しか求めていません。
問題によっては複雑なアルゴリズムが登場します。ただ、上記の知識で解けるように問題文にアルゴリズムの詳細が書いてあります。

提出コードは綺麗にする必要があるか?

コーディング試験では時間制限があり、コードの綺麗さや設計の優秀さを追求するには短いので基本的に要否の判断には考慮していません。
技巧的なコードで提出してもらうと採点中に驚いたりすることはありますが、基本的には動くコードを書いてもらえば問題ないです。

動かないコード

何かしらのエラーで動かないコードもある程度は動くように採点者が手直ししてから採点をしています。
受験者によっては手元の環境でコーディングした物を試験環境に持ってきて検証する人もいると思いますが、上記の理由で未完成だったとしても試験環境に保存してもらったほうが良いです。

問題プログラムの入出力

試験問題はコマンドラインのプログラムで提出してもらうことが多いです。
自動検証プログラムはコマンドラインの入出力機能を使用して問題の投入と確認をしますが、コマンドラインの入出力には下記のような種類があります。

  • コマンドライン入力(Pythonではsys.args. C言語ではmain関数の引数)
  • 標準入力(Pythonではinput. C言語ではscanf)
  • 標準出力(Pythonではprint. C言語ではprinf)

コーディング試験の期限

コーディング試験の期限を過ぎてしまった場合でも連絡してもらえば、再度受ける事が可能です。
再度受けたことが試験の要否に関わることはありません。

最後に

マイクロアドではデータを活用する事業のためのメンバーを探しています。
コーディング試験への挑戦をお待ちしています。
https://recruit.microad.co.jp/