最近転職活動をしていました。主に自社サービスの会社を中心に受けていましたが、最近の選考ではコーディングテストがほとんどの企業であり、複数社並列で受けていると結構課題の期限が厳しかったりで一時期大変でした。
コーディングテストのタイプは3種類ありました。
コーディングテスト用のWebサービスを利用したテスト
だいたいが書類選考と1次面接の間で実施を求められます。このテストではアルゴリズム系の問題が出ることがほとんどです。
稀に以下のような実践的なテストもありました。
- 実際に公開されているWeb APIをコールして処理する
- システムアーキテクチャの図を作成する
- 要件定義書が表示され、それに対する設計をテキストで提出する
実際に実務のコーディングではバリバリ活躍できる人でも普段やっていないアルゴリズムの問題などは苦戦することもあるので、事前にいくつか練習しておくと良いと思います。
コードを提出するテスト
自分のローカルで作成したコードをGithub経由等で提出するテストです。書類選考と1次面接の間で実施されるケースもありましたし、最終面接前で実施されるケースもありました。
これはかなり実務に近い内容しかありませんでした。
- デザイン、要件定義書が与えられるので、それを元にFE、BEのコードを書いてWebサービスを作成するテスト
- 設計書が与えられるのでそれを元にWeb APIを作成するテスト
基本的には予習は不要だと思います。自分の現在のスキルで実装できないのであればシンプルにレベルが足りないと思われます。
ライブコーディング
これは1次面接と兼ねているケースが多いです。面接内で画面共有をし、面接官と話しながらコーディングをします。
アルゴリズムの問題もありましたし、設計をするものもありました。面接時間は限られているため、詳細な部分までは書かず、コメントなどで処理内容を補足するパターンもあります。
実際にコーディングできるのか、面接官とコミュニケーションをとりながら解決できるか、などが見られていると思います。
まとめ
私の経験ですが、ライブコーディングはかなり緊張もしましたし、失敗も多かったです。緊張からそもそも問題を理解するのに時間がかかったり、簡単な構文を忘れたり、、、それ以外は意外とパスできました。アルゴリズムの問題などはまったく最近やっていませんでしたが、なんとかなります。(意外と制限時間があるので落ち着いてやればOK)
ちなみに生成AIはNGのことが多かったですが、ライブコーディングでは使ってOKということもありました。プロンプトの作り方なども見ているようです。
転職活動中のエンジニアへのアドバイス
Webサービス型のテストは、アルゴリズム問題を数問解いて慣れておくことをおすすめします。LeetCodeやAtCoderなどで基本的な問題に触れておくと安心です。
コード提出型のテストでは、あなたの設計思想や実装力が直接評価されます。問題要件を正確に理解し、普段採用しているアプリケーションアーキテクチャをしっかり反映させてください。こだわり抜いた実装が評価につながります。
ライブコーディングは、正確さだけでなくコミュニケーション能力も見られています。焦らず面接官と対話しながら進めることを意識すると良いでしょう。完璧なコードより、思考プロセスを共有することが大切です。
余談
意外とSPIなどを実施する企業も多かったです。
会社の規模問わずあって、今までやったことがなかったので少しだけ雰囲気を掴むために練習しましたが基本的には予習不要だと思います。(というかやってもすぐに効果は出なさそう)
コメント