6技術的なインタビュー苦難は、完全に練習によって解決されました


この記事は、最初にTriplebyte blogに現れ、ジョセフパキオによって書かれました.ジョセフは、バックエンドからモバイルまで、低レベルのシステムに至るまで、1400以上の技術的なインタビューを実施しているソフトウェアエンジニアです.彼はすべての風変わりな、しゃっくり、そしてあなたが考えることができる一種類の強さを見ているし、彼がエンジニアが成長するために学んだものを共有したい.
技術的なインタビューは、あなたの知識と経験についてだけではありません.彼らは本当にsuboptimal状況であなたのskillsetの特定の部分を示しています.

Related: The best, worst, and most interesting moments from my marathon month of technical interviews


すなわち、技術的なインタビュー自体が通過するために必要なスキルの全体のセットが含まれます.彼らが知識に自信を持っているならば、いくつかは全く準備しない間、候補は準備をするとき、しばしば特定の知識ギャップに集中します.彼らが実際には必要とされていない技術的なスキルが不足しているため、彼らは練習の不足のためだけで頻繁に頻繁に候補者が失敗して実現しない.ここでは、全体的には、実践によってではなく、経験と知識によって対処される技術的なインタビューの6つの機能があります.

人工時間圧


面接で経験したタイムプレッシャーの味は、あなたが仕事で経験した種類とはとても異なります.確かに、タイトな締め切りに使用するか、1日のコース上で複数の火災を出すことがあります.しかし、まれに(もしあれば)、あなたは問題が30または45分のコースで問題を解決するよう頼まれている状況があります.つまり、問題は計画された時間で始まります.その前に、あなたは詳細についてほとんど何も知りません.その後、タイマーを開始し、このブランドの新しい問題を記述するために文書を与えられている.そのポイントから、あなたは急速にすべての意味を消化し、時間がなくなると急停止する前にそれを解決することを期待している.それは私が今までに現実の世界でしたことのようではありません.
あなたが事前の経験なしでこの種の状況に飛び込むならば、あなたは多分窒息するつもりです.プロセス自体があなたのホイールハウスの中によくあるとしても、そのプロセスは不愉快で、偏見を感じるでしょう.しかし、あなたが繰り返しこのような状況に自分自身を公開する場合は、特定のキーの習慣がシンクを開始します.最終的には、すぐにタイマーを開始すると、問題の効率的な消化を可能にする戦略を活用して、限られた時間枠に適応する便利なショートカットを取って行動にスナップして自分自身を見つけるでしょう.これらはあなたがインタビュー中に初めての作業をしたいものではありませんし、準備ができているだけで繰り返し露出の機能です.

問題点


あなたが技術的なインタビューで解決するよう頼まれている問題の種類は、しばしばあなたが仕事に取り組むものと非常に異なっています.なぜならば、これらの問題はいくつかのスキルをテストする唯一の目的のために発明されているからである.ある会社はある時点で何らかの理由で価値があるのである.結果として、問題の前提は、しばしば問題として、要件は任意のように見えることができますが、スコープは、人工的な時間制約に収まるようにぎこちない傾向がある.
たとえば、端末を使っている端末にワープロを作成するように頼まれたことを想像してください.同様に、誰も再生したいこれまでの単純化されたゲームを実装想像してください.ちょうどこのような問題の絶え間ない無意味さは、時々本当の意味による現実の問題がちょうどそうでない方法で、我々をループに投げ込むことができます.

同様に、彼らはしばしば、彼らは技術的に現実世界のアプリケーションを持っているにもかかわらず、彼らが考え込むことができるようにアカデミックで抽象的な問題を与えている.Gayle Laakmannマクダウェルによって、Here's an exampleがそこで最も人気のある技術的なインタビュー準備資源のうちの1つから、Cracking the Coding Interview

Implement an algorithm to determine if a string has all unique characters. What if you can not use additional data structures?


今、これは誰かが現実世界の文脈でやりたいことかもしれません.問題は、彼らが問題を提示するとき、誰もその文脈に言及しなかったということです、それで、あなたはちょうど抽象化と動きの中に飛び込んでいなければなりません.それは慣れてきた.
現実の世界では、問題は意味を持ちます.彼らは実際のビジネスの懸念に対処し、現実世界のニーズと現実のユーザーのコンテキストで発生するために取り組んでいます.そして、それらの範囲は価値創造の一貫した大きい絵の範囲内で意味のある入れ子になります.これらのすべてのすべてのインタビューの問題はしばしば不足している生活を与える.
あなたは本当の問題を解決するのがウィザードであるかもしれません、しかし、インタビュースタイル問題に関して全く燃えさかる.インタビューで初めて覚えています.私の心は、なぜ私は地獄の誰もが私にこのような問題を解決することを求めるの意味を理解することができる前に数分間抗議した.しかし、その時までに、私の問題を終える可能性は急落しました.これを避ける唯一の方法は、彼らが第二の天性になるように、これらの問題の十分な数に自分自身を公開することです.彼らは非常に具体的なスタイルと構造を持って一度理解すると、すぐにどのような通常のコンテキストですが求められているものを介して迅速に動作するための基礎となる.

