難関外資系企業といっても戦略コンサル・投資銀行・外資系メーカーだけではなく、Google、Apple、MicrosoftといったグローバルIT企業のエンジニア職も狭き門と言われています。

そもそも東大・京大情報系の大学院やNaist(奈良先端技術大学院大学)といった専門系大学院にしか選考情報が回らなかったり、内定者が非常に少ないということもあってかなかなか情報が表に出てきません。
他の職種・企業のように「経験不問」というわけにはいかず、高度なプログラミング能力や経験が選考の時点で求められているのが、「外資系IT企業でのエンジニア職」というキャリアです。

今回は、こういったトップIT企業にエンジニアとして新卒入社するための方法について、ご紹介致します。
最先端テクノロジーを自ら生み出していくエキサイティングな現場で、自分のスキルを発揮していくというキャリアパスに少しでも興味のある方はぜひご覧下さい。



新卒採用には、どのようなルートがあるのか?



基本的には以下の4つが一般的です

1. その企業の開催するインターンシップを経験する
2. 研究室の繋がりを利用する
3. プログラミングコンテスト等に出場し、そこで企業の人の目に留まるような実績を挙げる
4.通常の応募ルートで勝ち進む


ただ、外資系IT企業の開発エンジニア職は非常に狭き門であるため、この中のどれか一つだけでいこうと思ってもなかなか難しいでしょう。そのため、

1.インターンシップに参加するために、
2.研究室などの繋がりが利用できればフルに利用し、
3.コンテストへの出場など、実際に開発できる機会に手を出してみる
というような組み合わせが大事です。

1.インターンシップ経由でのルート



上記のうち新卒入社するための一番の近道は「インターンシップ経由のルート」であると言えます。広くオープンに志望者を募る日系企業に比べると、外資系企業のエンジニア職は国内採用人数も少なくクローズドなものが多いですが、インターンシップは本サイトで募集していたり、会社によってはリクナビで募集をすることもあり、条件を満たせば誰でも応募が可能です。

Google夏季インターンシップ

募集時期は、日本国内開催のものであれば6月末締切くらいが中心のサマーインターンが殆どになります。期間は短いものなら2週間程度のものもありますが、1~3ヶ月と、数カ月に渡るものが一般的です。また、参加人数を絞る上で個人のスキルを入念に見られるため、選考自体に1カ月程度の長い期間を要します。

逆に、アメリカ等外国本社で行うものであれば、サマーインターンは現地大学の夏休みにあたる5〜8月に開催します。ビザ取得等の手続きもあるため、1月中には応募を締め切ってしまうものが多いので年末から準備が必要です。

2.研究室の繋がりを利用するルート



そもそもエンジニア職として働く方々に巡り合う機会が少ないため、話を聞くこともそう簡単にはできません。特殊な選考・実際の仕事内容など貴重な情報を得るために、研究室の繋がりは重要です。リクルーターがいるわけではありませんが、所属する研究室がその企業と研究・開発で付き合いがあったり、社員にOBがいるなどして人を探すことができれば、選考に臨むにあたって大きなアドバンテージとなります。

研究室を決める段階にあたり、将来的にエンジニア職に就きたいという希望がある方なら「研究室OBの就職先」「研究室が関わりを持つ企業」を入念に調べてから選ぶのが吉です。

また、限定の選考案内はもらえなくても、オープンな応募ルートがあり、選考に進む場合、研究室OB等繋がりを持てる人がいるならコンタクトを取っておきましょう。大量の応募書類が来るので、自分のものが手つかずのまま見られないで放置・・・なんてこともあったりするかもしれません。

3.コンテスト経由のルート



プログラミングコンテストにはグローバルで開催されているものから、国内限定のもの、企業主催のものなど様々な種類のものがありますが、新卒入社に繋げようと思うなら、 ACM国際プログラミングコンテスト(大学毎に3人一組で出場)など、コンテストのスポンサーに外資IT企業が名を連ねているものが良いでしょう。

