今後のGoogleインタビュー、準備に関するアドバイスを募集中[終了]


29

さて、私はどこでも本を叩いています。ソフトウェアエンジニアのポジションについて、電話での最初のインタビューを予定しています。私はすべてのブログ記事を読み、インタビューのアカウント(かなり古い)をすべて読みました。Google自体も本の読書リストを提案しました。それでも、しばらく準備をした後、私はカバーするような大きな地面があるという気持ちを揺るがすことができず、私は深さで行くか幅広で行くかどうか決してわかりません。私は自分がcompsciの全領域を再学習しているのに気づきましたが、別の話に移る際に重要な詳細のほとんどを忘れてしまいました。

ですから、この質問に対する良い答えがあるかどうかはわかりませんが、インタビューの前の残りの数週間に取り組む方法についての実用的なアドバイスを探しています。私の脳の一部は詰め込みにうんざりしており、もちろん残りの部分は私の現在の職場でのいくつかの困難な問題に利用しなければなりません。


3
これは、carrieroverflow.com IMHOにより適しています。また、初心者、シニアなどの職位のレベルやあなたの経歴などを言っていないので、多くのことを想定しています。
vpit3833

3
@Fast Fish:冷静に言ってください。IQテストを受けて、135以上のGoogleを獲得した場合、またはGoogleを獲得しなかった場合は、それを持っていることがわかります。
Fanatic23

9
プログラマーのことだから、ここは素晴らしい。なぜより高い代表者がクォークに物事を分類し整理するのが好きなのですか?
ジョナサン。

3
すでに多くの就職面接の質問があります。あなたの質問はどう違いますか?あなたの答えが「Google」である場合、それはここに正しくない理由です。Googleのインタビューを扱っているサイトは無数にあり、それらの多くはこれよりも優れた情報を提供します。
ニコール

2
そして、あなたはあなたの今後のインタビュアーがP.SEに潜んでいないと思いますか?:)
ヘイレム

回答:


30

知っておくべきこと

  • Googleはあなたを雇いたいです!

    ソフトウェア会社の生命線は従業員であり、Googleも例外ではありません。最高で最も優秀な人材を採用することを目指しており、インタビューを行う人々は、あなたと同じようにあなたに引き継がせたいと思っています。

  • Googleは、できる限り正確に評価することをお勧めします。それは彼らの仕事です。

    Googleはデータ駆動型企業です。採用の決定は、マネージャーのフィアットによって決定されません。代わりに、各インタビュアーはインタビュー中に広範なメモを取り、パケットにまとめられます。その後、そのパケットは別の委員会によってレビューされ、最終的に決定されます。したがって、面接官の1人と「ゲル化」していなくても心配する必要はありません。重要なのは、インタビューでどれだけ上手くいくかです。

必要なスキル

インタビューの前に、次のスキル/テクニックを確認してください。これらについて直接質問されなくても、それらを確認することで、あなたの頭を正しい考え方に導くことができます。

  • データ構造

    配列とリンクリストの違いは何ですか?ツリーとグラフ?いつ他を使用しますか?それは速度/メモリのトレードオフにどのように影響しますか?

    インタビューの質問は、実用的なソリューションで終わるわけではありません。アプローチの実行時間と、どのようなトレードオフを行うことができるかを説明できます。たとえば、「すべてをキャッシュした場合、XギガバイトのRAMが必要になりますが、パフォーマンスが向上します...」。または、「操作の実行中にバイナリツリーをソートしたままにすると、Xは遅くなり、Yは速くなります」などです。

  • アルゴリズム

    基本的なグラフトラバーサルアルゴリズム、ツリートラバーサルアルゴリズム、および数値をソートするための2つの優れたアプローチ。

    動的プログラミングを使用して、重要な問題の解決を実践してください。難しいインタビューの質問に関しては、これがあなたの最高の穴です!

  • ハッシュテーブル

    これは巨大です。自分でハッシュテーブルを実装できることから、ハッシュ関数について知ること、バケットの数が素数である必要がある理由など、ハッシュテーブルについて知っていることをすべて知ってください。ハッシュテーブルに関連する概念は、コンピューターサイエンスのほぼすべての分野に関連しています。

  • あなた自身について話すこと

    インタビュアーとのチャットの最初の数分は、あなたを際立たせるあらゆる種類の経験を説明する重要な時間です。関連プロジェクト、重要な技術的成果など。覚えておいて、面接を行っている人は、あなたのような数百人の頭のいい人に面接をしているのです。だから、それは彼らを驚かせるでしょうか?

    たとえば、インタビューで、大学で囲gameのゲームをプレイするために書いたプログラムについてインタビューアーに話しました。Goのゲーム用にAIを記述することは非常に難しく、それを証明する恐ろしいGo-botがあります!一番下の行はあなた自身であり、プログラム方法を知っている賢い人ではありません。

ストレスをかけすぎないでください。他のインタビューと同じです。マンホールの蓋や山について愚かな質問をする人はいないので安心してください。富士山。


7

