重複の可能性:
インタビューの質問をプログラミングするための準備方法は?
誰かが技術面接の準備についてどのように行くかについての指針を教えてもらえますか? CSの卒業生として、私は次のトピックを徹底する必要があると思います:
データ構造:配列、リンクリスト、スタック、キュー、ヒープ、ハッシュテーブル、バイナリツリー、バイナリ検索ツリー、自己分散バイナリツリー(AVL、赤)ブラックツリー)、Bツリー、トライ/サフィックスツリー
アルゴリズム:ソート(バブルソート、挿入ソート、選択ソート、シェルソート、クイックソート、マージソート、外部ソート)、検索(線形および対数時間)検索)、グラフ理論(隣接リスト、隣接行列、DFS、BFS、トポロジカルソート)、動的プログラミング、貪欲アルゴリズム、分割統治。
Adhoc Algorithms:Select Algorithm、Fisher Yates Card Shuffle、Reservoir Sampling and list is endless。
データベース:SQLクエリ
プログラミングと設計:C、C++、Java、スクリプト言語(Perl、Python)、(OOPSの基本、仮想関数、深い浅いコピー、コピーコンストラクター、代入演算子、STL、メモリ管理、ポインタ/参照、インターフェース、抽象クラス
オペレーティングシステム:スレッド同期(Mutex、条件変数、セマフォ、デッドロック)、メモリ管理(セグメンテーション、ページング、TLB、キャッシュメカニズム)
また、これらのトピックをブラッシュアップするためにインターネットで入手できるリソースをすべて集めることができれば素晴らしいと思います。これらのいくつかを追加します。
リンクリストとツリー: http://cslibrary.stanford.edu/103/
これらのトピックの準備に役立つリソースを見つけるために私を助けてください。また、これらのトピックに追加していただければ幸いです。
それは本当にあなたが申請している仕事の種類に依存します。私はいくつかのインタビューを経て、さらに多くのことを行いました。ここにいくつかのヒントがあります。
お役に立てば幸いです。幸運を!
これ 本は過去に私にとって非常に役に立ちました。特に私がちょうど学校を卒業したとき。
編集:それは「公開されたプログラミングインタビュー:次の仕事の着陸の秘訣、第2版(プログラマーからプログラマー)」と呼ばれます。
リストの項目をできるだけ多く知っておくのは良いことですが、私がインタビューを手伝うときは、項目を知っているかどうかをすぐに確認します。私たちは興味があり、あなたが知っているほどよくなりますが、特定の問題でデータ構造を選択する理由や、ミューテックスではなくセマフォを使用する時期などを十分に理解していればなおさらです。
それに加えて、過去の作品のサンプルを持ち込んでいただいた方も大歓迎です。これを行う場合は、必ずよく理解してください。つまり、本当に理解していない限り、コードの大部分が他の人によって書かれた「チーム」として行ったものを持ち込まないでください。なぜアルゴリズムを選択したのか、どのような制約の下で作業していたのかなどを説明できるように準備してください。
あなたがリストしたもののほとんどは直接インタビューで出てくることはありません。あなたはあなたの経歴に基づいてそれのほとんどを知っていると仮定されます。あなたが示す必要があるのは、知識ではなくスキルであり、仕事をします。のようなもの:
これらのことはどれも、実際に「調査」することはできず、実践することしかできません。練習すればするほど良くなりますが、常に覚えておいてください。「練習が完璧になる」ではなく、「完璧な練習が完璧になる」ということです。単にそれを行うだけでなく、常に正しく行うことを練習してください。
幸運を!!