大学の研究だけではフィードバックが少ない、サンプルの場合以外の全てのケースでも適用可能かが分からないなど、エンジニアとして就職を目指す上ではどうしても経験が不足気味になります。その点、プログラミングコンテストでは「本物」に近い体験を行うことができます。非常に稀な事例ではありますが、上位大会で実績を残せばオファーが出ることもあります。
またコンテストを経験するメリットとして、直接のオファーはなかったとしてもインターン選考対策になるという点があります。

実際、Google/Microsoftのインターン選考でも、コンテストと類似の問題が出されます。ACMプログラミングコンテストの過去問を見るだけでも、十分参考になります。

4.通常の応募ルート



日系企業とほぼ同時期に、新卒採用として募集をする企業もあります。日本マイクロソフトを始め、日本○○と名前の付いている外資系企業の多くが、こういった通常のプロセスで募集しております。
ただ新卒採用向けの企業紹介ページはあっても、応募プロセスは中途と同様、厳しいものがあります。間口が広いため敷居が低そうに見えますが、内定を取るためには専門的知識と経験・実績などがずば抜けている必要があります。数カ月の就業経験が出来、技術的に成長もできるインターンシップ選考に比べると、十分な実績が無いと難しいでしょう。

通常の応募ルートと言っても、開発エンジニア職は選考過程で専門知識や経験を重視されます問われることが多くあります。そのため、開発エンジニア職の選考内容はインターン選考と似たものが多くなっています。以下インターンの選考情報をご参照ください。

またグローバル企業の日本法人ではなく、本社でのキャリアを志す場合ではこれ以上に道が狭まります。インターンシップに参加するために、論文の発表・オープンソースの開発で名を挙げる・社員の方と学会等でネットワークを作るといったあの手この手を使って、企業の目に留まるようにしなければなりません。

インターンシップ応募から採用まで



選考の詳細についてお話いたします。

応募者にはどういう人が多いのか?



技術系の中でも、ソフトウェア開発のインターンの多くが情報系バックグラウンドを必須としています。ただインターンまで進む人は皆個性的で、例えば芸大の方などもいらっしゃいます。C言語に触れ始めたのは大学入学以降という方もいますが、そういう人は高校時代から既存のプログラムを改造したりなどしているようです。大学院まで進んで研究をしている人が多いですが、学部生もいます。学部生を対象としたインターンを別枠で開催している企業もあります。

応募〜1次面接



国内開催のインターンであれば、Microsoftのようにリクナビで応募できたり、Googleのように自サイト上で広く募集告知をするところがあります。サマーインターンの募集は5月以降に盛んになるため、外資就活ドットコムの募集情報フィード上でチェックしてみて下さい。

応募の時点では、志望動機や今までのプログラミング経験等を聞かれる書類選考から始まります。英文履歴書が必要な企業もあるので、googleの英文レジュメ例 を参考に作るといいでしょう。

書類選考に通過すると面接となります。直接会う形での面接については、最初は日本語でやる場合が多いようです。また1次面接が電話面接という場合も多くあり、その場合は殆ど英語です。英語でも日本語でも、1次面接の内容としては、自己紹介やこれまでの実績についてのお話が中心で、プログラミング言語に関連する分野等の質問もいくつか出されます。

コーディング面接



エンジニアならではの選考としては、その場でお題を出され、実際にホワイトボードなどにコードを書かせられる「コーディング面接」があります。面接官は現場エンジニアの方が中心で、複数名と行います。書類、1次の時点で十分絞られているため、一人一人のスキルをじっくりと見られます。4人の面接官とそれぞれ1時間×4人=4時間話すということもあります。

このコーディング面接ですが、実際コンピューターを使うことができません。さらに多くが英語で行われるため、日本人エンジニアにとっては二重苦です。説明をするとそれに対して面接官からつっこみがあってまた説明したり、間違いを指摘されることもあります。ただ、間違ったから悪い、というのではなく、指摘を受けて直すプロセスがしっかりできているかを重視されているそうです。

例えば以下のような問題が出されます
Given a number, e.g., 2789, as an array [2,7,8,9]. Write a method that returns the array incremented by one: i.e. [2,7,9,0].


