ソフトウェアエンジニアの採用試験におけるコーディング試験の準備

ソフトウェアエンジニアの採用試験におけるコーディング試験の準備

はじめに

本記事ではソフトウェアエンジニアの採用試験によくあるコーディング試験の準備についてお話しします。僕がこれまで受けたことのあるコーディング試験はベンチャー企業1社、大手企業2社(全て日系企業)の合計3回です。いずれもコーディング試験は通過していますが、準備は結構してきました。そこで本記事ではコーディング試験の準備と当日のことについてまとめていきます。

コーディング試験の準備

コーディング試験は企業の採用面接でよく実施されています。おそらく採用面接のはじめの方でよく実施されているようです、書類選考のあとくらいでしょうか。企業によってはホワイトボードで実際に書きながらコーディング試験をする企業もあるようですが、それについては僕はまだ経験したことはありません。ホワイトボードで実施するようなコーディング試験の場合は少し違うかもしれませんが、試されるスキルについては大きくは違いはないでしょう。

さて、それでは実際のコーディング試験の準備についてです。僕が考える準備については以下の通りです。

 

  • 目指すところ
    • いずれかのプログラミング言語でコーディング試験でよく使うようなAPIは調べないですぐ出てくるようなレベルまで慣れておく
    • 現在の自身のスキル、知識、経験から考えて妥当なところまではアルゴリズムを学習し直し、扱えるようにする
    • 時間があれば、より高度なアルゴリズムを学習し、扱えるようにする
  • 具体的な準備方法
    • いずれかのプログラミング言語に対する理解を深めるため本を読む
    • コーディング試験の時に利用するIDEが必要であればそのIDEに慣れておく
    • AtCoderなどプログラミングコンテストのサービスを利用し繰り返し問題を解く(簡単な問題からでOK)

 

思ったより普通だな、と思ったのではないでしょうか。対策としてすべきことはこれくらいで大事なのは繰り返し何度も問題を解いたりアルゴリズムへの理解を深めたりすることだと思います。ただ、上述したように正直この準備には際限がありませんので今の自身のスキルや知識などを鑑みて判断するのがいいでしょう。もちろん、企業側がかなり高いコーディングスキルを要求している、というケースもあるでしょうが、ほとんど多くの企業では足切りをするためにコーディング試験を用意しているはずです。スキルの高い人を判断する場合にコーディング試験の最後の問題だけは非常に難解な問題を用意しているケースが多い印象です。コーディング試験の内容によりますが、全ての問題を必ず解けないと試験通過できない、ということではありません。逆に、そうすると企業側もどの程度のスキルがあるか判断しにくいですからね、企業側もスキルを見るためにコーディング試験を実施していると把握しておくといいでしょう。

また、よくある疑問として、コーディング試験で利用するプログラミング言語はどれにすべきか、というのがあります。これもなかなか難しい話ではありますが、僕個人はどのコーディング試験でも必ずあるJavaを利用して準備をしています利用できるプログラミング言語はコーディング試験前に企業の方に聴けますので事前に利用できるプログラミング言語が何か必ず確認しましょう。得意な言語がなかった、というのが当日わかるとかなり不利ですからね。

 

ここで、企業により様々ではありますが以下にコーディング試験を実施している企業が公開している情報をまとめます。

 

ググってOK!? LINEエンジニアの選考基準を全公開 〜 開発職編 〜 from LINE Corporation

 

一つ目はLINEの選考についての資料です。なかなか難しいことを言っているように見えますが14スライド目を見るととても親切に具体的なアクションを記載してくれています。

  • 応用情報技術者試験のテクノロジ系
  • プログラミングコンテストの過去問
  • 完結したソフトウェアを作る

非常にわかりやすいですね。そして納得の項目だと思います。とはいえハードルはなかなか高いのはわかりますが、それくらいのレベルの人材を求めている、ということがはっきりわかります

また、2つ目の資料はGoogleがソフトウェアエンジニアの面接についてのtipsを教えてくれている動画です。こちらもなかなか厳しいハードルだとは思いますがこういった情報を知るだけでもどう準備していくのがいいか、そしてどれくらい今足りないのか、という作戦が立てられますよね。それをするかしないかは大きな差ですのでしっかり調べてからのぞむことをお勧めします。ちなみにGoogleの試験といえば以下記事がとても話題になりました、ご存知でしょうか。

ぜひリンク先の記事まで読んで頂ければと思います。頭が良い人は違うな、という感想を持った方もいるかと思いますがそこはポイントではないと僕は思います。かなりの量の準備をしている、という点が注目するポイントかと思います。Googleに入ろうと思ったらこれくらいの知識やスキルがいるんだ、ということが非常にわかりやすいですね。この記事はGoogleに入るために必要なレベル、求められるレベルを明確にししてくれました、そのためGoogleに入りたい人はそこに向けて着実に準備をしていくことが試験を突破する方法だと教えてくれたと思っています。準備ができる、ということはどの企業を受けるにしても一歩目として非常に大切なことです。

 

さて、話を少し戻します。目指すレベルによりますが難しい問題まで回答したい、という方は以下のような書籍を読み準備をするといいでしょう。

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~

新品価格
¥3,608から
(2019/10/25 20:58時点)

プログラミングコンテスト攻略のためのアルゴリズムとデータ構造

これらは競技プログラミングをする方にとってはよく知られた書籍です。蟻本、螺旋本とそれぞれよばれています。注意点として、内容は非常に難しいので全部理解しよう、などといきなり取り組むことはしないことかなと思います。コーディング試験当日までの時間は限られていると思いますので、時間が許す限り、まずは自身のスキルの底上げを行い、さらにスキルを伸ばそうという場合は上記のような書籍も使いつつ、力をつけていくのがお勧めです。

また、書籍が苦手な方はUdemyでアルゴリズムについて学ぶのもありだと思います。例えばPythonであれば以下のようなコースがあります。動画でいつでもどこでも学べるのもいいですね。



コーディング試験当日

さて、当日ですがやはりこれは緊張すると思います。はじめての時はなおさらそうだと思います。

当日注意することとしては以下があるでしょう。(オンラインのコーディング試験のことを想定して記載しています)

 

  • 利用するプログラミング言語を扱える環境も手元で用意しておく
  • コーディング試験のサイトの仕様を焦らず把握し、慣れるようにする
  • 問題の内容と、その難易度をしっかり判断する

 

プログラミングコンテストで訓練をしておくと、自分にあったスタイルがあるでしょう。まずはそれにあった準備をするのがいいかと思います。1つ目の注意することはそれについてです、いつものように準備するだけで大丈夫です。

2点目についてはプログラミングコンテストに慣れている人ほど、いつもと勝手が違い戸惑って焦ることがあるので注意です。実際に僕もいつもと違い、コーディング試験のサイトの仕様がわからず焦ったことがあります。

3点目は記載の通りです。前章でも述べましたが、全ての問題を解けなくてもいい場合もありますのでメリハリをつけて問題を解いて行けるといいでしょう。場合によっては目安の時間が書いてあることがありますのでそちらの時間を目安に問題を解くことをお勧めします。この辺りはプログラミングコンテストに慣れていると問題はないでしょう。

おわりに

いかがでしたでしょうか。ソフトウェアエンジニアが転職をすることは一般的になってきていますが、転職をしたことがなく、コーディング試験に戸惑う方もいるかと思います。ただ、しっかりと準備をすれば恐れることはなく、むしろ面接などより準備と対策が最もしやすいのがコーディング試験だと僕は思っています。しっかりと時間をかけ準備を行い、自身のスキルの底上げをすることでコーディング試験は突破できるでしょう。