こんにちは、モントリオール在住エンジニアのHaru(@hathle)です。
Microsoftバンクーバーでコーディング面接を経験しましたので、対策を紹介したいと思います。
Google、Microsoft、Apple、Amazon、Facebook、Twitterなどの有名IT企業ではコーディング面接を採用しています。
大企業以外の中小企業でも海外ではコーディング面接が普通にあると思います。
そのため、内定をもらうためには、しっかりと基本を理解し、コーディング面接の準備をする必要があります。
Contents
面接の流れ
Microsoftバンクーバーへのアプライ方法
MicrosoftのHPからMixed Realityを実現するHololensチームにSoftware Engineerとしてアプライしました。
履歴書とカバーレターが必要になります。
Hololensをより理解するためにMicrosoftで行われた説明会にも参加しました。
一次面接
MicrosoftのHRと電話でインタビューを受けました。
時間は30分ぐらいで、今までの経歴や志望動機など、難しい質問は特にありませんでした。
エンジニアとして8年間働いていたので、興味をもってもらい一次面接は合格することができました。
二次面接
二次面接は、Hololensチームのスーパーバイザーと面接でした。
通常面接
最初の20分くらいは通常の面接でした。一般的な経歴や志望動機、興味があること、Microsoftで何がしたいかなど聞かれました。
そのあと、面接官が問題をホワイトボードに記載して、コーティング面接が始まります。
コーディング面接
コーディング時間は30分でした。アルゴリズムを導き出す問題で、複雑な問題ではなかったです。
プログラミング言語は自由に選べたので、Pythonを選択しました。
事前準備をしっかり行ったので、アルゴリズムをひらめくことができて、問題を解くことができました。
最後の10分はアルゴリズムの説明をして、面接が終了となりました。
結果
残念ながらMicrosoftからは内定をもらうことはできませんでしたが、次の面接に繋げることができたと思っています。
コーディング面接のポイント
コーディング面接で気をつけるポイントがありますので紹介します。
プログラミング言語
プログラミング言語は自分の得意な言語を選択しましょう。
Python、C、C++、Java、Rubyなど、なんでもいいと思いますが、コーディング面接向きの言語があります。
それは、Pythonです。
標準ライブラリも多いので、他の言語と比べると簡潔にまとめることができます。
Pythonの文字列操作は本当に簡単だと思います。
いきなりコーディングしない
コーディングする前に、必ず問題の理解があっていることを面接官と話して確認して下さい。
- 入力と出力はどんな値が入るのか
- 入力のレンジはどれくらいなのか
- 負の数はあるのか
問題の確認ができて、完全に理解することができたら、アルゴリズムを考えます。
アルゴリズムを考えたら、こういうことを考えていますと面接官に伝えるといいです。
キレイな文字を意識してコーディングをしましょう。
完成したら、いくつか自分でテストケースを用意して、バグがないか検証します。
さらに、リファクタリングして効率のいいコードにしましょう。
事前準備
大学時代の勉強から多くの知識を忘れている可能性があります。
アルゴリズムやデータ構造などの基本的なコンピュータサイエンスの知識をしっかりと復習しておきましょう。
どんな問題が来てもその場で考えて答えを導く力をつけておく必要があります。
練習と同じような問題が出てきたらラッキーなので、できる限り多くの問題を解いてください。
普段はコンピュータでコーディングをしていると思いますが、本番を想定して紙にコーディングすることをオススメします。
書くことに慣れておかないと、ホワイトボードでのコーディングに苦労します。
問題をたくさん解いて自身がついてきたら、アプライしてコーディング面接に挑みましょう。
コーディング面接対策サイト
LeetCodeが一番有名なコーディング面接対策サイトかと思います。
私も面接前にほとんどの問題を解きました。このサイトのおかげで自身がつきました。
例:フィボナッチ数列(Python)
1 2 3 4 5 6 7 8 9 10 11 12 |
def fib(): a, b = 1, 1 while True: yield a a, b = b, a + b for index, x in enumerate(fib()): if index == 10: break print("%s" % x) |
日本語のサイトではpaizaラーニングオススメです。
レベルがDからSランクまであり、Sランクまで到達できれば、ほとんどのコーディング面接はクリアできると思います。
コーディング面接対策書籍
オススメ書籍は間違いなくCRACKING the CODING INTERVIEWです。
書籍についてあとで記事にまとめたいと思います。
まとめ
- 海外のIT企業はコーディング面接があるので、必ず準備をすること。
- 何度も問題を解いて考える力をつけておくこと。
- ホワイトボードを想定して、紙に書いてコードを書くことをなれておくこと。
- コーディング面接では面接官としっかりとコミュニケーションをとって、理解の違いがないこと。
- コーディング面接も慣れてくると、楽しくなってきます。