【まだ間に合え】コーディングテストをどのように対策していったのか
こんにちは、つじもとです。今回は、エンジニアとして就職するにあたり、Webテストの一環として行われるコーディングテストについてお話ししたいと思います。一個人の対策の仕方ではありますが、秋冬インターンを実施する企業もあると思いますので、参考になればと思います。
経験談: 対策せずにコーディングテストでインターン落選
春ごろから外資系・メガベンチャーなど多くの企業で、インターンの詳細開示・選考が始まります。大体の場合、「選考に関係ありません」と書いてありますが、そんなことはないです。むしろ選考にしか関係ありません。特に時給や多額の報酬が出る有給インターンは特に人気です。例えば、2019年に開催されたLINEのインターンの倍率は15倍以上、日本マイクロソフトのインターンは20倍以上となっています。
このように、なんの対策もなしに挑んで勝てるような倍率ではありません。筆者はそんなことも知らず、両方とも落選しました。LINEに至っては、コーディングテストで落ちています。総合職の就職活動において、Webテストで足切りがあるように、技術職採用の場合、コーディングテストによる足切りが行われます。やりたいだけでやれる分野じゃないってことをよくも悪くも突きつけてくれます。しかし、コーディングテストのレベルも企業によりますが、Webテスト同様、対策していれば十分通過できるようになると思います。
出題に使用されるサービス
対策するためには、敵を知る必要があります。Webテストの場合、SPIや玉手箱形式で出題されるなど、こういった出題形式をどこかで聞いたことがあると思います。当然それぞれの形式や企業の方針により、出題される問題や形式に違いがあります。これは、コーディングテストにおいても同様です。僕が出会ったものはこんな感じでした。
- track(トラック) - エンジニアのプログラミング「学習・試験」プラットフォーム
- Tech Recruiting Platform, Remote Online Code Testing | Codility
- HackerRank
- 会社独自のもの
特に、trackはベンチャー系において複数回出くわしました。codilityは英語の社内言語にしている〇〇で使われていました。また、インターン選考で受けた企業の新卒採用を受けた際、同一問題に遭遇するということもありました。このように見てみると、対策のしようがあるように思えますね!
コーディングテスト対策のためにすべきこと
では、対策としてどうするべきか? Webテストは参考書などで解いたりして、傾向を見たり、時間内に解けるように慣れるなどして対策します。これと一緒です。コードを書きましょう。 以下のスライドでもぶっちゃけてますけど、やっぱり書かないと慣れません。そして、数をこなしていくことで、決められた時間でも焦らず解けるようになってきます。
www.slideshare.net
コーディング練習に使えるサイト・サービス
Webテストの対策と違う点として、対策するのにお金をかけなくてもできるという点は挙げられると思います。そこで、対策が行えるサイト・サービスをいくつか挙げておきます。
- AtCoder:競技プログラミングコンテストを開催する国内最大のサイト
- ITエンジニア・プログラマ向けの転職・就活・学習サービス【paiza(パイザ)】
- Tech Recruiting Platform, Remote Online Code Testing | Codility
僕は2番目のpaizaを愛用していました。その理由はまたどこかでお話しするかもしれませんが、ここでは伏せておきます。このように、対策できるサイトはいくらでもあります。さらに、以下のように過去問を解説している企業もあります。こういったものを活用して、対策を進めていってほしいです。
ちょっとしたアドバイス
コーディングテストを受けるときのアドバイスになりますが、自分の書いたコードは残しておくようにしましょう。書き上げられなかったのなら、それをコーディングテスト終了後に、見直すことも今後に生かせると思います。テストや資格の勉強に近いものを感じますね。コーディングテストのコードは競技プログラミングのように、基本書き捨てのコードではあります。しかし、できなかったものを放置しても、また出会ったときに確認しとけばよかったと後悔することもありますからね。
筆者は対策してどうなったのか
僕の場合、夏はコーディングテストでの通過率がよくなく、夏休み中にコーディングテスト対策を行い、冬インターンや新卒採用でのコーディングテストで落選することはなくなりました (技術面接・人事面接・最終面接で落ちてインターンに参加できずでしたが...)。その上、アルゴリズムについての知見を深めることができ、それを他の場面で生かすことができました。
インターンに落ちても
インターンは当然選考には関わってきます。では、インターンに落ちたらもうその企業に就職できないのかというと、そんなことはありません。インターンに落ちた企業の新卒採用で面接まで進んだこともありますし、現に僕はインターンで落選した企業から内定をいただきました。その逆も然りで、インターンに参加できたとしても、その後の選考で落選することもあります。インターンの目的は、「優秀な学生の早期囲い込み、企業との適性判断・ミスマッチ防止」にあります。インターンのみで全ての採用枠を埋める企業も中にはあるかもしれませんが、そう多くありません。
また、新卒採用の場合、インターン選考に比べて、倍率などの都合上コーディングテストの基準が下がる可能性もあります。新卒での技術職採用において、技術力だけでなく、それ以外の面も含めて評価された上で採用されます。コーディングテストだけでなく、それ以外の経験も積むようにしましょう。この辺りの話もまたどこかで記事にしようと思います。
まとめ
大したことじゃないですが、ここまでのまとめです。
- コーディングテスト対策はコードを書くこと
- コーディングテストの練習ができるサイト・サービスは複数ある
- 過去のコードは残しておくといい(かも)
- インターンに落ちた企業から採用されることはある
新卒技術職採用を目指すときは、コーディングテストを甘く見ないようにしましょう。就職活動は準備で決まります。新卒カードを有意義に使えるよう、頑張りましょう!