厄介な環境


あなたは携帯電話のデバイス上でのみ不満をあきらめて、あなたのラップトップ上でバックアップを選択するメールを開始したことがありますか?理論的には、英語の作家として、あなたは同じ単語を入力することができますので、同じくらいよく自分自身を表現することができるはずですか?悪い.あなたがフルサイズのキーボードで通信しているあなたの長い形のすべてをすることに慣れているならば、あなたは考えが摩擦なしで流れるのを許す習慣づけられた筋肉記憶の全部の経歴を持ちます.
同じ原理は、明らかに、コードに適用されます.あなたが特定の環境に慣れているならば、それは別のものでコード化するのが難しいでしょう.しかし、いくつかのインタビューは異なるデバイスとIDEを必要とするだけでなく、基本的にゼロのエンジニアがコードを書く方法でコードを書くようにします.繰り返しますが、あなたがコーディングしているものの内容を支配しているかもしれませんが、あなたが新しい環境を通じて決して感じたことがないならば、あなたは間違いなく摩擦に走ろうとしています、そして、それは完全にあなたのゲームからあなたを放すかもしれません.あなたはインタビューを取る前に新しい環境を知るようになる必要があります.

新しい言語で考える


あなたが最も頻繁に使用するプログラミング言語は必ずしもインタビューで使用するようになるものではありません.いくつかのインタビューでは、候補者の選択のためのオプションの有限集合を与えるか、まったく選択をしない.私は、会社が彼らがしばしば彼らがポリグロであると確認するために仕事でしばしば使うもの以外の言語を使用するために候補を必要としたインタビューを見ました.そして、たとえどんな言語でも選ぶことができるとしても、しばしばC +でコード化する多くのエンジニアは、Pythonのようなより柔軟で表現力豊かな言語で独占的にインタビューをします.
public void load_data() throws IOException {
    let url = URL(string: "...");
    File file = new File("...")
    std::*cout* << "This code is an abomination." << std::endl'
    ...
}
あなたが毎日現在使用しているもの以外の言語を使う必要がある可能性があるならば、あなたはインタビューの前にその言語で激しく練習する必要があります.それはすべての時間を使用するために使用されるあなたの好きな言語である場合は問題ではない.私は最後に数ヶ月前にPythonを使用してエンジニアを見てきた前に、現在の言語とそれを混同し、非常に基本的なことを行う方法を忘れないでください.あなたが重要な実行を通してインタビューの前に使用する言語の考え方に自分自身を取得しない場合は、いくつかの深刻なしゃっくりに実行することがあります.

5 .口頭の技術的概念


コードで技術的知識を適用することは、それを明瞭にすることができることと同じでありません.私たちは新しい技術的概念を学ぶために言語を使用していますが、彼らは最終的には役に立つことのポイントに作業理解を構成するためにシンクのすべての種類があります.そのように、いくつかの話題の合法的な専門家である候補者または他の人は、インタビュー(完全に神経質であることから離れて)で舌を舌で見つけます.それは、彼らが1つの話題またはもう一つを説明するために語を見つける必要がなかったので、それです.したがって、限られた時間と判断の目で、彼らは強迫的に技術的な語彙、解体された方法で現在の概念を、彼らは実際にあるかもしれないよりも知識の少ない方法が表示されます.
解決策は、あなたが話す練習することができます別のエンジニアを見つけることです.技術的概念を完全で一貫した物語で説明する試みそれから、それが彼らがあなたのすべてのベースをカバーしたかどうかについてのフィードバックを与える許可を与えてください.

観客のために行う


おそらく技術的なインタビューの単一の最も些細な機能は、コードを書いて、あなたのすべての動きを精査する1つまたは複数の他の質問に答えを検討しようとしています.最高に、これは気が散ることができ、最悪の場合、それは激しく不安を引き起こすことができます.頻繁に面接をしている候補者は、しばしば彼らのゲームをスローする最大の要因の一つとしてこれを引用している.今、それは完全に過去のawkwardnessを移動するのは難しいかもしれないが、実際には、少なくとも微妙に影響を軽減します.あなたは心配するかもしれませんが、少なくともあなたはそれに多少慣れています.あなたは少し気が散るかもしれませんが、少なくともあなたはまた、非常に初めての気晴らしの特定の種類を感じていない.私たちが何をするにしても、それが不愉快であっても、予想され、普通になるほど.だから、できるだけ頻繁にこれをしようとする-いずれかの同僚とのインタビュー環境を再現したり、実際のインタビューを取るときには必ずしも必要はありません-この要因はあなたの結果を持っている副作用で徐々にチップを離れてチップされます.
TripleByteは技術者が彼らの技術的な技術を評価して、展示するのを助けて、彼らをすばらしい機会でつなぎます.あなたはhereを開始することができます.