Subscribed unsubscribe Subscribe Subscribe

ジャバ・ザ・ハットリの日記

日本→シンガポール→ベルリンへと家族と共に流れ着き、ベルリンのスタートアップで働くソフトウェアエンジニアの日記

エンジニアの海外転職において避けては通れないコーディングインタビューとその対策

海外スタートアップ事情 海外転職 英語 書評 シンガポール生活

英語がバリバリのネイティブでない限り、日本人エンジニアが海外転職の際にもっとも苦戦するのがコーディングインタビューだろう。その内容と対策方法をまとめた。

あらかじめ書いておくが、私のコーディングインタビューの戦歴は人に誇れるようなモンじゃない。むしろ苦戦した方だ。最初に海外転職した時はなんとか通過できたが、その次に転職する際はこのコーディングインタビューでかなり苦戦した。2回目の転職の際に出会った本でちょっとだけ救われた。それがこれ。(私が買ったのは古い方)。

Cracking the Coding Interview: 150 Programming Questions and Solutions

Cracking the Coding Interview: 150 Programming Questions and Solutions

  • 作者: Gayle Laakmann Mcdowell
  • 出版社/メーカー: Lightning Source Inc
  • 発売日: 2011/05/20
  • メディア: ペーパーバック
  • 購入: 3人 クリック: 16回
  • この商品を含むブログを見る

日本語版も出ているようだが、本当に海外転職を目指すのであれば日本語版はオススメしない。日本語版ではきっとコーディングインタビューの難しさが実感できないからだ。

世界で闘うプログラミング力を鍛える150問 トップIT企業のプログラマになるための本

世界で闘うプログラミング力を鍛える150問 トップIT企業のプログラマになるための本


この本をいきなり読んでも「は?」とならないためにコーディングインタビューの予備知識を実体験を交えてここに書く。

今では日本のスタートアップなんかの転職面談ではやっているのかもしれない。だが私は日本に居た時に同種の面接を受けたことは1回も無い。
それに検索エンジンに日本語で「コーディングインタビュー」とか入れてもそれらしいのがあまりヒットしない。その代わり英語で入れたら、わんさとその対策本やら攻略方がヒットする。

このことからも分かるように英語圏のITエンジニア職へ応募するにあたってコーディングインタビューはほぼ必須と言っていい。私が面接官として応募者をインタビューする際にも必ずやっている。
(ここで言うのは外国の会社だ。日系企業の海外支店は別。日系企業というのは場所が海外にあっても中身は普通の日本企業と考えていただいて大筋では間違っていない。)

そのコーディングインタビューとはだいたいこんな感じだ。

  • 面接をするのは常にエンジニア。現役エンジニアが応募者の技術レベルを査定するため。人事は出てこない。
  • 「弊社を志望された動機は?」とか面倒な質問はしない。最初から最後まで技術質問のみ
  • 時間はだいたい1時間から2時間ぐらい。極端にダメだとすぐに退場
  • コンピューターは使わずにホワイトボードを使う。
  • まずカンタンなアルゴリズム問題を出して、コードを書いてもらう。だいたい5行ぐらい。これは軽い肩慣らし
  • 次に面接官が本気で用意しておいたメインの問題を出して、応募者に解決してもらう
  • だいたいはいきなり正解にはならないので、いろいろ話し合って面接官も意見を言いながら協同でコードを完成させる
  • 細かいデバッグとかはしない。ホワイトボードに書いたコードのデバッグなんて誰もやらない

もっと雰囲気が知りたければ以下の動画でご確認ください。だいたいこんな感じ。

www.youtube.com

このビデオを観て「あー余裕だわ」と思われた方に言いたい。いやいや実際に参加してみるのとモニター越しに他人がやってるのを横から眺めているのとではまったく違うんですよ、と。
上記のビデオでもあるように目の前に髪の色、眼の色がまったく違うネーチャンとかがペラペラ英語でしゃべってくるのだ。ちょっとした仕草も表情もジェスチャーもまったく非日本人的で、なんか落ち着かない気分を味わう。そんな中で小難しいコードをいきなり「書け!」また「書きながら英語しゃべれ!」と言われても、ある程度慣れてないと100%自分の実力を発揮できないのだ。
優秀なエンジニアであったとしても、ぶっつけ本番で挑むと、英語がネイティブじゃないのも手伝ってなんかぎこちなくてイケてないエンジニア風になってしまう。決して「イケてない」とは言ってない。「イケてない風」になるのだ。これがどんなに恐ろしいか、は体験した人にはよく分かると思う。私も何度もこのコーディングインタビューを受けて、その帰り道に「なんであんなにイケてない風になってしまうんだろ。オレはあんなんじゃないんだけどな。。。」と悩んだ。

結論としては「慣れろ」のひとことで終わってしまう。が、ここで言いたいのはその「慣れるまでの時間」を短縮する方法だ。本番の面接コーディングインタビューを繰り返して慣れるのでは時間がかかり過ぎるし、候補先をツブすことになって、大きな無駄が発生する。
その点、「Cracking the Tech Career」にはコーディングインタビューを突破するためのコツなんかも記載されており、とても参考になった。この本でそのエッセンスを掴み、あとは以下の記事でオススメした英語のコーディングサイトを使って練習するのがいいと思う。

tango-ruby.hatenablog.com


TOEICのスコアにやっきになるより、よほど海外転職への近道であることは断言できる。

あともうひとつアドバイスとしてはクソ問題に出会った時のこと。問題が解ける解けない以前にその質として「?」なこともあると思う。優秀な応募者が「それってそもそも問題としてどうなの?」と思ってしまうパターンだ。しかしどんなに「このクソ問題が!」と思っても、それを言葉はもちろん顔の表情にも出さないように。ほとんどの場合、

そのクソ問題を考え出したのは、あなたの目の前にいるそいつだからだ。

まーその会社のエンジニアレベルが知れると思って、そこはグッと飲み込みましょう。
 
その他のエンジニアの転職のコツとか書いてる本

tango-ruby.hatenablog.com

tango-ruby.hatenablog.com

tango-ruby.hatenablog.com