私は新卒でメガベンチャー企業にソフトウェアエンジニアとして入社し、数百万ユーザー規模のアプリケーション開発に携わりながら、多くの学生の新卒採用面接も経験しました。この記事では、私自身が複数のメガベンチャーから内定を得た経験と、新卒面接官としての実体験に基づいて、メガベンチャー企業への内定を勝ち取るための戦略を紹介します。
STEP1 メガベンチャーの就職活動の全体像を把握する
まず初めに、メガベンチャー内定というゴールまでの道のりを把握しましょう。
選考全体の流れ
どんな企業も選考フローはおおよそ以下の流れで進みます。個別の面接対策についてはここでは触れず、「STEP2 面接対策をする」にて詳しくお伝えします。
1. 企業選び・自己分析
まずはエントリーする企業を選びましょう。企業選びは自分で行きたい会社を選ぶのも良いと思いますし、就活エージェントや逆求人のサービスを利用するのも良いと思います。自分の選択肢になかった企業を提案してくれたり、効率よくエントリーを進めてくれるのは利用価値があると思います。しかし、興味がない企業を無理に勧めてくるようなサービスの場合は利用をやめておきましょう。
また、企業選びと並行して、自分が一体どんなことを人生の中でやりたいのかを明確にするために、自己分析をしましょう。自己分析、面倒ですよね。私も就活時期にはじめてちゃんと自己分析をやって、不慣れでやり方もわからないし、やって本当に意味があるのかもわからないしでかなり懐疑的でした。しかし、面接の中で企業選びの軸や、どんなキャリアプランを持っているのか聞かれた際に必ず役に立つのでやっておきましょう。
2. エントリー
企業の HP やエージェントからの紹介などでエントリーします。この際に履歴書やエントリーシートを求められます。提出した情報については面接で深掘りされる可能性が高いので、内容を精査した上で提出しましょう。また、面接直前に自分が提出した内容を見返せるように必ずメモを残しておきましょう。
3. ウェブテスト(コーディングテストや適性検査)
メガベンチャー企業は多くの学生がエントリーしてくるので、スクリーニング目的でウェブテストが使われます。技術力が一定の水準に到達していない場合は面接に参加できません。多くの場合でコーディングテストを課されますが、まれに適性検査を課される場合もあります。コーディングテストを突破するために、基礎的なデータ構造やアルゴリズムを習得し、問題を解く練習をしましょう。詳しくは後述します。
4. 面接 複数回(行動面接・技術面接・最終面接)
ウェブテストで基準を上回れば面接に進めます。メガベンチャーの面接は一次面接から最終面接がおおよそ3~5回程度あります。面接には3種類あります。あなたが採用人物像とマッチしているかを確認するための「行動面接」と、あなたの技術力が企業が求める水準を超えているか確認するための「技術面接」、役員クラスの人が最終判断を下す「最終面接」です。それぞれの対策は後述します。
5. 内定
おめでとうございます🎉 内定後にオファー面談が組まれます。オファー面談の中で、給料提示やその他の条件説明などがあります。
就職活動のスケジュール
メガベンチャー企業の就職活動のスケジュールは、日本の大企業と比べると早い場合が多いです。事前に受けたい企業の選考スケジュールを把握して、いつまでにエントリーする必要があるのか把握しておきましょう。
大体の企業では、学部3年生/修士1年生のサマーインターン後に本選考が始まり、翌年の10月前には選考がひと段落つく場合が多いです。10月1日に内定式を開催している企業が多いのでそれまでにおおよその募集枠を埋めるように動いています。
一部の企業では、上記に当てはまらないイレギュラーなスケジュールを取っている場合もあります。たとえば、学部3年生/修士1年生開始直後に早期選考を開始していたり、サマーインターン対象者限定の早期選考を実施していたり、通年採用をしていたりといった具合です。なお、今回の記事では短期インターンに参加して早期選考を受けるケースよりも、通常のフローで本選考を受けるケースの方を想定して書いてあります。ただし、早期選考と言っても選考が有利になる程度で、本質は変わらないので参考になると思います。
スケジュールギリギリになってくると焦りが生じて、本来のパフォーマンスを発揮できない可能性が高まるので、余裕のあるスケジュールで進められるようにいつ頃から本格的に就活を始めるのか事前に決めておきましょう。
STEP2 面接対策をする
STEP1 でお伝えした選考フローそれぞれに対する対策方法についてお伝えします。
エントリー対策
エントリー時は履歴書やエントリーシートの提出が求められます。履歴書はこれまでの経歴について書けば良いだけですが、エントリーシートは各企業ごとの観点から質問があります。
エントリーシート提出にあたって、押さえておくべきポイントが2点あります。
まず1点目は「要点を絞って、簡潔に伝える」です。面接ではエントリーシートに書いてある内容を深掘りされます。面接の限られた時間内にあなたの魅力を100%伝えるためにも、エントリーシートに書かれている内容は理解しやすい文章となっていることを目指す必要があります。あなたの伝えたいことをできるだけ要点を絞って、簡潔に書くようにしましょう。
2点目は「書いた内容をメモして面接前に見返しておく」です。面接ではエントリーシートに書いてある内容を深掘りされる場合が多いので、自分がどのような内容を提出したのかは手元にしっかりと残しておきましょう。また、面接前はエントリーシートにどんなことを書いたのかしっかりと見返して把握して、どういった深掘りがされるかを考えることで、面接のシミュレーションをしっかりとしておきましょう。
ウェブテスト – コーディングテスト対策
面接に進むために、事前にウェブ上でコーディングテストを突破することを条件としている企業は多いです。コーディングテストとは、候補者のプログラミングの能力を評価するための試験です。具体的には、与えられた問題を解くためのプログラムを作成し、その正確さと効率性が評価されます。コーディングテストはオンラインで行われることが多く、特定のプログラミング言語で解答を提出する形式を取ることが一般的です。
コーディング対策として、以下の学習方法をオススメします。
1. アルゴリズムとデータ構造を学ぶ
コーディングテストでは、アルゴリズムとデータ構造の知識が重要です。これらの基本的な概念を理解し、それらを適切に使用することで、効率的なコードを書くことができます。とくに、時間計算量を意識することが重要です。計算量という概念を学習し、代表的なアルゴリズムやデータ構造については、どの程度の計算量を必要とするのか覚えておきましょう。私は学生の頃に Aizu Online Judge(通称 AOJ)を利用して、アルゴリズムとデータ構造の知識を獲得しました。
2. オンラインプラットフォームでプログラミング問題を解く
AtCoder や Paiza などのプラットフォームは、コーディングテストの練習をするのに適しています。これらのサイトは、さまざまな難易度の問題を提供しており、自分のスキルレベルに合わせて練習できます。メガベンチャーのコーディングテストでは、アルゴリズムとデータ構造を直接書くような問題(例: 二分探索, マージソートを実装せよ etc)よりは、より現実にありそうな問題をプログラムに落とし込む問題(例: 電車の乗り換えアルゴリズムを実装せよ etc)の方が多く、先ほどお伝えしたプラットフォームはこの性質を踏まえた上でオススメできるサイトです。
3. 時間管理の練習をする
コーディングテストは通常、制限時間内に問題を解くことが求められます。したがって、時間管理のスキルを磨くことも重要です。具体的には、問題を解くのにどれくらいの時間を割くべきか、いつ解答を提出すべきかなどを考えることが含まれます。先ほどお伝えした AtCoder や Paiza の問題を解く際に、時間の制限をかけることで、プレッシャーのある環境で練習することをオススメします。
4. テストケースを考える練習をする
自分のコードが正しく動作することを確認するためには、さまざまなテストケースを考えることが重要です。これには、境界値のテストやエッジケースのテストなどが含まれます。コーディングテストでは、書いたプログラムがどの程度テストケースをパスするかチェックする機能が大抵あります。コーディングテスト本番では、全体のうち何個テストケースがパスしたか見られるだけで、テストケースの中身は見えないのでパスしないテストケースの境界値やエッジケースを考える能力が求められます。
なお、近年の AI の発達である程度 AI にコーディングテストを解かせても正答する可能性は高まっていますが、自力で解くようにしましょう。企業側からは、どの時間にどのくらいのテストケースを通しているかが見えていたり、不正に利用している可能性はなんとなく見抜けるものです。
技術面接対策
技術面接は、あなたの技術力が企業が求める水準を超えているか確認するために行われます。
メガベンチャー企業で行われている技術面接には以下のようなものがあります。ただし、企業によってはこの辺りの技術的な面接を行わない場合もあります。人事に事前に面接内容を聞いておいたり、面接官に次回の面接の内容をしっかりと確認して、事前に準備をして臨んでください。
1. コーディングインタビュー
面接中にリアルタイムで行われるコーディングインタビューは、オンラインで事前に行うコーディングテストとは出題される傾向が少し異なります。オンラインのコーディングテストが現実にありそうな問題をプログラムに落とし込む問題だったのに対して、面接でコーディングインタビューを行う場合、現実の問題をプログラムに落とし込む問題に加えてアルゴリズムとデータ構造を直接書くような問題も出題されます。
対策としては、先ほどオンラインのコーディングテストの対策としてお伝えしたのと同様に、AtCoder や Paiza などのプラットフォーム上で時間を測りながら、エッジケースを考えて練習に取り組んでください。また、口頭での面接になるので自分の考えを口に出して、面接官とコミュニケーションを取りながら進める練習をする必要があります。
コーディングインタビューでは、計算量についての質問が高頻度でされます。必ず計算量の概念や求め方を学習しておいて、代表的なアルゴリズムやデータ構造についてどの程度の計算量を必要とするのか回答できるように準備をしてください。
2. システムデザインインタビュー
システムデザインインタビューでは大規模なシステムを設計する能力を評価します。具体的には、特定の要件を満たすためのシステムの設計を提案し、その設計を選択した理由や技術選定のトレードオフについて説明します。また、このインタビューで面接官はあなたのコミュニケーション能力を見ています。メガベンチャーで開発するような大規模なシステムは一人で作ることはなく、他の人と協力して作る必要があるので、他の人と協力しながら業務を遂行できるかという観点で見ているのです。
例題をあげてみたのでまだ具体的にどんな質問をされるのかイメージが湧いていない方は参考にしてみてください。
- 「新規事業で旅行予約サイトを立ち上げます。このサイトの設計を考えてください。」
- 「弊社が提供しているショッピングサイトと旅行予約サイトの統合できる箇所と統合できない箇所を考えてください」
対策として以下のことに取り組んでください。
1. システムデザインインタビューの書籍や、ウェブサイトから情報収集をする
私がもっともオススメするのは「システム設計の面接試験」を読むことです。この書籍では、具体的なテーマを通じてシステム設計の問題と、その解答を詳しく解説しています。テーマには「Webクローラー」「チャットシステム」「動画共有サービス」など、現実のシステム設計に直結したものが選ばれています。新卒のシステムデザインインタビューであればこの書籍を読んで理解しておけば、十分すぎるくらいで、他に何か読む必要はありません。
あえて、書籍以外をあげるとすれば donnemartin/system-design-primer のリポジトリがオススメですが、若干オーバーワークが否めない内容なので、基本的には「システム設計の面接試験」を読むようにしましょう。書籍を読んで、さらに時間がある人はこちらのリポジトリを読んでおくと参考にはなりそうです。
ちなみに、私はこの書籍とリポジトリの内容をこなして中途面接のシステムデザインインタビューを何度も受けましたが、一度も落ちたことがありません。中途採用でもカバー可能なレベルなので、とりあえずあれこれ考えたり調べて手を動かすのが遅れるくらいなら、とりあえず「システム設計の面接試験」を購入して1秒でも早く学習を開始してください。
2. シミュレーションする
書籍を読んで情報収集が済んだら、必ず面接のシミュレーションをしてください。メガベンチャー企業を受ける友人や、働いている知人がいれば手伝ってもらうのが最善の選択肢です。もしそういった手助けが得られないのであれば、インターネットでお題を探してきて独り言をぶつぶつと言いながら練習をしてください。お題を探す際は、先ほど共有した donnemartin/system-design-primer のリポジトリがオススメです。
行動面接対策
行動面接は、あなたが採用人物像とマッチしているかを確認するために行われます。
企業分析
企業がホームページや採用サイト上で、採用人物像や行動指針を公開している場合、これを徹底的に理解・分析してください。また、募集要項も穴が開くほど読んでください。
面接をしていると、多くの学生がこの点を軽視していると感じます。面接官ごとに合格・不合格の判断結果がブレるのを防ぐために、あらかじめ採用部署が定めた採用基準に基づいて面接官が評価を行います。この採用基準の元となっているのが、募集要項や公開されている採用人物像や行動指針なのです。
私が過去所属していたメガベンチャー企業では、面接を担当する社員にだけ公開されている採用基準と、会社が学生に公開している情報が体感9割一致していました。無理に自分を偽る必要はありませんが、企業がどんな学生を求めているのかを把握し、それを面接で上手にアピールすると内定する確率はかなり高くなると思います。
想定質問と回答の洗い出し
面接で聞かれる質問は企業ごとに大抵似通ったものが多いです。事前に企業分析を行い、どのような回答が高評価につながるのか熟考し、想定される質問とそれに対する答えを準備しましょう。
注意点が1つあります。回答が長すぎると理解されにくい上に、共同で業務を進める上でのコミュニケーション能力に欠けていると評価される恐れがあるので、質問を正確に把握し、簡潔にわかりやすく回答をしてください。情報量が不足していると判断した場合、面接官の方から質問をしてくるので、一度ですべてを伝え切る必要はありません。
以下は面接中に必ず聞かれるであろう超重要な質問です。どれだけ深掘りされたとしても、回答に困らないくらい回答を入念に準備してください。
- なぜソフトウェアエンジニアという職業を目指すのですか
- 将来のキャリアプランを教えてください
- 企業を選びの軸は何ですか
- これまでもっとも力を入れた開発経験について教えてください
- これまでもっとも大変だった(難しかった)開発経験について教えてください
最終面接対策
最終面接では、技術力よりも、人間性や企業カルチャーとの親和性や仕事に対する姿勢を中心に評価されることが一般的です。この段階での技術的な質問はそれほど多くないことが多いです。
多くの場合、最終面接には役員クラスの人物が出席します。最終面接担当の役員は、候補者が組織にプラスの影響をもたらすかどうかを見極める役割を担っています。そのため、最終面接では、候補者の長期的なキャリア目標や価値観、コミュニケーションのスキルに焦点が当てられることが一般的です。
企業によっては、最終面接が形式的なものであり、事実上の内定が出されている場合もありますが、実際には普通に不合格とされることもあります。油断せずに対策を講じましょう、と言いたいところですが、最終面接は企業によって内容がかなり違うので対策らしい対策ができないのが実のところです。
できる範囲の対策として、受けている企業への入社の意欲を示すようにしましょう。自分が人生の中で成し遂げたいことや、将来のキャリアの目標の方向性とその企業でやれることが一致していることをアピールしたり、志望度の高さをアピールしましょう。ちなみに、志望順位を聞かれる場合もありますが、第一志望ではない企業から志望順位を聞かれると困りますよね。私は自分が就活生の頃に志望順位を聞かれた際は、「明確な志望順位はまだつけられていないが、第一志望`郡`に御社も入っています」と濁した回答をしていました。参考にしてみてください。
STEP3 面接で語れる開発経験を日々積み上げる
ここまでは面接対策について触れてきましたが、もっとも大事なのは小手先の面接対策ではなく、日々どれだけ開発経験を積み上げる努力をしたかです。面接までの残り時間を逆算しつつ、面接で語れるだけの開発経験を積み上げてください。
私の考える、メガベンチャーに内定しやすい開発経験は以下のようなものです。
- 長期インターンでの開発経験
- 個人サービス開発経験
- 有名 OSS へのコントリビュート
- 技術カンファレンスでの発表・登壇経験
- 競技プログラミングやコンテストでの上位成績者
- 学術的な成果
- 技術書の執筆
これらの中での私がもっともオススメしているのは「長期インターンでの開発経験」を積むことです。長期インターンを経験している/いないで内定率には天と地ほどの差が生まれると私は考えています。
長期インターンを経験した学生は技術力の高い人が多いですし、ソフトウェアエンジニアになるための行動・努力をしている点もかなり高評価につながります。また、メガベンチャー企業に内定している学生の多くが長期のインターンを経験しているので、あなたが経験していないだけでも相対的に不利になる可能性があるのです。
詳しくは以下の記事で解説していますので、まだご覧になっていない方はぜひ一読してみてください。この内容を知っているか否かで、メガベンチャー内定率に大きな差がつくような内容となっています。
逆に、「極端に開発期間が短かったり、作り込みに至っていない開発経験」ではなかなか選考を突破していくのが難しいです。
これにはハッカソンでの制作物や、大学やプログラミングスクールで作成したプログラムなどが当てはまります。ハッカソンに出ていること自体は技術的な取り組みをしている積極性という観点でプラスになりますが、ハッカソンのたった数日で作り上げたエピソードを話しても、なかなか技術力のアピールにはつながりにくいです。また、大学やプログラミングスクールで作成したプログラムもアピールとしては弱いです。技術力のアピールをするなら、解決が難しく長期的に取り組んだエピソードを面接では伝えるようにしましょう。これを踏まえると、やはり私のオススメは長期インターンを通じての実務経験エピソードを伝えることです。
まとめ
この記事では、新卒エンジニアがメガベンチャー企業の内定を獲得するための具体的な戦略について解説しました。まず重要なのは、選考プロセス全体の理解です。エントリーからウェブテスト、面接、最終面接まで、各段階での対策が必要です。エントリー時には履歴書やエントリーシートの内容を綿密に準備し、面接前には提出内容の復習を行いましょう。
コーディングテストの対策としては、基本的なアルゴリズムやデータ構造を理解し、オンラインプラットフォームで実践的な練習を行うことをオススメします。技術面接では、コーディングスキルだけでなく、システムデザイン能力とコミュニケーション能力も評価されるため、これらの準備も欠かせません。
行動面接では、企業の採用基準を理解し、それに合わせて自己アピールすることが大切です。最終面接では、技術力というよりもあなたの人間性や企業カルチャーとのマッチが重要視されるため、入社に対する強い意欲を示すことが重要です。
さらに、面接対策以上に大切なのは、日々の開発経験の積み上げです。長期インターンや個人プロジェクトなどを通じて実践的な経験を積むことが、内定獲得へのカギとなります。ハッカソンや大学のプロジェクトだけでは十分ではなく、より実践的で長期的なプロジェクトに取り組むことをオススメします。
この記事が参考になったと感じた方はぜひ SNS でのシェアをお願いします。シェアしていただけるとモチベーション向上に繋がって更新頻度の上昇に繋がります!
また、新しい記事の投稿のお知らせや、有益な情報を X で発信 します。こちらもフォローしていただけるととても嬉しいです!
コメント