見出し画像

【22新卒エンジニア】私はこうしてGoogle SWEに落ちた

はじめに・自己紹介

22卒の学生エンジニアです。この度、GoogleのSWE(software engineer)の選考を受けました。結果は落選です。落選したとはいえ、選考の過程で実に多くのことを学びましたし、対策のためのノウハウも溜まったので、それを皆さんにシェアできればと思い、本記事を作成しました。

僕が受けた選考の過程は以下のとおりです。4の技術面接を突破すると、最後に1対1で面接があり、それで採用が決まるようです。

1. 履歴書(CV)
2. オンラインテスト 90min 2問
3. 電話面接: Phone Interview 45min
4. 技術面接: 1vs1 45min × 4回

GoogleをはじめとしたBigTechを志すまで

そもそもなぜGoogleに応募するにしたのか、そこから話を始めます。僕は大学に入ってからプログラミングを勉強し始め、ベンチャー企業でエンジニアとしてコードを書くようになりました。大学ではコンピューターサイエンスの授業も取っており、理論に関する勉強もしていました。習ったことがすぐにインターンで活かせるというのは、非常に面白かったです。

そこから色々な経験を積んでいたのですが、就活とか、どこの企業で働きたいとか、そういうことはまだ全く考えていませんでした。そんなときにある一つの記事に出会います。

この記事の反響はとてつもなく、twitterではこの記事で話題がもちきりだったことを覚えています。僕もシェアで流れてきたこの記事を読み、そして衝撃を受けました。それまで、GoogleやAmazonを始めとするBigTechは雲の上の存在だったのですが、この記事を読んで、もしかしたら自分もGoogleで働けるのではないか、という考えを抱くようになりました。大学2年生の夏頃です。

それから一年後の学部3年の夏休み、LinkedInを見ていると、Amazon Japanの新卒エンジニア募集のフィードが流れてきました。

詳しくは下記記事を読んでください

Amazonの選考は残念ながら落ちてしまったのですが、想像以上に手応えを感じました。全く歯が立たない、というわけではなかったのです。このときの経験から、Googleにも応募してみよう、そう決意しました。

僕が学部4年の2月頃、Google Japanの新卒エンジニア(GoogleではSWEと呼んでいるようです)の募集が始まり、僕は迷うことなくエントリーしました。

オンラインコーディングテスト

書類が通ると、今度はオンラインでのコーディングテストの案内が送られてきました。LeetCodeAlgoExpertといったサイトで対策を重ね、テストに臨みました。対策の方法については後述します。

90分で2問出題されるのですが、両方とも危なげなく解くことができました。時間は25分ほど余りましたし、テストケースは全て通っていたので、安心してコードをsubmitしました。

一次面接

数日後、オンラインコーディングテストの結果の連絡が来ます。次に進めるとのことでした。

Amazonでは、すべての面接は英語だったのですが、Googleでは面接での言語を選ぶことが可能でした。とにかくプログラミングの能力を重要視しており、英語は最低限あればいい、ということなのでしょう。僕は日本語を選びました。

実際の面接はというと、少し詰まったり、バグのあるコードを書いてしまったりしたのですが、面接官の人に手助けをしてもらいながら、解決することができました。

Googleの新卒で応募してくる人は大量にいるはずなので、少しのミスが命取りになるのかも?と危惧していたのですが、一次面接通過のメールを数日後にもらうことができました。

選考全体を通してですが、面接官は基本的にフレンドリーな方が多く、気軽に質問することができました。面接官は敵ではなく味方、そんな考え方で挑むと良いパフォーマンスが出せるはずです。

本面接

1対1、45分間の面接が4回ありました。午前中に2回、午後に2回です。日本語を希望したところ、2回の面接を日本語で、残りの2回を英語でやることになりました。

肝心の面接の出来はというと、5点満点中、4.5, 1.0, 4.0, 3.5 というところです。1回は完全にやらかしてしまい、1回は非常にうまくいき、残り2回はまあまあ、という感じでした。

出題される問題はどれも、全く手が届かない、という類ではありませんでした。適切な訓練をしていけば、ある程度再現性を持って誰でも解けるようになると思います。そういう意味で、非常にフェアな仕組みだと感じました。

結果

すでに他の企業で内定が出ていたので、一日4回の面接が終わった段階で、もうやりきったな、と感じてました。やれることはすべてやったので、後は結果を待つだけでした。

数日後にメールが届きます。今回は採用を見送るとのことでした。膝から崩れは落ちませんでしたが、非常に悔しかったことを覚えています。とはいえ、最大限の努力を100とすると、80ぐらいは自分の中で出せたかなと思いますし、不採用の結果も納得しました。


学習に使った教材やサイト、勉強法など

同時期にIndeedの選考を受けていたのですが、対策したことはどちらの企業も同じでした。勉強法や使用した教材などはこちらに書きました。気になる方はこちらをご覧ください。

上記の記事は結構長いので、使用したサイトだけ書いておきます

AlgoExpert / SystemsExpert

LeetCode

AtCoder

などです。「コーディングテスト」の対策のために使用したのはほぼ上述のサイトだけになります。コンピューターサイエンスの勉強は本で行ったのですが、詳しいリストについては↑のリンクから見てみてください。

どれぐらい勉強したのか

・AlgoExpert: 100問ほど

・LeetCode: 150問ほど

・AtCoder: 100問ほど

です。コーディングの対策を始めたのが、2月の頭からだったので、約2ヶ月ほどしか時間を割けませんでした。正直なところ、もう少し早くから勉強を始めるべきだったと思います。合計で350問ほど問題を解いたわけですが、復習が間に合わず、中には放置してしまった問題もありますし、もっとたくさん、具体的にはさらに100問ほど演習をしておけばよかったと思ってます。

当時は、インターンでプログラミングをしており、それが週に3~4日ほど。予定がある日は一日5問、なにもない日は10問を目安に演習をしていました。演習の合間にCSの本を読んだり、英会話の練習をすることで、時間を有効活用しました。

AmazonやGoogle、Indeedの選考を受けて感じましたが、募集が始まってから勉強を始めるのでは、時間がかなり厳しいです。募集開始から2~3ヶ月程度しか猶予がないので、元々かなり競プロができる場合を除いて、最低でも準備には4~5ヶ月程度は確保しておくことをおすすめします。

参考にした情報源


Googleが公式で出している情報が参考になります。


秀逸なまとめ記事です。これを読めば、大体必要な情報網羅できるかと。

Google software engineer interview: the only post you'll need to read


この記事も大変参考になりました。


ここに出てくる記事は片っ端から目を通しました。

私はこうやってGoogleに入りました

最後に

Googleを始めとするBigTechは、面接にたどり着くまでが一番難しいといいます。特にアメリカでは、CS選考の学部生、諸外国からきた大学院生、博士が大量にBigTechに応募するため、選考の難易度は熾烈を極めるそうです。

日本でも、選考の難易度は高いと思いますが、少なくとも面接には、そこまで労せずともたどり着くことができます(と僕は感じました)。募集要項には、「大学でCSに関連する選考、もしくはそれに準ずる経験」、と書いてありますが、逆に言えば、それさえ満たしていれば、書類を出して応募するだけで、高確率でバッターボックスに立つことができます。

自分がGoogleで働くなんて、大学2年生の頃は考えてもみませんでした。全く選択肢に入ってなかったのです。結果的に採用には至りませんでしたが。

僕は、LinkedInで手当たり次第有名な外資系企業をお気に入りしてました。面白い求人が流れてくるので、まじでおすすめです。

この記事が皆さんの役に立てば幸いです。

この記事が気に入ったらサポートをしてみませんか?