こんにちは。谷口です。
転職活動を始めるときに、面接対策として自分の経歴を振り返ったり転職理由について考えたりして話せるようにしておく人は多いかと思います。
ただ、技術面接についての対策はどうでしょうか。
ITエンジニアの面接では、一般的な面接の質問だけでなく、応募者のスキルを見るための技術面接が実施されることがよくあります。特にここ最近は、プログラミング問題を解いてもらうような形式の技術面接や選考を実施する企業が増えています。いくら面接で話すのがうまい人でも、ITスキルが低い人をエンジニアとして採用するわけにはいきませんから、当然といえば当然ですね。
しかし応募する側にとっては、技術について何を聞かれるのか、どんな問題が出題されるのか、どんな対策をしておけばよいのかを知っておかないと不安だと思います。
そこで今回は、エンジニアの採用選考における技術面接で
- 企業側は応募者のどこを見ているのか
- どんなことが聞かれるのか、どんな問題が出題されるのか
- どんな対策が有効か
についてお話しします。
転職に興味があるエンジニアの方、転職活動中の方の参考になればと思います。
技術面接ってそもそもどんな選考?
特に定義があるわけではありませんが、ITエンジニアの選考過程において、技術についての質問をされたり、プログラミング問題を解いたりするような、技術的な内容を含む選考が広く技術選考、コーディングテストなどと呼ばれています。(新卒の場合は、大学での研究内容の発表やプレゼンによる選考などが技術面接と呼ばれることもよくあります)
前述の通り、エンジニアに求められるのは開発スキルやITに関する知識です。これを見極めるために、採用企業は一般的な面接だけでなく技術面接を導入しています。
技術面接で出題されるプログラミング問題ってどんな問題?
技術面接でプログラミング問題が出題される場合、まず出題形式として
- その場でホワイトボードなどにコードを書く
- ペーパーテスト形式
- Web上で解く形式
などがあります。最近はオンライン面接も増えているため、面接とは別の時間でコーディングテストだけ受けるケースも多くあります。
企業はこうしたコーディングテストを通して、応募者の
- プログラミングやアルゴリズムに関する基礎知識が備わっているか
を見ています。
また、問題を解いたあとに、解き方やコードについての説明を求められる場合もありますが、そこでは
- 論理的に考えて説明できるかどうか
- 普段どんなふうにコードを書いているのか
などが見られています。
Web上で問題を解くだけならまだしも、ホワイトボードにコードを書かされたり、解き方の説明を求められたりするのは、慣れていないと焦ることもあるでしょう。
エンジニアとしての経験が少しでもある人なら、正しく処理が行われるように考えてプログラミングをしたり、チームのメンバーと課題の解決方法を話し合ったり、自分の考えを伝えたりした経験があるはずです。見られているのは、そういったエンジニアとしての基本的な業務ができる人なのかということなので、今までエンジニアとして働いてきた人であれば、落ち着いて取り組めば大丈夫なはずです。
技術面接本番であわてないためには、事前にpaizaのスキルチェック問題などを利用して、プログラミング問題を解く練習をしておくとよいでしょう。
paizaのスキルチェック問題について詳しくはこちら
また、paizaラーニングの「アルゴリズム入門編」では、FizzBuzz、フィボナッチ数やハノイの塔といった、技術面接でよく出るプログラミング問題のアルゴリズムを解説しています。
技術面接でよく出題されるような形式のプログラミング問題をまったく解いたことがない人や、簡単なプログラミング問題すら解ける自信がないという人は、まずはFizzBuzzから始めてみるとよいでしょう。未経験者向けの求人でもない限り、FizzBuzzも書けないレベルだと「最低限のプログラミングスキルすらない人」と思われてしまいかねません。
技術面接で聞かれる質問ってどんな質問?
特にエンジニア経験者向けの採用選考では、コーディングテストだけでなく
- こんなサービスでこんな不具合が起きたら、どこに問題があると考えますか、どこを調べてどんな対応をとりますか
- 前職ではどんな技術的なトラブルにあったことがありますか、そのときどんな対応をしましたか
といった質問が面接の場で直接聞かれることもよくあります(実際にはもっと具体的な条件なども提示されるかと思います)。
このような技術的な質問には、明確な正解があるわけではありません。
冷静に「ふだんの開発業務でそのような不具合が起きたらどうするか」を考えて、どんな順番でどこから原因を調べていくとか、実際にこんなトラブルが起きたときにこんなふうに解決したといった説明をしていきましょう。
面接官はこうした質問を通して、完璧な正解が出せるかではなく
- 開発や調査の基本的な手順やWebサービスの仕組みなどを理解しているか
- 論理的に考えたり話したりできるか
- メンバーと建設的に話し合いができるか
- ふだんの業務でどんなことを考えたり重視したりしているか
を知りたいと思っています。
どんなベテランのエンジニアでも、すべての分野の経験や知識があるわけではありませんから、聞かれた質問のような経験がなくても大丈夫です。落ち着いて自分の知識や経験をもとにした考えを説明しましょう。
すぐに始められる技術面接対策
プログラミング問題の練習をする
日頃からプログラミング問題を解いていると、技術面接でも落ち着いて取り組むことができます。
前述の通りpaizaのスキルチェック問題は、レベル別のプログラミング問題に誰でも・何度でも挑戦できます。また、問題には制限時間もありますので、限られた時間の中でコードを書く練習にもなります。
一日一問の挑戦を続けるだけでもプログラミング問題に慣れることができて、技術面接対策になるため、「現職が忙しくてなかなか面接の準備や対策ができない」という人にもおすすめです。
またプログラミングが動画で学べるpaizaラーニングの「アルゴリズム入門編」「スキルチェック入門編」でも、技術面接でよく出るようなプログラミング問題のアルゴリズムや効率のよい解き方を解説しています。プログラミング問題に興味がある方はぜひごらんください。
まとめ
ITエンジニア経験者の採用選考であれば、技術的な選考が一度も実施されないということはまずあり得ないでしょう。
エンジニアとしての転職を目指す方は、普段から少しずつ意識したり問題に挑戦したりしておくと、自分のスキルをしっかり企業にアピールできるはずです。
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
詳しくはこちら
そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。
詳しくはこちら