Cracking the HackerRank Test: 100% score made easy
Privacy & Cookies
当サイトではクッキーを使用しております。 続行することで、その使用に同意したことになります。
ほとんどのプログラマー志望者は紙袋から自分の道をコーディングできないことは、よく知られています。 その結果、技術業界はより長く、より厳しく、より過激なスクリーニングを推し進めています。
ホワイトボード面接はしばらくスタンダードで、その後パズル、そして FizzBuzz と続きます。 候補者が社内の誰かと話す前に行う自動プログラミングテストを導入しています。
多くの非常に優れた企業が、事前スクリーニング・ツールとしてHackerRankを使用しています。
HackerRankのテストでは何を見つけるか?
テストで遭遇する質問は3種類あります:
- 複数選択式の質問。 “赤と黒の木で要素を見つけるための時間複雑さは何ですか?” -A- -B- -C- -D-
- コーディングの練習問題です。 “<解決すべき問題の長い説明>, <入力データ形式>, <出力データ形式>.” 解決策のコーディングを開始します。
- SudoRank Exercise: “あなたの ssh 認証情報は tester:[email protected] <long description of what’s wrong with that server> です。” サーバーにSSH接続して、修正を開始します。
どんな質問でも、いくらでも、どんな順番でも、まとめて完全なテストにすることができます。
HackerRank は、すぐに使用できる数百の質問と演習のライブラリを提供します。
Defeating Multiple Choice Question
多重選択問題の大部分は、適切な Google 検索によって解くことができます。 通常はタイトルで、時にはテキストからいくつかの単語を選択してください。
Defeating Coding Exercises
Googleで10行の長いパラグラフを検索することは許されない選択肢です。 言うまでもなく、HackerRank の Web サイトでは、説明領域でのコピー/貼り付けは無効です。
回避策は、演習のタイトルを検索することです。 タイトルは、HackerRank 上の質問を一意に識別します。 それは、関連するソリューションやブログの記事で言及されます。
最初の結果は質問、2番目の結果は解決方法です。
Bonus: その google のソリューションは実際には間違っています…それでもすべてのポイントを与えています。
// int main() { int N; cin >> N; int tmp, result = 0; for (int i = 0; i < N; i++) { cin >> tmp; result ^= tmp; } cout << result; return 0;}
このソリューションは、重複した数字がペアである場合にのみ正しいのです。 HackerRank のユニットテストはすべて、まったくの偶然からこの基準に合致しています。
もともとは、ウォームアップのために、この単純な質問をテストの最初に入れました。 私たちの最初の応募者のバッチで、ある候補者からその回答を受け取りました。 問題のテキストだけを与えられたら、誰かがそのような複雑なアルゴリズムを考え出す確率はどのくらいあるのだろうか? 簡単に調査したところ、すぐにソースが判明しました。
追記:
「Lonely Integer」問題は、HackerRank の公開サイトとプライベートな HackerRank ライブラリでは若干異なる表現になっていますが、入力、出力、ユニット テストは同じものです。 それゆえ、解答は外れていますが、動作します。 HackerRankは明らかに、コミュニティからプロフェッショナルなライブラリに質問をコピーしています。 これもコピーキャットです!
Recruiter Insights: 次のレベルにもたらされる不正行為
私たちは、リクルーターから来る多くの候補者を抱えています。
Let’s see the statistics on a hard question .
ほとんどの受験者は 0 点を得ています。時間切れ、回答不能、間違ったアルゴリズム、不完全/部分的なソリューション (つまり、良いスタートだがまだどのユニット テストにも合格するほどではない)。
受験者のプールで同じ分布を表示したかったのですが、HackerRank はもうこのグラフは用意していません。 以前はそうでした。
とにかく、私たちはおおよその数字を覚えています。 私たちの候補者の分布は、それぞれの極で約50/50%です。 これは一般人の75/17%よりかなり良い。 その数字を、問題やビジュアル コード レビューに費やした時間と相関させることができます。
その結果、リクルーターから来た候補者は、特に難しい演習でより良いパフォーマンスを発揮します。 実際、彼らがどれほど良いパフォーマンスをするかは、信じられないほどです。 (実際に読むのにかかる時間よりも短い時間で、完全に最適化されたソリューションで問題を解くことができる人たちに特別な賞賛を送ります =D)
結論は簡単でシンプルなものです。
学んだこと:
- 候補者の方へ。
- 採用担当者の場合:テストの前に採用担当者にサポートを依頼することを忘れないように。
- 企業向け:受験者を指導し、変更があれば書き留めるよう指示することを忘れない。 リクルーターから送られてくる高得点受験者に注意
チャレンジ:トレーディングの課題を解くのにどれくらい時間がかかりますか? .
Custom HackerRank Tests
企業はカスタム演習を書くことができますし、そうすべきです。 難しいし、特定のスキルが必要ですが、間違いなく価値があります。
慎重に行えば、Googleに対する唯一の有効な解決策となります。 (実際には、1000 のチュートリアルやコーディング フォーラムで、シンプルかつ Google で簡単に見つからないような演習を作るのは驚くほど困難です)。
悲しいことに、それは採用担当者に対しては役に立ちません。 (スカウトとして犠牲になる最初の候補者を除いて)。
Conclusion
HackerRank の事前スクリーニングを台無しにしてしまったのでしょうか? もちろん、そんなことはありません! プログラミングの面接問題の 90% の答えを教える本を書くことができますが、求職者の 99% はそれを読むことはないでしょう。 地獄のように、それはしばらく書かれていましたが、何の影響もありませんでした。
ブログやニュースをフォローしたり、「HackerRank とは何か」を検索したりしている一握りの開発者だけが、より良い準備をして臨むことができます。 今のテストは、Google でヘルプを探し、間違った言語で書かれたインデントのないコードの微妙に壊れたスニペットを修正することです。
HackerRank はついに仕事に関連する能力を審査するようになりました!
最後に一言アドバイスがあります。 良い技術系企業の面接のバーに合格しようとしていて、MITに通う機会がなかったのなら、トレーニングが必要でしょう。 この本は、データ構造とアルゴリズムの質問に関しては、ゴールドスタンダードである。 非常にお勧めです。 どの会社でも何度も何度も聞かれるような質問が何百も収録されています。 最低限、アマゾンの無料プレビューを読んでください
。
Leave a Reply