はじめに
本記事ではソフトウェアエンジニアの採用試験におけるコーディング試験についてお話ししていこうと思います。これまで4回の転職をし実際にコーディング試験を何度も受けてきました。本記事ではその経験を踏まえコーディング試験の準備についてお話ししていきます。
コーディング試験の準備
コーディング試験は企業の採用面接でよく実施されています。
おそらく採用面接のはじめの方でよく実施されているようです、書類選考のあとくらいでしょうか。企業によってはホワイトボードで実際に書きながらコーディング試験をする企業もあるようですが、それについては僕はまだ経験したことはありません。ホワイトボードで実施するようなコーディング試験の場合は少し違うかもしれませんが、試されるスキルについては大きくは違いはないでしょう。
さて、それでは実際のコーディング試験の準備についてです。僕が考える準備については以下の通りです。
目指すところ
- いずれかのプログラミング言語でコーディング試験でよく使うようなAPIは調べないですぐ出てくるようなレベルまで慣れておく
- 現在の自身のスキル、知識、経験から考えて妥当なところまではアルゴリズムを学習し直し、扱えるようにする
- 時間があれば、より高度なアルゴリズムを学習し、扱えるようにする
具体的な準備方法
- いずれかのプログラミング言語に対する理解を深めるため本を読む
- コーディング試験の時に利用するIDEが必要であればそのIDEに慣れておく
- AtCoderなどプログラミングコンテストのサービスを利用し繰り返し問題を解く(簡単な問題からでOK)
思ったより普通だな、と思ったのではないでしょうか。対策としてすべきことはこれくらいで大事なのは繰り返し何度も問題を解いたりアルゴリズムへの理解を深めたりすることだと思います。ただ、上述したように正直この準備には際限がありませんので今の自身のスキルや知識などを鑑みて判断するのがいいでしょう。もちろん、企業側がかなり高いコーディングスキルを要求している、というケースもあるでしょう。コーディング試験の内容によりますが、全ての問題を必ず解けないと試験通過できない、ということではありません。逆に、そうすると企業側もどの程度のスキルがあるか判断しにくいですからね、企業側もスキルを見るためにコーディング試験を実施していると把握しておくといいでしょう。
また、よくある疑問として、コーディング試験で利用するプログラミング言語はどれにすべきか、というのがあります。これもなかなか難しい話ではありますが、僕個人はどのコーディング試験でも必ずあるJavaを利用して準備をしています。利用できるプログラミング言語はコーディング試験前に企業の方に聴けますので事前に利用できるプログラミング言語が何か必ず確認しましょう。得意な言語がなかった、というのが当日わかるとかなり不利ですからね。
ここで、企業により様々ではありますが以下にコーディング試験を実施している企業が公開している情報をまとめます。
こちらはLINEの選考についての資料です。なかなか難しいことを言っているように見えますが14スライド目を見るととても親切に具体的なアクションを記載してくれています。
- 応用情報技術者試験のテクノロジ系
- プログラミングコンテストの過去問
- 完結したソフトウェアを作る
非常にわかりやすいですね。そして納得の項目だと思います。とはいえハードルはなかなか高いのはわかりますが、それくらいのレベルの人材を求めている、ということがはっきりわかります。
Interview tips from Google Software Engineers
2つ目の資料はGoogleがソフトウェアエンジニアの面接についてのtipsを教えてくれている動画です。こちらもなかなか厳しいハードルだとは思いますがこういった情報を知るだけでもどう準備していくのがいいか、そしてどれくらい今足りないのか、という作戦が立てられますよね。それをするかしないかは大きな差ですのでしっかり調べてからのぞむことをお勧めします。ちなみにGoogleの試験といえば以下記事がとても話題になりました、ご存知でしょうか。
医師を退職し、ソフトウェアエンジニアに転職します。
— Lillian (@Lily0727K) 2019年8月1日
自分にとって大きな転機であったのと、とても大変な道のりであったので、私という人間が辿った道筋を最初から最後までちゃんとまとめておきたいと思い、転職エントリを書きました。
【転職エントリ】Googleに入社しますhttps://t.co/fwg8RTTgdO
ぜひリンク先の記事まで読んで頂ければと思います。
頭が良い人は違うな、という感想を持った方もいるかと思いますがそこはポイントではないと僕は思います。かなりの量の準備をしている、という点が注目するポイントかと思います。Googleに入ろうと思ったらこれくらいの知識やスキルがいるんだ、ということが非常にわかりやすいですね。この記事はGoogleに入るために必要なレベル、求められるレベルを明確にししてくれました、そのためGoogleに入りたい人はそこに向けて着実に準備をしていくことが試験を突破する方法だと教えてくれたと思っています。準備ができる、ということはどの企業を受けるにしても一歩目として非常に大切なことです。
最近はyoutubeでもエンジニア向けのコーディング試験についての情報は非常に多く投稿されています。英語での投稿が多いですが面白い投稿が多いですので興味がある方はぜひ一度見てみるといいかと思います。
さて、話を少し戻します。目指すレベルによりますが難しい問題まで回答したい、という方は以下のような書籍もお勧めです。
![]() |
プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ 新品価格 |
![]() |
プログラミングコンテスト攻略のためのアルゴリズムとデータ構造 新品価格 |
こちらは競技プログラミングをする方の間ではよく知られている書籍です。2つとも難易度は高い書籍ですので全てを読む必要は全くありません。参考までに読み進めるのもいいかと思います。書籍が苦手な方は動画で学ぶのもいいでしょう。Udemyではアルゴリズムの講座もあるのでそちらもお勧めです。例えば以下のような講座があります。
Udemyでは他にも様々な言語でアルゴリズムの学習ができるコンテンツがあります。英語のコンテンツまで範囲を広げると非常に多様な講座があり僕自身もよく利用をしています。セールのタイミングが不定期にあるのですがそのタイミングを逃さず購入していくことがお勧めですね。
コーディング試験当日
さて、当日ですがやはりこれは緊張すると思います。はじめての時はなおさらそうだと思います。当日注意することとしては以下があるでしょう。(オンラインのコーディング試験のことを想定して記載しています)
- 利用するプログラミング言語を扱える環境も手元で用意しておく
- コーディング試験のサイトの仕様を焦らず把握し、慣れるようにする
- 問題の内容と、その難易度をしっかり判断する
プログラミングコンテストで訓練をしておくと、自分にあったスタイルがあるでしょう。まずはそれにあった準備をするのがいいかと思います。1つ目の注意することはそれについてです、いつものように準備するだけで大丈夫です。
2点目についてはプログラミングコンテストに慣れている人ほど、いつもと勝手が違い戸惑って焦ることがあるので注意です。実際に僕もいつもと違い、コーディング試験のサイトの仕様がわからず焦ったことがあります。
3点目は記載の通りです。前章でも述べましたが、全ての問題を解けなくてもいい場合もありますのでメリハリをつけて問題を解いて行けるといいでしょう。場合によっては目安の時間が書いてあることがありますのでそちらの時間を目安に問題を解くことをお勧めします。この辺りはプログラミングコンテストに慣れていると問題はないでしょう。
おわりに
いかがでしたでしょうか。ソフトウェアエンジニアが転職をすることは一般的になってきていますが、転職をしたことがなく、コーディング試験に戸惑う方もいるかと思います。ただ、しっかりと準備をすれば恐れることはなく、むしろ面接などより準備と対策が最もしやすいのがコーディング試験だと僕は思っています。しっかりと時間をかけ準備を行い、自身のスキルの底上げをすることでコーディング試験は突破できるでしょう。