面接の時間で実際に動くコードを書くのは明らかに難しいような大きめの課題を設定し、それを「実現するためのアプローチ」や「設計」を聞くタイプの問題です。
大きめの問題例1:RESTfulなWeb APIの仕様書を見ながら、クライアントとなるアプリケーションを実装する
ユースケース図やシーケンス図、疑似コードなど「実際には動かないもの」を書きながら、設計や実装について面接官とディスカッションしていくことになるでしょう。
大きめの問題例2:四則演算の数式を計算するロジックを書く
手慣れた人なら5〜10分で実装できるかもしれませんが、数式のトークナイズや木構造の構築などをその場で書くほどたっぷり面接時間を確保するのは難しいので、やはり疑似コードをベースに面接官とディスカッションすることになりそうです。
「大きめの問題」の選考ポイント
「筋のよい設計ができるか」「問題に対する解決のアプローチがスムーズか」など、過去の経験を能力として活用できるかが問われます。ディスカッションで面接官からいろいろツッコミが入ることも多いのですが、それらに対応する「引き出しの多さ」もポイントです。
コードを書く以外のお題もあります。特にインフラエンジニアやDBA、最近だとデータサイエンティストなどの職種では、プログラムそのものを書くよりも、こうした「コードではないもの」を書くケースが多いでしょう。
コード以外の問題例1:HTTPのステータスコード
「HTTPレスポンスのステータスコードを大まかに5種類に分類し、それぞれについて簡単に説明してください」などのお題です。
コード以外の問題例2:データベースの設計
「架空のシステムについて、データベーススキーマを設計してください」などのお題です。
「コード以外の問題」の選考ポイント
この種のお題では「専門知識のレベル」を確認します。「基本的なことがきちんと身に付いているか」+「過去の経験を蓄積できているか」の両面が問われるので、場合によっては一番難易度が高くなるかもしれません。
Copyright © ITmedia, Inc. All Rights Reserved.