パジャマに足を踏み入れてからプログラミングを始めていても、放課後の最初の就職活動のバレルに直面していても、技術面接はあなたとあなたの夢の仕事の間の恐ろしいハードルになります。
しかし、恐れないでください。あなたのスキルを披露する準備をしてください。 以下に、技術面接に役立ついくつかのヒントを紹介します。
面接前
本を入手する
インタビューの前にできるだけ早く(私はわずか2週間しか管理していませんが)、準備を始めます。 準備書を読むと、アルゴリズムとデータ構造の知識が更新されるだけでなく、問題解決の正しい考え方にもなります。
最も重要なことは、あなたのレベルと興味に合った適切な準備書を選ぶことです。 コーディングインタビューをクラックすることは素晴らしいリソースですが、まだ十分な経験のあるプログラマーでない場合、経験を補うことはできません。 始めたばかりの場合は、「 プログラミングインタビューの公開:次の仕事を上陸させる秘 as」のように、さらに多くのマイレージを得ることができます。 そして、より多くの経験を持つ人々のために、より専門的で高度な本がたくさんあります。
練習が完璧に
練習のようにパニックに勝るものはほとんどないので、できる限りホワイトボードを開始します。本当に小さな問題でも。 コーディング面接の本は、ほぼ無限のサンプル問題を提供しますが、すでに取り組んでいる問題を使用することもできます。 自分に問題を提起し(または、より現実的なセットアップのために、技術的に傾倒した友人にあなたにそれを提起するように頼みます)、戦略を計画し、マーカーを乾式消去ボードに置きます。 自宅でその空白のボードをマークアップすることに慣れていればいるほど、面接にheすることは少なくなります。
時間に余裕がなく、すぐに揺れを乗り越えたい場合は、実際のインタビューにはないプレッシャーを加えることができます。 自分に時間制限を与えたり、面接官の役割を果たしている尊敬している人がいる場合、本当の取引は一片のように感じられます。
過負荷にならないでください
面接のスケジュールを立てるときは、各面接の間に少なくとも数時間を残してください。 これは最初の世界の問題のように聞こえますが、1日に複数のインタビューを受けたときはいつでも、パフォーマンスがあまり良くありませんでした。 次の時間に間に合うか心配するか、数時間前にすでにロジックを使い切っていました。
ああ、そして睡眠を取りなさい。 これはあなたのお母さんがあなたに言うことのように聞こえますが、睡眠不足のようなあなたのゲームからあなたをスローするものはほとんどありません。 酔っ払ってるのに匹敵します。
インタビューで
何にでも備える
インタビューに参加したら、いくつかの異なる種類の問題解決に備える必要があります。 インタビュアーは、問題の解決方法について話すように頼むかもしれませんし、コンピューターを開いてコードの作成をガイドするように頼むかもしれませんし、ホワイトボードに自分でコードを書いてもらうかもしれません。 バリエーションに備え、詳細につまずかないでください! インタビュアーがどの方法を使用しているかに関係なく、彼らが本当にテストしているのはあなたの問題解決スキルです。
質問をする
問題が提示されたら、それをよく考えて、返品を求められているものを完全に理解してください。 不明な点がある場合は、早めに質問することを恐れないでください。 たとえば、エッジケースがある場合は、インタビュアーがどのように処理するかを尋ねます。 例外をスローする必要がありますか? ブレーク?
また、インタビュアーが探しているものとあなたの制約が何であるかを理解するために、手続き上の質問をするようにしてください。例えば、「あなたに私のソリューションを提供したい特定の言語はありますか?」または「 Pythonライブラリへ?」
そして、仮定をしないでください。 たとえそれが安全だと確信していても、あなたが考えていることを大声で言ってください。そうすれば、面接官はあなたが何かを見逃しているかどうかをあなたに知らせることができます。
ゆっくりしてください
尋ねられている質問を理解したら、問題の解決を開始する前に考えて処理するのに少し時間をかけることを恐れないでください。 知識ベースの素早い質問に悩まされていない限り、質問された後に一時停止するのは良いことです。 もちろん、一言も言わずに頭の中で10分かけて問題を解決しないようにしてください。 重要なのは、マーカーをホワイトボードにタッチする前に頭の中にすべてのコードを書き込もうとするのではなく、時間を前もってアプローチを構築することです。
全体像を考える
最初に問題の全体像を考えてください。 インタビュアーに自分が何をしていて、後で戻って実際にコーディングするつもりであると伝える限り、構造全体を擬似コーディングしても構いません。 問題の整理をオフロードする良い方法ですので、あなたの脳はより多くの処理の余地があります。 これは、最終的に時間切れになった場合にも役立ちます。 面接官は、たとえあなたが詳細に到達しなかったとしても、少なくともあなたがどのようにタスクを完了することを計画したかを知っているでしょう。
また、問題が自然に頭に浮かぶ場合を除き、最初に問題を解決する最も効率的な方法を見つけることを心配しないでください。 効率の低いソリューションを見つけて、それがなぜ理想的ではないのかを話し合います。 次に、時間があれば、またはそれを解決するより良い方法を見つけたら、より時間またはスペースに優しいアルゴリズムに進んでください。 効率の悪いバージョンを完成させて、それをどのように改善するかを説明するだけの時間があったとしても、それは悪い答えではありません。
話して
最も重要なこと:トーク。 あなたの問題解決にあなたと一緒にあなたのインタビュアーを持参してください。 これは、実行中に何をしようとしているのかを概説するか(「このリストのすべての項目を反復処理するためにforループが必要です」)、または自分自身に問題を提起するのと同じくらい簡単です。 go(「これは、情報にアクセスするためのより良い方法が必要だということを意味します。うーん、後でそれに戻ります」)。
あなたの思考プロセスを通して話すことは、あなたのインタビュアーにあなたがどのように考えるかへの窓を与えます、そしてそれは最終的にインタビューのポイントです。 あなたのソリューションが素晴らしいと思ったとしても、彼らが問題にどのようにアプローチし、答えに到達したかを知ることは、本格的な答えを見て、そこにあなたを導いたものについての手掛かりを持たないよりも良いです。 また、立ち往生している場合や行き止まりの道を進んでいる場合に、インタビュアーがあなたを助ける機会を提供します。
あなたの人々のスキルを持ち込む
あなたがエンジニアリングの仕事に行くからといって、あなたが人格的で責任があることを怠ることができるというわけではありません。 私は、彼らが文化にふさわしくない、または悪い態度を持っていたために雇われなかった素晴らしいプログラマーの恐怖物語を聞いたことがあります。 あなたもいると思います。 あの人にならないでください。
好奇心と熱意はどの従業員でも尊敬され、開発者も同じです。 会社のエンジニアリングチーム、そのスタック、および製品に取り組んでいる最も困難な問題について質問します。 もちろん、熱狂的であることと共演者であることの間には微妙な境界線がありますので、本物のままにしてください。しかし、誰もが彼または彼女が取り組んでいる製品に興味がある候補者を愛しています。
新しいことを学ぶ
最後に、インタビュー対象者が最もよく見逃すことの1つは、学習の機会です。 できれば、各インタビューで新しいことを学んでください。新しいアイデアや新しいツールを習得するか、興味深い製品や技術についての洞察を得ることができます。 このように面接について考えるほど、長期的にはあなたにとってその時間がより重要になります。