JavaRush /Java Blog /Random-JA /技術面接での曲技飛行: Google、Microsoft などに入社した経緯

技術面接での曲技飛行: Google、Microsoft などに入社した経緯

Random-JA グループに公開済み
Medium のスタートアップ コミュニティの記事「Ace Your Technical Interview: What Got Me Into Google, Microsoft and More」の翻訳と翻案です。 技術面接での曲技飛行: Google、Microsoft などに入社した経緯 - 1インターンシップの最初の面接までは、技術的な質問もされるとは思いませんでした。「あなた自身について教えてください」という質問がたくさん待っているだけだと思っていました。しかし、私もそれらに対して適切な準備をしていませんでした。私は進路指導センターで 2 時間、皆さんから貴重なアドバイスを得るのに費やし、さらに 2 時間は家でさまざまな質問に対する答えを練習しました。しかし、私が面接に来たとき、面接官は私の長所と短所については尋ねませんでした。代わりに、私はマーカーを渡され、ボードに行くように言われました。そして、最初に私の技術スキルをチェックされるとは思いもしませんでした。これには驚きました。質問に正しく答えることができず、数時間後に丁寧なお断りのメールを受け取りました。幸いなことに、この事件の後、私は多くの面接に成功しました。私はこれまでに 50 回の技術面接を受け、多くの友人に面接の準備をしてもらいました。私のアプローチは非常にうまく機能しているようで、私や他の人が Google、Microsoft、Apple、Amazon などの企業の面接で成功するのに役立ちました。私は個人的にみんなを助けたいのですが、それには時間がまったく足りません。私にできる最善のことは、技術面接に合格するためのステップバイステップのガイドを共有することです。そのような状況で何ができるのか、何ができないのかを試行錯誤しながら学びました。そこで、私が数年間の実践を通じてまとめた、役立つヒントのリストをここに示します。

1. いきなり模擬面接に参加しないでください。

通常、できるだけ多くの模擬面接を行うことを勧めますが、それは正しいです。しかし、準備ができていない場合、模擬面接は効果がなく、威圧的であり、さらには士気を低下させる可能性があります。経験から言えますが、練習としてまったく準備ができていない人にインタビューすると、質問が「浮いて」しまい、あまりうまく答えられなかったため、最終的にはやる気を失ってしまうのです。時間をかけて準備を整え、技術面接がどのようなものかを理解してください。Google での模擬面接の良い例を次に示します。

2. コミュニケーションスキル>技術研修のレベル

多くの人が LeetCode や Hackerrank などのサイトで何時間も費やして技術面接の準備をしています。これらは練習に最適なプラットフォームです。しかし、面接で直面すると思われる問題を無計画に解決して何時間も無駄にする前に、少し休んだほうがよいでしょう。これは非効率なアプローチです。面接では、これまで見たことのない質問が少なくとも 1 つ出てくるでしょう。私の友人の中には私よりも強いプログラマーがいます。そして、彼らが(時々)合格しないのに、なぜ私が技術的背景のテストに合格したのかにしばしば驚かされました。私たちとの最大の違いは、おそらくコミュニケーションスキルの練習に多くの時間を費やしたことでしょう。真面目な話、トップ 100 の技術的タスクの解決方法を知っていても、解決策のロジックを明確に説明できなければ役に立ちません。思考を組み立てることを学ぶことは非常に重要です。最初は、これらすべてが難しく、ぎこちなく、不自然に思えるかもしれませんが、練習すれば役に立ちます。技術的な背景を常に最新の状態に保つことは重要ですが、コミュニケーション スキルを開発することはおそらくさらに重要です。次の面接までに時間がない場合は、コンピューター サイエンスの分野で 2 年間かけて勉強した内容を 2 日でやり直すよりも、コミュニケーションに集中した方が良いでしょう。次の技術面接の前に、次のことを学んでみてください。

2.1 明確な質問をする方法を学ぶ

面接の主な利点の 1 つは、尋ねられた質問を明確にできることです。通常、インタビューを行う人はすべての情報を提供するわけではないため、そこから追加の詳細を抽出する必要があります。問題が何であるかを完全に理解していなければ、問題を解決することはできません。練習するには、技術面接からいくつかの質問を取り出し、それらを明確にするための一連の質問を考えてみます。たとえば、リストを並べ替えるように求められた場合は、次のように尋ねることができます。
  • リストを昇順または降順に並べ替えるにはどうすればよいですか?
  • リストにはどのような種類のデータが含まれますか?
  • このタイプのタスクのデータ入力と出力がどのようなものであるべきかの例を挙げていただけますか?
  • 等。
