僕は大学では情報系を選考しており、就活では何回か自社開発企業等のコーディングテストを受けました。ここでは主に、
- 新卒のコーディングテストの難易度
- 未経験からのコーディングテスト突破は難しいか
- コーディングテスト対策
についてお話していきたいと思っています。とくに未経験からWeb系エンジニアとしての道を進んでいきたい人には参考になるかと思います!
新卒のコーディングテストの難易度

「会社による」というのが当然の結論になってしまうのですが、有名なメガベンチャーになるほど難しくなる傾向があります。中にはライブコーディングをやる会社さんもあるようですが、基本的にはtracks.runというサービスの問題が出題されることが多いです。
このtracks.runの問題は初級、中級、上級に分かれており、メガベンチャー的なところでは中級以上の問題が出題されることがほとんどだと思います。中級〜上級は試験時間が2〜4時間くらいのことが多く、最終的に提出するコードは短くても100行を超える場合が大半です。
もう少し難易度を階層的に分けていきましょう。以下の星1〜5で分けてみます。
コーディングテストの難易度
- 息をするようにコードが書ければ突破できるレベル。未経験から1年以上の勉強が必要。
- 基本的なアルゴリズムについては網羅できているだけではなく、得意な言語ではおおよそどんな処理も書けるレベルが必要。未経験から半年〜1年は必要。
- エラー処理について理解や、動的計画法等の有名なアルゴリズムの処理を書ければ突破できる。コードを書くスピードも少々要求される。未経験から3〜6ヶ月の独学で対処可能。
- for, if, 関数についての理解がしっかりしていれば突破できるレベル。未経験から1〜3ヶ月程度の独学で対処可能。
- FizzBuzz等の基本的なプログラムが書けるか。未経験から1ヶ月の独学で対処できるレベル
僕が受けたWeb系自社開発企業では〜くらいの難易度が多かったです。ここら辺の難易度だと時間内に満点を取るのは難しいです。実際に僕も満点は取れず、7〜8割程度しかできませんでしたが、逆にこれくらい取れていればテストは突破できることが多いと思います。
未経験からのコーディングテスト突破は難しいか
利用者数の多いサービスを抱えている企業については完全未経験では難しいと思います。しかし、全ての企業がテストの点数で足切りをしているわけではないです。点数よりも、コードの書き方や、どういう思考で問題に対処しているのかの方が重視されている感はありました。
そのため、3〜6ヶ月程度特定の言語についての学習をして、1ヶ月程度コーディングテスト対策に費やせば面接までたどり着ける企業の幅がグッと広がると思います。
ここで注意して欲しいのが、「Webアプリを作ったことがあるから大丈夫だろう」と思い込んでしまうことです。Webアプリの制作だと、主にRuby on RailsやPython Djangoのようなフレームワークを用いていることが多いと思います。ただし、フレームワークで必要な知識とコーディングテストで問われる知識・能力には乖離がある場合が殆どです。
フレームワークでは、特に個人開発では、それ独自の書き方にそっていくことが多いですが、コーディングテストでは、forやif、関数の理解ができるのを前提に、それらをどう組み合わせたら問題文の処理が実行できるかを見られています。これを身につけるためには、フレームワークでWebアプリを作る以外に、コーディングテスト独自の対策をするのがお勧めです。
コーディングテスト対策
Web系企業でよく使用されるtracks.runと系統が似ているのがpaizaです。S〜Dまで問題がランク分けされていますが、最低Bランク以上を目指しましょう。Bランクの問題が解けるようになれば、コーディングテストを突破できる企業が一気に増えます。さらに、Aランクの問題が解ければテストをガンガン受けて、面接対策にシフトして問題ないでしょう。
paizaの問題には答えがないので、最初はpaizaラーニングで鍛えるのをお勧めします。特に、tracksもpaizaも、初めの標準入力の処理でつまづく可能性があるので、最低でもそこのセクションは確認することをお勧めします。
paizaの他にはLeetCodeがお勧めです。他の人が問題にどう答えているのかも分かるので、非常に勉強になると思います。
まとめ
いくつかのWeb系企業の説明会に参加したことがありますが、殆ど毎回「文系未経験ですがエンジニア職に応募しても問題ないですか?」的な質問をする方がいました。もちろん応募できますが、文系理系関わらず、未経験だとコーディングテストを突破できない可能性が高いというのがほとんどの企業さんの回答です。
実際にコーディングテストを受けてみて、新卒にも容赦ない難易度の問題も多かった気がします笑。選考全体を通じて、ポテンシャルだけではなく、しっかり技術力をみている企業さんが多いと感じました。
コーディングテストは一つの山場だと思うので、是非勉強頑張ってください!