はじめに
就活をしている皆さん、コーディングテスト対策してますか?
私は、24卒で複数社のコーディングテストを受けました。
そこからわかったことを皆さんにお伝えできたらと思い、記事を書くに至りました。
コーディングテストについて
コーディングテストとは、プログラミング力や知識を問われるテストです。実際にコーディングをすることになります。オンラインでの実施が多いです。
合格するにはアルゴリズムができればいい?
ネット上でコーディングテスト対策について調べると、
「〇〇株式会社は、AtCoderの緑レベルが解ければ突破できる!」
「●●株式会社はAtCoder ABCのCレベルが解ければ突破できる!」
と、アルゴリズム問題についてしか触れられていないことが多いです。
ですが、実際は…
アルゴリズム問題の対策だけでは、突破できないことがある!
アルゴリズムの問題以外にも、SQLなどの特定の言語が書けるか、データフォーマットの利用ができるか、などが問われることがあるからです。
※もちろんアルゴリズム問題も出題されます。
じゃあ、どんな対策をすれば良いの?
アルゴリズム以外の問題が出ることがある、ということはわかったと思います。しかし、それでは開発における全ての知識を網羅しないといけなくなりますね。流石にそんな時間はないと思うので、何が出るか予測してから対策に臨みましょう。
出題の予測方法
募集要項にはどんな仕事をするか記述されています。
コーディングテストでは、その仕事に使う知識を問われることが多いと感じました。
例
- バックエンドエンジニア の場合
- アルゴリズム
- SQL
- 実装問題(簡単な仕様書からアプリを作成する感じ)
- Webアプリケーションエンジニア の場合
- アルゴリズム
- JavaScript
- JSON(入出力)
- SQL
- WebAPI
バックエンドでは、仕様書をコードに起こすような実装問題。WebアプリケーションではJavaScriptなどのスクリプト言語が問われることがありました。
このように、それぞれの職種でよく扱われる知識が出題されると考えられます。
Tips
私の経験則からの出題確率を記します。
- 大企業
- アルゴリズム:100%
- SQL:30%
- その他:20%
- 中小企業
- アルゴリズム:100%
- SQL:60%
- その他:50%
このように、大企業はアルゴリズムのみの企業が多かったです。
一方で、中小企業ではSQLやその他の知識が問われることが多いと感じました。
対策方法について
アルゴリズム
職種ごとに系統の違う問題が出るとはいえ、もちろんアルゴリズム問題も出題されます。
コーディングテストでは典型問題が出ることが多いので、私はAtCoder-競プロ典型90問でアルゴリズムの勉強をしました。
また、コーディングテストが英語で行われる企業の場合はLeetCodeも利用すると良いでしょう。LeetCodeでは問題の評価を見ることができるので、比較的評価の高い問題を解くようにすると良いでしょう。
SQL
SQLについては、実際に利用するのが早いと思います。
テーブル定義(CREATE TABLE)、挿入(INSERT)、更新(UPDATE)、削除(DELETE)および検索(SELECT)を扱えるようにしておくと良いです。特にSELECT文は、複数テーブルからのJOINや、グループ分け(GROUP BY)、副問い合わせを理解しておく必要があると感じました。
その他の知識
その業種の開発ではどのような技術が使われているのかを調べ、その技術を利用した成果物を作成するのが良いと思います。
成果物(サイトやアプリ)を作成することで、実装力、技術の知識が養われます。しかも作成した成果物は企業に提出するアピール材料にもなるのでおすすめです。
おわりに
コーディングテストは一夕一朝でできることではありません。早めの対策を心がけましょう。みなさんがコーディングテストに合格し、無事に合格できることを願います。
参考
コーディングテストに打ち勝つ-Qiita
https://qiita.com/yohachi/items/e4bef4035da135a4808d
コーディングテストとは?よく出る問題やすぐできる対策について解説
https://paiza.hatenablog.com/entry/2022/11/18/130000