こんにちは。谷口です。
転職活動を始めるにあたって、自分のこれまでの経験やスキルを振り返ったり、これからやりたい仕事やキャリアについて考えたりするエンジニアの方は多いかと思います。
これらを考えておくことは、どんな職種でも必要ですが、エンジニアの場合、特に転職経験が少ない方の場合は、コーディングテストの対策についても考えておいたほうがよいでしょう。
というのも、ITエンジニアの採用選考では一般的な面接だけではなく、オンラインで問題を解いたりその場でコードを書いたりするコーディングテストもよく実施されてるからです。
選考の場で「プログラミング問題を解くテストが出るなんて思わなかった!」となってしまうのは避けたいですよね。
そこで今回は、ITエンジニアの採用選考において
- コーディングテストとはどんなものなのか
- どんな対策をしておけば通過できるのか
をお話しします。
転職を考えているエンジニアの方、未経験からエンジニアを目指している方、まさに転職活動中でコーディングテストを控えている方などの参考になればと思います。
エンジニア面接におけるコーディングテストってどんなもの?
一般にエンジニア職の採用選考で、コードを書いて解くプログラミング問題が出題されるような試験がコーディングテスト、コーディング試験、技術面接などと呼ばれています。
特に中途でエンジニア求人に応募する場合、開発スキルや技術に関する知識が求められます。優秀なエンジニアを採用したい企業が、一般的な面接だけをして、スキルはまったく見ない…ということはあり得ません。
特に若手エンジニアの募集求人、現場でコードをしっかり書くポジションの求人に応募するのであれば、コーディングテストの対策はほぼ必須と言ってよいでしょう。
コーディングテストの形式や出題内容とは
コーディングテストの実施形式は
- その場でホワイトボードなどにコードを書く
- ペーパーテスト形式
- Web上で解く形式
などがあります。
最近は採用選考もリモートで実施されることが増えたため、Web上で解いたり、zoomなどを使ったオンライン面接で考え方を説明したり…といったケースが多いでしょう。
企業はコーディングテストを通して、応募者の「プログラミングやアルゴリズムに関する基礎知識」を見極めようとしています。また、少し複雑な問題になってくると「論理的に考える力」「プログラミングをするときの考え方」「コードの書き方」なども見られます。
いきなり初見の問題を解かされるような試験の場合、やり慣れていないと予想外に苦戦するかもしれません。ただ、そういった形式の選考で企業が気にしているのは、細かいコードの正しさというよりも考え方や解き方なので、落ち着いて取り組みましょう。また、あとで「どうやって考えて解いたのか」の説明を求められることも多くあります。問題にもよりますが、たとえば「なぜこのアルゴリズムがよいと思ったのか」などを意識しながら解いておくと、説明しやすくなります。
コーディングテストであわてないためには、事前にpaizaのスキルチェック問題などを利用して、プログラミング問題に慣れておくとよいでしょう。
paizaのスキルチェック問題について詳しくはこちら
面接で技術的な考えや知識を聞かれるケースも
特にエンジニア経験者の面接では、コーディングテストだけでなく
- こんな不具合が起きたら、どこに問題があると考えますか、どこを調べてどんな対応をとりますか
- こんな機能を作ってくれと言われたら、どんな作業から始めますか
- 前職ではどんなトラブルにあったことがありますか、そのときどんな対応をしましたか
といった技術的な質問をされることもよくあります。
実際に手元にシステムがあるわけではありませんから、回答については明確な正解があるわけではありません。ただ、だからといって適当にそれっぽいことを答えておけばよいわけではありません。
企業側は「応募者がふだんどんなふうに仕事をしているのか」「どんな考えで業務に取り組んでいるのか」「どんな業務経験があるのか」といったことを知りたくてこのような質問をしています。冷静に「ふだんの開発業務だったらどうするか」を考えて、「自分ならまずここを調べる」「実際にこんなトラブルが起きたときに、こんなふうに解決した」といったことを思い出して説明しましょう。会話の中で、さらに詳しい状況や判断材料について質問してもかまいません。
どんなベテランのエンジニアでも、すべての分野における経験や知識があるわけではありません。落ち着いて自分の考えや経験、知識をもとに整理して、説明できれば大丈夫です。
すぐに始められるコーディングテスト対策とは
プログラミング問題を解いてみる
ふだんからプログラミング問題に慣れておけば、コーディングテストでもあわてずに済みます。
前述の通り、paizaのスキルチェック問題は、S・A・B・C・Dの難易度で分かれたプログラミング問題に何度でも挑戦できます。問題には制限時間もありますので、限られた時間の中でコードを書く練習にもなります。
なおプログラミング言語はJava、PHP、Ruby、Python、Perl、C、C++、C#、JavaScript、Objective-C、Scala、Go、Swift、Kotlinに対応していますので、使い慣れた言語で解くことも、勉強中の言語や応募先で使っている言語で挑戦することもできます。
また、プログラミングが動画で学べるpaizaラーニングの「アルゴリズム入門編」「スキルチェック入門編」でも、技術面接でよく出るようなプログラミング問題のアルゴリズムや効率のよい解き方を解説しています。プログラミング問題に興味がある方はぜひごらんください。
まとめ
いきなり「この問題を解いてください」と言われたらあせりますが、事前に「こういう問題がよく出るんだな」と知っておけば安心です。
エンジニアとしての転職を目指す方は、自分のスキルをアピールするためにも、事前にコーディングテストに触れて、慣れておくとよいでしょう。
paizaのスキルチェック問題について詳しくはこちら
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
詳しくはこちら
そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。
詳しくはこちら