リラックス

あなたのインタビューが私のようなものであった場合、インタビュアーはあなたを服従させるためにそこにいるのではなく、彼はあなたがどう思うか見るためにそこにいます

編集:これは最初の電話インタビューでしたが、それ以上のことは知りません...もしそうなら、おそらくとにかく話すことができませんでした!


2
あなたは仕事を得ましたか?
マノジR

1
@マノジ:笑-いいえ、しかしそれはポイントではありません。私は彼らが面接する仕事を実際に望んでいませんでしたが、そのプロセスと機会について興味がありました。私はカリフォルニアに移るつもりがなかった/持っていない!
スティーブンA.ロウ

2

http://get-that-job-at-google.blogspot.in/から次の記事を借りました

コーディング知識 C / C ++およびJavaは、Googleインタビュアーに推奨されるプログラミング言語です。少なくとも1つは本当によく知っている必要があります。電話スクリーンインタビューとオンサイトインタビューでもコードを書くことが期待されます。

CSインタビューの推奨書籍:アルゴリズムの紹介-Cormen作成

番組インタビューの公開

コーディングインタビューの解読

面接のアルゴリズム

コーディング実践のための推奨ウェブサイト:InterviewStreet、Topcoder

Big-Oこれは、アルゴリズムインタビューの準備の出発点となるはずです。雇用されないことを保証するため、基本的な複雑さの分析に苦労してはいけません。O、Θ、およびΩの表記をよく理解している必要があります。データ構造とアルゴリズムの本から複雑性分析のセクションを読むことをお勧めします。

ソート QuickSortやMergeSortなどのアルゴリズムO(n * lgn)を簡単に作成できるはずです。最高、最悪、平均のケースの複雑さを比較して理解します。wikiのこの表は非常に便利であることがわかりました。すべてのソートアルゴリズムの重要なプロパティをリストします。バブルソートや挿入ソートなどの基本的なO(n ^ 2)アルゴリズムを無視しないでください。他のアルゴリズムがこれらを改善するからです。インタビューは基本的な考え方を改善することに関するものであり、ソートプロセスはこのプロセスに役立ちます。

ハッシュテーブル疑問がある場合は、ハッシュテーブルについて考えてください。それらはほとんどの問題で役立ち、結果をキャッシュすることで一部の問題の時間の複雑さを改善するのにしばしば役立ちます。

ツリー基本的なツリー構築、トラバーサル、および操作アルゴリズムを実行します。バイナリ検索ツリーに基づいたアルゴリズムを実装できるはずです。インタビューではバランスの取れたツリーに精通している必要がありますが、インタビューではAVLツリー、赤黒ツリー、トライ、n進ツリーなどのコードを書くことは想定されていません。これらのトラバーサルの1つに簡単な変更を加えることで、多くのツリーの問題を解決できます。

グラフ グラフは、コンピューターサイエンスの非常に重要な概念です。グラフの3つの基本的な表現(オブジェクトとポインター、マトリックス、隣接リスト)を練習し、それらの長所と短所を理解します。インタビュー中はあまり時間がないので、非常に複雑なことを期待しないでください。ただし、基本的なグラフトラバーサルアルゴリズム(DFSおよびBFS)は必須であり、すべての基本的な表現で実装する必要があります。DijkstraまたはFloyd-Warshallアルゴリズムと最小スパニングツリーアルゴリズム(KruskalおよびPrim)を実装できる必要があります。トポロジカルソートについて学習します。これは、多くの順序付けの問題で驚くほど非常に役立つためです。

動的プログラミングこれは、実装が小さいため、おそらく最も重要な主題です。35〜40分の間に2〜3個の動的アルゴリズムを実装できるはずです。このブログまたはWebでリソースを確認すると、インタビューごとに少なくとも1つの動的プログラミングの質問が予想されるはずです。

オペレーティングシステムプロセス、スレッド、および同時実行の問題について学習します。ミューテックス、セマフォ、モニター、およびそれらの機能について理解します。デッドロックとライブロックとは何か、それらを回避する方法を理解する。コンテキストの切り替え、スケジューリングなどについて学びます。

数学数え方、組み合わせ論、確率に慣れる必要があります。

Googleの出版物時間があれば、下記のGoogleの革新的な出版をお読みください。Googleファイルシステム

Google Bigtable

Google MapReduce


ここに関連するテキストを投稿し、リンク腐敗を避けてください。
致命的な

申し訳ありませんが、このフォーラムは初めてです。私は答えを改善しました
-chinmay

1
「... Java ... Googleに適したプログラミング言語」私はそれを知りませんでした。Chromeが他のブラウザーの3倍のリソースを使用する理由を説明します。(ノックをノックします。誰がいますか?...長い一時停止... Java!)
ジョシュキャンベル

1

過去2か月をキャリアカップで過ごしたなら、リラックスする余裕があります。インタビューのその瞬間に何が起こるかを計画することはできませんが、リラックスして、ラウンドを持続するエネルギーを持っている方が良いでしょう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.