こういった面接には、コードを書く問題を多数こなすことで対応できます。以下のサイトがおすすめです。

Top Coder  (Googleでは選考練習として初級・中級問題を推奨)
ACM国際プログラミングコンテスト過去問題
Careercup:トップIT企業の面接で聞かれた過去問を多数掲載しています

手でコードを書くという作業は普段殆どやることがないため、意外に手こずります。コードを紙に書き、それをテストすることを繰り返すとよいトレーニングになるかと思います。

フェルミ推定・ケース面接



コーディング以外にもコンサルの選考でよくあるフェルミ推定やケース問題も出題されます。例えば「日本にピアノは何台あるか?」といったお題で、知識というより、答えにいきつくまでのプロセスを試されるものです。

フェルミ推定、ケース問題の対策については、以下の記事を参考にしてみて下さい。

【コラム】東大博士→マッキンゼー出身者が教えるフェルミ推定の解き方 
(1)理論編 
(2)実践編

インターンシップの内容



上記選考に通過すると、いよいよインターンシップです。大体1~3ヶ月の期間をかけて、実際の開発に関わります。お題の多くがざっくりとしか示されず、自分で内容を決められることが多いです。
メンターとなる社員さんと相談して、取り組む内容をはっきりとしたものにしていきます。インターン生が2人1組で行うものは、同じソフトウェア開発職でも別の職種同士で組んで開発します。私は既存サービスの新機能を開発いたしました。

開発の進め方についてはプログラムによって様々ですが約8週間のプログラムを例にとると、

1~2週 環境・設備に慣れる(2週間)
3~6週 方向性を考えた後、実際に作業(4週間)
7~8週 まとめ作業(2週間) 文書で成果を示す。


就業時間は10:00〜18:00が一般的。職種や取り扱う分野にもよりますが、中には実際にユーザーに使われるものを開発する場合もあるそうです。

 内定獲得のためのポイント


1.プログラミングのバックグラウンドがあること


インターンやその選考では、扱ったことの無い言語でコードを書く場合もあります。ただ基本的なものはどの言語も変わらず、書き方しか違いません。色々な言語を触って慣れておくことも良いですが、全ての言語のベースとなる部分をしっかり押さえておくことが重要です。

2.英語力


外資系企業のため日本語が分からない外国人の方も多く、コミュニケーションツールとして必須です。電話面接の多くが英語で行われますし、コーディングの説明も英語ですることを求められます。
またインターンの最終成果発表も英語で行われることもしばしばです。私は海外生活経験のないいわゆる純ジャパでしたが、たくさん喋って伝えようとすることで何とか乗り切りました。これから選考を受ける人は、研究室の留学生の方に英語でコミュニケーションしてもらうよう依頼するなど、日常から英語に慣れておくとよいでしょう。

おわりに



いかがでしたでしょうか。最近はこういったGoogle・Microsoftといったグローバルトップ企業だけではなく、Greeが新卒エンジニア職に最高年収1,500万を提示するなど、エンジニアというだけで引く手あまたな状況が続いております。プログラミングやりたいけど、大学生だともう遅すぎるのでは・・・と思う方、Facebook創業メンバーの1人であるダスティンモスコヴィッツも、当時は全くコードを書くことができず、"Perl for DUMMIES"(サルでもわかるPerl)という本を買って読むことから始めたとかいうお話です。今からでも全く遅くはないのかもしれませんよ。

最近はドットインストールという動画で学ぶ初心者向けプログラミング学習サイトがオープンしたり、学習する環境はだいぶ整って参りました。Hello Worldからなかなか次に進めなかった方も、ぜひ再チャレンジしてみてはいかがでしょうか。

実際にGoogle・Microsoftにエンジニア職にチャレンジする方は、以下書籍が参考になります。ホワイトボードコーディングについても詳細記してありますので、熟読することをオススメします。


では、がんばってください。

■関連記事
14卒外資系企業サマーインターンで課されるエントリーシート項目まとめと選考対策
志望動機が書けない人が陥る3つのワナとその処方箋
現学部3年・修士1年生がサマーインターンにチャレンジするべき7つの理由