技術面接で避けるべき7つの間違い
公開: 2022-03-10私は多くの技術面接に失敗しました。 年々経ち、技術面接のスキルはゆっくりと進歩していきました。 Spotifyから夢の求人を受け取り、Googleの技術面接に合格するまで、これまでの数年間でどれだけ学んだかがわかりました。 ついに、私の勉強は報われました! これは、多くの開発者がCOVIDのために職を失い始めた頃でもありました。
「コンピュータサイエンスの学位を取得してデータ構造とアルゴリズムのインタビューを渡すのが難しい場合、独学の開発者にとってこれらの概念がどれほど圧倒的であるか想像できません」と私は思いました。 そのため、この1年間、データ構造とアルゴリズムをすべての人にとって親しみやすいものにすることが私の使命でした。
技術面接のプロセスについてすべてを学ぶための1つのリソースを見つけるのは非常に難しいと感じました。 採用担当者からの電話からシステムデザイン面接、求人交渉まで、総合的な技術面接資料がなかったので、作成することにしました。
リモートインタビューについてのメモ
世界的な大流行により、多くの企業が完全に遠隔地になりました。 これは、世界中の候補者が応募できるので素晴らしいことですが、オンライン面接の経験がほとんどまたはまったくない候補者にとっては気が遠くなる可能性があります。
仮想面接のヒントをいくつか紹介します。
- 早く着く。
オンライン会議に参加し、プログラムを実行するにはドライバーのパッケージ全体をダウンロードする必要があることに気付くほど、パニックを引き起こすものはありません。 事前に会議アプリケーションでアカウントを作成し、友人とテスト会議を実行して、アプリケーションにアクセスし、オンラインコントロールを快適に使用できることを確認することをお勧めします。 - ヘッドホンを使用してください。
リモートの技術面接には常にヘッドホンを使用することをお勧めします。 それらは、バックグラウンドノイズを低減し、インストラクターの声がはっきりと聞こえるようにするのに役立ちます。 - コンピューターを充電します。
リモートミーティングツールは、特にライブコーディングをしている場合、コンピュータのバッテリーをすぐに消耗させる可能性があります。 これに対抗するには、可能であれば、インタビュー全体を通してコンピュータを接続します。 - カメラをテストします。
リモートインタビューにより、安全で親しみやすい環境にいることができますが、ビデオフレームの背景から不快なアイテムを削除することを忘れることがよくあります。 私はいつもテストミーティングを実行してビデオフレームをチェックし、背景から汚れた洗濯物を取り除くことをお勧めします。 背景が理想的でない場合は、リモートインタビューに仮想背景を使用することもできます。
技術面接プロセス
会社との技術面接プロセスを開始するとき、採用担当者は、プロセスから何を期待すべきかについて通知する必要があります。 技術面接が非常に不安を誘発する理由の1つは、プロセスの標準化が欠如していることです。 ある会社での技術面接は、別の会社での技術面接とは非常に異なって見える場合があります。 ただし、準備できる技術面接プロセスにはいくつかの共通点があります。
これは、今後の面接で見られる可能性が高い技術面接プロセスの一般化されたバージョンです。
採用担当者の電話インタビュー
最初の面接は、採用担当者の電話面接になります。 この電話では、仕事、会社、面接プロセスから何が期待できるかについて話し合います。 この面接を軽視しないでください。技術面接プロセスのすべての面接は、求人を上陸させるために不可欠です。 あなたがその役割に興奮していないようであれば、採用担当者はあなたをプロセスの次の段階に進めないかもしれません。
さまざまな求人に応募する場合は、役割、会社、採用担当者情報、および関連情報のスプレッドシートを保管しておくことをお勧めします。 十分な情報を得て、素晴らしい印象を残すために、採用担当者の電話面接の前にメモを参照する必要があります。
テクニカルスクリーニング
採用担当者の電話面接がうまくいけば、技術的なスクリーニング面接に移る可能性があります。 このインタビューは、人間のインタビュアーと対話せず、代わりに時間制限のあるプラットフォームでコーディングチャレンジを完了する非同期の場合もあれば、ライブインタビュアーがいる場合もあります。
企業は通常、候補者が役割で成功するために必要な基本的な技術的知識を持っていることを確認するために技術的スクリーニングを実施します。 すべての候補者に完全に面接するのは費用がかかる可能性があるため、技術的なスクリーニングは候補者のプールを減らす方法です。
このインタビューではコーディングするので、基本的なプログラミング言語に自信を持つことが重要です。
持ち帰りプロジェクト
一部の企業では、コーディングチャレンジの代わりに、またはコーディングチャレンジに加えて、持ち帰り用のコーディングプロジェクトが必要です(ここでも、すべてのプロセスが異なるため、詳細については採用担当者に相談してください)。
コーディングプロジェクトは二極化するトピックです。一部の候補者はそれらを愛し、他の候補者はそれらを不公平だと感じています。 一方では、コーディングプロジェクトを使用すると、お気に入りのツールを使用して、より自然な環境でスキルを披露することができます。 一方、これらのプロジェクトは、企業が無料の(多くの場合無給の)労働力を受け取る方法になる可能性があります。
家族、複数の仕事、またはその他の時間のかかるコミットメントを持つ多くの候補者は、持ち帰りコーディングプロジェクトを完了するために必要な時間がない可能性があり、同じ責任のない候補者にとって不公平な利点につながる可能性があります。
持ち帰りプロジェクトを担当していて、それに専念する時間がない場合は、代替案があるかどうかを採用担当者に尋ねることができます。 また、この面接に費やした時間に対して報酬が支払われるかどうかを尋ねる価値があるかもしれません(一部の企業はあなたに支払いますが、すべての企業が支払う必要があります)。
オンサイトインタビュー
「オンサイト」面接フェーズは、最終的に求人または拒否を受け取る前の最後のフェーズである可能性があります。 多くの企業が1日の面接のために候補者をオフィスに飛ばしていましたが、パンデミックのため、これらの面接は事実上行われています。
多くの候補者は、面接を完了するために現在の役割から休暇を取る必要があるため、面接が最もストレスが多いと感じています。 プロセス/価値観/コラボレーションインタビュー(チームとのコラボレーション方法、競合の解決方法)とコーディングインタビューで構成される3〜4回のインタビュー(通常は半日)が行われる可能性があります。
現場での面接はストレスが多いので、各面接の前に休憩を取り、減圧することを忘れないでください。
面接プロセスに関する注記
技術面接のプロセスは激しく、燃え尽き症候群になる可能性があります。 各インタビューの後に解凍する時間を取っていることを確認し、それがどのように進んだかを振り返ってください。 他の人よりも苦労したインタビューはありましたか? もしそうなら、あなたの次の面接プロセスのためにそれらの領域に焦点を合わせてください。 一部のリクルーターは、面接官のフィードバックを提供することもあるので、勉強に集中することができます。
また、面接の過程でどのように感じたかを振り返る必要があります。 インタビュアーはあなたを安全で快適に感じさせましたか? これはあなたが繁栄するであろう職場環境でさえありましたか? 技術面接は双方向であることを忘れないでください。
技術面接のプロセスについて詳しく説明したので、候補者がよく犯す7つの間違いと、それらを回避するためのヒントについて詳しく見ていきましょう。
間違い#1:効果的にコミュニケーションをとっていない
技術面接は、コミュニケーション能力と問題解決能力を測定することになっていますが、コーディングの課題に対して最適で実用的な解決策を達成したかどうかは必ずしもそうではありません。 問題解決はコミュニケーションがすべてですが、文化ごとに「優れたコミュニケーター」とはどういう意味かについて異なる定義があることをご存知ですか?
通信には2つの異なるタイプがあります。
- 低コンテキスト
非常に明確で、冗長で、要点をまっすぐにしています。 メッセージは明確に述べられており、額面通りに解釈されるべきです。 - ハイコンテクスト
リスナーが行間を読んで(または空中を読んで)、隠されたメッセージを解釈することが期待される場所は、よりあいまいです。
技術面接では、コミュニケーションに慣れているかどうかに関係なく、コンテキストの低いコミュニケーションを実践することが不可欠です。 考える時間が必要な場合は、インタビュアーに伝えてください。 ヘルプが必要な場合は、それを求めてください!
多くの場合、候補者は効果的なコミュニケーションに失敗したため、次の面接フェーズに進まないことがあります。 面接を試験ではなく会話と考えると、効果的にコミュニケーションをとることができます。
間違い#2:答えがわからないときに認めない
何かに対する答えがわからない場合は、それを認めてください! 面接官は、候補者が自己認識し、何かに対する答えがわからないことを認めるほど謙虚である場合に感謝します。 何かを知らないことを認める方が、それを「BS」するよりもはるかに優れています。
質問に答える方法がわからない場合は、次のように言うことができます。「正直なところ、わかりません。 私が知識に基づいた推測をしなければならないとしたら、私は言うでしょう…」人々は「すべてを知っている」と一緒に働きたくないのです。 彼らは答えがわからないことを認めることができる本物の人間と一緒に働きたいと思っています。
間違い#3:インタビューの前夜を詰め込む
正直に言うと、私たちは前夜のインタビューのために詰め込まれました。 面接の時間を作るのは大変ですが、面接は(悲しいことに)スキルであり、実践しなければならないのが現実です。
面接の前夜に詰め込みながら何かを学んだように感じるかもしれませんが、この学習は不安定で表面的なものです。 私たちの脳は、インタビューの前夜に詰め込んだときにのみ、情報を短期記憶にエンコードします。 これは、あなたが「学んだ」情報はすべて、面接後すぐに消えてしまうことを意味します。 したがって、あなたの長期記憶は、前夜に詰め込むよりも、面接に至るまでの数週間に少し勉強する方が良いです。
さらに、実際に理解するよりも情報を逆流させる可能性が高くなります。 解決策を検討するのではなく、覚えた情報を暗唱するだけで、すぐに明らかになります。
効果的な学習のための1つの戦略は、ツールとしてコンテキストスイッチングを使用することです。 新しいスキルを学習している最中にコンテキストを切り替えることは効果がないように見えますが、実際には最も効果的な学習ツールです。 学習中にコンテキストスイッチを行うと、脳が情報を思い出すのがより困難になり、最終的にはエンコードされた情報が強化され、長期的には思い出しやすくなります。
効果的な学習方法についてもっと知りたい場合は、ここに私を助けたいくつかのリソースがあります:
- 「原子の習慣」、ジェームズ・クリア
- 「LearningHowToLearn」、Courseraコース
- 「MakeItStick」、Peter C. Brown、Henry L. Roediger III、Mark A. McDaniel
間違い#4:アルゴリズムとデータ構造のコードを記憶する
候補者は、アルゴリズムやデータ構造のコードを覚える必要があると感じることがよくありますが、実際には、これらを最初からコーディングする必要はないでしょう。 コードを逆流させることは有用なスキルではなく、インタビュアーはあなたが単に解決策を覚えたと言うことができます。 代わりに、達成していることのプロセスを理解することを目指す必要があります。
さらに、これまでに発明されたすべてのソートおよび検索アルゴリズムを学ぶ必要はありません。 代わりに、さまざまなデータ構造に最適なソリューションを決定し、その背後にある概念を学ぶことができます。 たとえば、整数の配列をソートするように求められた場合、マージソートやクイックソートなどの分割統治アルゴリズムが優れたソリューションであることをご存知かもしれません。 アルゴリズムまたはデータ構造がどのように機能するかの概念を理解していれば、ソリューションを構築できます。
最後に、ほとんどのコーディングインタビューは基本的なプログラミング言語で行われます(会社がReact / Vue.js開発者を探している場合でも):フレームワークやライブラリを使用してコーディングするように求められることはないでしょう。基本的なプログラミング知識に自信があります。
間違い#5:「文化的適合」インタビューを見落とす
技術面接プロセス全体のすべての面接は重要ですが、データ構造とアルゴリズムに焦点が当てられているようです。 データ構造とアルゴリズムは研究する重要な領域ですが、プロセス内の他のインタビューにも同じ注意を払う必要があります。「コラボレーションとプロセス」のような他の「より簡単な」インタビューよりもデータ構造とアルゴリズムを優先しないでください。
「カルチャーフィット」インタビューは、チーム内でどのようにコラボレーションし、対立に対処するかを見極めることを目的としています。 次のような質問が表示される可能性があります。
「あなたが取り組んでいたプロジェクトが失敗した時期について教えてください。 なぜ失敗したのですか、そしてどのように前進しましたか?」
また
「チームメンバーと対立したときのことを教えてください。 どのように解決しましたか?」
これらの質問に対する回答を書き留めて、大声で答える練習をしてください。 あなたはリハーサルをしたくはありませんが、簡潔になりたいと思っています。 いくつかの文にあなたの応答を保管してください。 さらに、アイコンタクトとボディーランゲージも重要です。
そわそわしないで、面接官とアイコンタクトをとることに集中してください!
間違い#6:最適化されたソリューションから始める
コーディングの課題に対して最も最適化されたソリューションに110%自信がない限り、最も最適化されたソリューションから始める必要はありません。 候補者はしばしば、最適な解決策から始めなければならないと考え、それが彼らをつまずかせます。 彼らは立ち往生し、前進することができません。 代わりに、最適ではないソリューションから始めて、次のように言います。
「これが最もパフォーマンスの高いソリューションではないことはわかっていますが、実用的なソリューションを入手して、インタビューの後半でパフォーマンスのためにリファクタリングしたいと思います。」
あなたの面接官はあなたの誠実さとパフォーマンスへの配慮に感謝します。 また、より迅速に進歩を遂げることができ、面接では、小さな勝利が自信と全体的なパフォーマンスに大きな影響を与える可能性があります。
間違い#7:プログラミングの基礎を見落とす
フロントエンド開発者の役割の候補者は、JavaScriptを優先するためにHTMLとCSSのスキルを無視していますが、より多くのインタビューが基本的なプログラミングスキルの知識をテストしているので、それらを無視しないでください。
私たちはしばしば基礎を忘れて、より専門家レベルのフレームワークとライブラリにスキップしますが、これは私たちのインタビューのパフォーマンスを妨げる可能性があります。 インタビューは基本的な言語(つまり、React / Vue.jsではなくJavaScript)で行われるため、基本的な言語を無視しないでください。
結論
誰もが技術面接のプロセスに不安を抱いていますが、これらの7つの間違いに注意することで、求人に上陸する可能性を高めることができます。
求人を受け取ったら、交渉するかどうかを決めることができます。 交渉できることはたくさんあります。有給休暇:労働時間、公平性、契約金、役職、給与はほんの数例です。
求人を交渉するときは、調査を行うことが重要です。 この役割(およびこの地理的な場所)の誰かが年間いくら稼ぎますか? Glassdoorを使用して、市場調査を行うことができます。
また、採用担当者には制約があり、より高い給与を得ることができない場合があることも認識しておく必要があります。 代わりに、契約金またはエクイティを要求することはできますが、オファーを増やすことはできないと彼らが言う準備をしてください。
追加の給与や手当を受け取る「理由」に焦点を当てる必要があります。 他の誰かが持ってこないものをテーブルに持ってきますか?
最後に、採用担当者に最後通告を与えないでください。つまり、「この給与を私に与えなければ、私は立ち去ります」。 代わりに、チームに参加したいが、受け入れるにはオファーの改善/変更が必要であるという事実に焦点を合わせます。
基本給の引き上げを依頼するために使用できるメールの例を次に示します。
「申し出をありがとうございました。 私は本当にワクワクしていて、チームに参加するのを楽しみにしています。 申し出を受け入れる前に、基本給について話し合いたいと思います。 私は技術コミュニティの積極的なメンバーであり、Xラーニングプラットフォームを使用してオンラインで多数のコースを教えています。 Yに関する私の幅広い知識がチームに大きな利益をもたらすことを私は知っています。 そのため、AからBの範囲の基本給を探しています。この仕事ができるかどうか教えてください。すぐにオファーに署名します!」
求人がなくても心配しないでください! ほとんどの人は、いつか別のポジションで拒否されます。 あなたは一人じゃない! 時間をかけて面接を振り返り、次の面接で改善できる分野を決定してください。
データ構造、アルゴリズム、コーディングプロジェクト、カルチャーフィットインタビュー、システムデザインインタビューなどについて詳しく知りたい場合は、私の新しい本「テクニカルインタビュープロセスのコーディング解除」をご覧ください。 この本はこの1年間私の情熱であり、多くの開発者が(私を含めて)求人を上陸させるのに役立ちました!
我慢してください。 あなたはこれを行うことができます!
SmashingMagの詳細:
- 独自の個人学習カリキュラムの構築
- リモートワークの時代におけるチームのコミュニケーションの改善
- 製品設計ドキュメントとのより良いドキュメントとチームコミュニケーション
- リモートワークを機能させる:便利なツールとリソース