2015-10-22

シリコンバレーの採用面接対策

日本人ソフトウェアエンジニアである筆者が、シリコンバレー企業の採用面接をいくつか突破するにあたり、役に立ったなぁ、と思ったものを書き連ねてみました。ソフトウェアエンジニアポジションの採用面接における、一般的な対策として。渡米してシリコンバレーで働きたい! なんて方の参考になれば幸いです。アフィねらいですよね、と聞かれたら、そうではないですと言えない感じではありますけど、まぁそんな感じです。

シリコンバレーで働きたい、といえば、良い本が出ました。「エンジニアとして世界の最前線で働く選択肢 ~渡米・面接・転職・キャリアアップ・レイオフ対策までの実践ガイド」。ていうか、まだ第七章「解雇に備える」しか読んでないんですが :) 



そうそう、解雇といえば、Getting Ahead in the U.S. (ESL)もしょっぱなの第一章から解雇の話です。ESLの教材で、COBRAの説明を聞くとは思いませんでした。



あと「SOFT SKILLS」て本が、すごくいいらしいですよ(丸投げ)。入社時の給与交渉なんて、行き当たりばったりもいいとこだったんで、事前に知っときたかった感じです。とか言いながら実はまだ読んでないんですが、シリコンバレーに来ると、この本タダで読めちゃいます。サンフランシスコ図書館とかサンマテオカウンティ図書館などで図書館カードを作ると、Safari Books Onlineのサブセットに無料でアクセスできるようになりますが、この本そこに入ってるんで、いつでも無料で読めます。



あとオンラインでebookやaudio bookを借りれたり、美術館博物館とかの割引が効いたり、いろいろ特典あるんで、採用面接通ってサンフランシスコベイエリアに住むことになったら、図書館のカード作っときましょう。居住地の図書館だけじゃなく、サンフランシスコ図書館とか、サンマテオカウンティ図書館は(そしてたぶん他の図書館も)、カリフォルニア州に住んでさえいれば図書館カード作れます。



筆者は現地法人に現地採用されてたとはいえ、こっちでの採用面接は初めてだったので、Quoraとかで紹介されてた面接対策本を片っ端から買ってみました。
一番役に立ったのは、結局のところ、ド定番の「Cracking the Coding Interview」でした。A Problem-Solving Flowchartとか重要(チャート図自体はサイトからダウンロードできますけど、詳細説明は本にしか載ってません)。ただ黙って問題解けばいいわけじゃないのです。Googleとか有名ドコロは、どういう面接がどうやって行われるか、どのように評価されるか、とかも書かれてます。




あ、日本語版持ってます? 私も持ってるんですけど、オリジナルの英語版は6th Editionになってますし、これからシリコンバレー企業受けるわけですよね。当然ながら面接は全部英語ですんで、英語版読んだほうがいいと思うんです。ええ。シリコンバレーでは英語ができなくても問題にならない、なんていう記事もありますけど、あれって、「ネイティブと同等な」英語ができなくても問題にならない、だと思うんですよね。たぶん最低でもTOEIC 800点とかないとツライんじゃないかなと(TOEICの点数云々に関してはリンク先をどぞ)。そういえば、英語学習についての記事も書いたことがあるんで、読んでみてくださいませ。まぁ「英語△/コーディング◎」は通る可能性ありますが、「英語◎/コーディング△」は通らないんじゃないかなぁと思ったりもします。コーディングできる方は、とりあえず入社してから、一緒に英語で苦労しましょう。

で、コーディング面接で出されるようなアルゴリズムとデータ構造って、普段の仕事であんまり直接使わないかな、なんて思うわけなので、しっかり復習しといた方がいいわけです。その復習にピッタリだったのが、「Data Structures and Algorithms Made Easy」。



たとえば、リンクリストからのノード削除とか、事細かに図解入りで説明されてます。そんな簡単なの復習しなくてもいいんじゃない? という方もいると思うんですが、この本、コーディング面接で出るような問題もたくさん載ってまして。しかも、コーディング面接の回答に必須である、実行時計算量(Time Complexity)、メモリ使用量(Space Complexity)もちゃんと解説されてます。

あと、面接に到達するためには、ちゃんとしたレジュメを書いて書類選考を突破しないといけないわけですが、それは「Programming Interviews Exposed」にレジュメ具体例付きで説明されてたりします。



ホワイトボード

コーディング面接でPC使うケースもなくはないんですが、基本的にはホワイトボード使いますんで、買っちゃいましょう。練習なしでいきなりホワイトボードにソースコード書け、とか言われても難しいものです。練習あるのみ。ただ書くだけじゃなくて、Think Out Loudですよ。ホワイトボードで問題解ければ、PCで解くのは造作も無いでしょう(電話面接は、PC使ってコーディングするケースが多い)。

イケアの子ども用ホワイトボード、$14.99。なかなか良いです。でも、これだけだと書ける面積がちょっと狭い。

私は、このイケアのに加えて、50cmx70cmくらいのホワイトボードを壁に立てかけて練習しました(Expo Dry Erase Markerを5本使いきった)。

ウェブサイト

本に載ってる問題をホワイトボードで練習するわけですが、以下のサイトで、お目当ての会社の問題を探して練習するのもいいです。まぁ、本に載ってる問題同様、出るも八卦でないも八卦ですけど。面接体験談なんかも読めます。