この記事では、エンジニアの採用面接で行われるコーディング面接について、
面接で出される課題の内容や評価のポイント、コーディング面接の対策方法について解説します。
私自身も転職活動を行った際にコーディング面接を行った経験があります。
コーディング面接で出される課題や評価のポイントをしっかりおさえて、対策を行い、
コーディング面接を突破しましょう!
コーディング面接での評価のポイント
企業がなぜコーディング面接を実施するのかを考えたことはありますか?
最近の未経験者のエンジニア転職では、ポートフォリオを作成する応募者も多いので、
ポートフォリオで応募者の技術レベルを評価すれば良いと思う方も多いかもしれません。
しかし、応募者からのポートフォリオ評価だけでなく、企業がコーディング面接を採用フローに入れる理由として、
応募者の以下の部分を見たいと考えていることが多いです。
- 基本的なプログラミングスキルがあるか
- どの様な考え方・方針でプログラム開発を行うか
- 困難な課題や未知の問題に直面した時の対処方法
上から順番に優先度が高い項目になります。
順番に解説してくと、
1.の「基本的なプログラミングスキルがあるか」については、コーディング面接の主旨と言ってもいいです。
・プログラミング言語の基本的な文法やデータ型を理解しているか
・ループや条件分岐などの制御構文が使えるか
・クラスや関数などを理解し、使うことができるか
などの基本的な知識を見られます。
2.の「どの様な考え方・方針でプログラム開発を行うか」については、
主題されるプログラミングの課題は、1.の基本的なプログラミングスキルがあれば課題としては解ける物がほとんどです。
その上で、
・プログラムの実行速度を意識したコードが書けるか
・変数名やコメントなど、可読性の高いメンテナンスしやすいコードを書けるか
といったことが評価されます。
3.の「困難な課題や未知の問題に直面した時の対処方法」については、
少し難しめの課題を出し、その課題についての応募者の取り組み方を見ています。
・分からないことを調べる時の調べ方(qiitaなどの2次情報ではなく公式ドキュメントなどの一次情報を参照できるか)
・複雑な問題を簡単な問題の組み合わせとして考えることができるか
これらの点が評価されるので頭に入れておきましょう。
出題される課題
ここでは、実際のコーディング面接で私が出題された問題をいくつか紹介します。
問題1 FizzBuzz問題
1〜25までの数字を順番に表示する。
数字が3の倍数の時は「Fizz」、数字が5の倍数の時は「Buzz」を、
数字が3の倍数かつ5の倍数の時は「FizzBuzz」を表示する
出力例(15まで)
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz
(発展問題)
上記のFizzBuzz問題をプログラムの実行速度を意識して書き直して見てください。
問題2 正規表現
以下のテキストのhtmlタグを全て削除してください。
<html>
<body>
<h1>コーディング面接</h1>
<p>htmlタグを削除してください。</p>
</body>
</html>
出力例
コーディング面接 htmlタグを削除してください。
問題3 関数
以下の関数絵を実装してください。
def check_sum(value, list)
仕様:list内から選んだ2つの変数の合計値がvalueと一致する場合、Trueを返す。一致しない場合は、Falseを返す。
出力例
check_sum(7, [1, 2, 3, 4]) -> True (7は3+4に一致するのでTrue)
check_sum(2, [1, 2, 3, 4]) -> False (list内に合計が2になる組み合わせは無いのでFalse)
コーディング面接の対策・準備
試験対策としては、以下の様なプログラミング問題が解けるサイトで練習するのがおすすめです。
- paiza
とりあえずはランクD、Cの問題が解ければ面接対策としてはOK(余裕があればその上のランクに取り組むのもOK)
また、面接前の準備として、以下の準備をしておくことをおすすめします。
- コーディング面接で使用するプログラミング言語の開発環境の準備
リモートでの面接の場合、企業が準備した環境やWEBサイト上などでテストを行う場合もありますが、
応募者のPC上の環境を使用する場合もあります。
使用するプログラミング言語の環境は事前に設定しておきましょう。
(例えばPythonであればJupyter Notebookの実行環境を準備しておくなど)
- 公式ドキュメントの確認
コーディング面接中に分からないこと(文法やライブラリの使い方など)があった場合、面接によってはインターネットなどで調べることが可能な場合があります。
その際にスムーズに公式ドキュメントにアクセスできる様に公式ドキュメントに目を通したり、ブックマークに登録しておくなどを事前に行っておきましょう。
例えば、Pythonであれば以下の公式ドキュメントは目を通して必要な情報にアクセスできる様にしておきましょう。
・Python 公式ドキュメント
・Numpy
・pandas
・scikit-learn
まとめ
この記事では、エンジニア転職でのコーディング面接の内容や評価のポイント、対策方法について解説しました。
この記事で解説した内容を踏まえて、普段のプログラミング学習も進めていただければ、コーディング面接も突破しやすくなるはずです。