さらに多くの質問があるかもしれませんが、これらはほんの数例です。さまざまなニュアンスを明確にするようにしてください。入力と出力の例を尋ねます。
  • データ型を指定します
  • 値の範囲に制限があるかどうかを確認してください
  • エッジケースに対処する必要があるかどうかを尋ねる
  • プログラミングしている言語の特定のライブラリと機能を使用できるかどうかを確認する

2.2 考えを表現することを学ぶ

すべての明確な質問をし、問題を解決するために何が必要かを正確に把握したら、次は解決策の本質を適切に伝える方法を学びます。途中でなぜそれを行うのかを説明せずに、ただコードを書き始めた場合、面接官はそれが正しいか間違っているかを判断するのが難しくなります。これではポイントを獲得できません。言うまでもなく、間違った解決策を書いてしまう可能性もあります。途中であなたの決定の背後にある論理を説明すると、あなたが少しコースから外れても、面接官はあなたを正しい方向に導くことができます。コードを記述する前に、次のことを試してください。
  • 考えられる解決策について対話者に伝えてください。問題を「正面から」解決できるか、それは可能ですか、あるいは何らかの方法で改善できるでしょうか。
  • 例を使用してソリューションを段階的に説明し、それがどのように機能するかの概要を理解します。
  • 解決策をいくつかのステップに分割し、面接官があなたの思考プロセスを理解できるように疑似コードまたは「スケルトン」を作成します。
  • さまざまなエッジ ケースでソリューションをテストし、すべてをカバーしているかどうかを確認します。面接官の意見を聞いてください。
練習するには、よく練られた面接の質問を受けて、正しい答え (解決策) を友人に伝えてみてください。友達が見つからない場合は、ぬいぐるみなどを持ってきて練習してください。

3. 技術的な知識とスキルを向上させる

面接での正しいコミュニケーション方法を習得したら、技術知識の向上に全力を注ぐことができます。アルゴリズムとデータ構造を必ずブラッシュアップしてください。データ構造、並べ替え、アルゴリズムの操作、ビットごとの演算子、Big O 表記法などの重要なトピックを必ず理解してください。知っておくべきことのリストは、応募するポジションによって異なります。

4. 練習してみよう!

必要なスキルと知識をアップグレードしたら、実践に全力を注ぐことができます。
JavaRush コースには、アプリケーション ソリューションを作成するための多くの「パズル」タスクとプロジェクト全体が含まれています。
ただ解決策を書くだけでなく、段階を踏んで考えるようにしてください。心の中で明確な質問をし、構造をよく考えてから、解決策を書きましょう。これにより、面接でさらに自信を持てるようになります。自信が何より大切です。

5. 面接中に「行き詰まった」場合はどうすればよいですか?

さて、実際の面接に入って、突然質問につまづいていることに気づいたと想像してみましょう。何をしなければならないのか、どうすれば問題を解決できるのかがわかりません。そのまま部屋から出て行って、戻ってこないようにしたいのです。わかります - 私は今でも悪夢のような状況に遭遇しました。しかし、心配しないでください。まだすべての希望が失われているわけではありません。このようなことは面接中に何度かありましたが、たいていは内定で終わりました。難しくて神経質になりますが、何でも可能です。 休憩して考えてください。息を吸って、自分の考えを整理してください。もしかしたら「ヒント」が見つかるかも知れません。 簡単な例を使用してソリューションをテストします。段階的なアクションに注意しながら、同様の問題に対する解決策の簡略版を作成してみてください。ただし、より単純です。たとえば、リストを並べ替える必要がある場合、どうしますか? 最小の数値を見つけて先頭に置きます。このソリューションをコードでどのように実装しますか? 民間のソリューションについて教えてください。完全な解決策が見つからなくても、それは問題ありません。面接官にこのことを伝え、同時にあなたの思考の流れに面接官も参加してもらいましょう。この課題はあなたがこれまでに遭遇した課題と似ていますか? それを解決するには特定のデータ構造を使用する必要があるようですか? あなたを導くロジックを共有します。 正直に言ってください。あなたが尋ねられた質問が、あなたにとってなじみのない知識分野からのものであると確信できる場合は、それについて面接官に伝えてください。解決策を探す準備はできているが、必要なスキルがまだないことを伝えます。以前、ネットワーク セキュリティに関する質問を受けたことがあります。当時、私はこの分野の練習をしていなかったので、面接官にそのことを話しました。彼らは私がその仕事に対処できるように必要な基本を説明してくれました。あなたは本物の人々にインタビューされます:) 彼ら自身も同じような状況にあったため、あなたのことを完全に理解しています。これらはすべて、私が数年間のインタビューを通じて開発したヒントです。彼らは私と私の友人がトップ企業に入るのを助けてくれました。頑張って検索してください!
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION