Google の面接について書かれたブログ記事が面白かったので翻訳してみました。

原著者の許可取得済み。(Thank you, Petris!)





二次面接(電話)

二次の電話面接は Google のエンジニアと行われた。彼は広告チームという AdSense や AdWords、そして他の広告ツールを受け持っているチームで働いているとのことだった。 面接は非常に技術的で、コンピュータメモリに収まりきらない大きなデータに関するアルゴリズムの問題から始まった。ぼくは自分だったらどうやってこの問題を切り抜け、どのデータ構造とアルゴリズムを使うか正確に話した。彼はぼくに、考えてることを声に出してほしいとも言ってきた(*)。面接は次のような質問で続いた。データ構造、DNS、TCPプロトコル、TCPにおけるセキュリティの脆弱性、一般的なネットワーク、そして Google 自身について。申し訳ないけど、これ以上細かく公表することはできない。 (*訳注 思考の過程を説明してほしいと言っている？) 面接の後、そのエンジニアはぼくに結果を書く必要があった。それは好意的なもので、そしてぼくは次の面接にとりかかった。





四次面接(現地)

四次面接はとうとう Googleplex で行われた！ 10時にリクルーターと会い、面接について15分間の打ち合わせをした。彼はぼくに次のことを教えてくれた。今から2つのインタビューがあり、それから Google エンジニアの一人がぼくを Google のレストランに連れていってランチを食べ、その後3つの面接があるとのことだ。 10時15分、最初の面接が始まった。ぼくの今までの実務経験についてだった。過去に多くの実務経験があったので、ぼくが数年前に Linux 上で C でコーディングした物理的セキュリティ通報システムについて話すことにした。このシステムはシリアルポートからメッセージを受け取り、メールかSMSで送信するものだ。 面接の最後の数分で、彼は基本的な Unix ファイルシステムの質問をしてきた。 どの面接でもぼくは2つの大きなホワイトボードに文字を書いたり絵を描いたりしたんだ。 楽しかった！





五次面接(現地)

五次面接は11時に始まった。その面接はコーディングの時間で、現実のコーディングの問題ではなくひっかけ問題から始まった。ぼくはある問題の解決策を C で実装するように言われた。その解決策は1行の return 行がある数学的な式だった。大きなコーディングはなかった。それからぼくは非常に有名なデータ構造の実装を書くように言われた。コーディングのとき、ぼくはミスをしてしまって、malloc()したデータ構造の一部を初期化し忘れちゃった！ プログラムは実際にはセグメント違反を起こし、ぼくはそのエラーに気づいたんだけど、Google のエンジニアはそのことを非常に深刻に受け止めたんだ！ もし読者が面接を受けることがあったら、どんなミスも絶対にしないように！ この面接の後ぼくは二次(電話)面接の担当者だったエンジニアにランチに連れていってもらった。彼女は Google で2年間働いていて、とても楽しいと話してくれた。ぼく達はアジア料理レストラン(Googleplex 内にある)に行き、あらゆる種類のおいしい食べ物にありつけた。全部タダ！ その後彼女は Googleplex の中を色々と見せてくれた。何もかもが驚くことばかりだった。どこにでも無料の飲み物とキャンディがあり、アーケード機があったり、外ではビーチバレーができたり、他にもたくさんのびっくりするものがあった。





六次面接(現地)

六次面接は12時45分に始まった。トラブルシューティングとネットワークの面接だった。面接担当の人はネットワークダイアグラムをホワイトボードに描き、この図から読み取れる問題を考えるように言った。ぼくは問題を特定するために一連のネットワークに関する質問をする必要があった。彼は満足し、面接の最後の数分でネットワークデバイスに関する質問を投げかけた。





七次面接(現地)

七次面接は1時半に始まった。コーディングの時間だった。ぼくは単純な文字列操作サブルーチンを C か C++ で実装するように言われた。ぼくは C を選んだ。不幸にもぼくは off-by-one のミスをしてしまった。人類史上最もありふれたプログラミングミスだ。面接はこの一つの問題だけ行われた。



