プログラマーのためのインタビューの怖いジストピア

実験



私の電話が鳴った。



「こんにちは、これはジャレドです。



- こんにちは。ジャイアントサーチアンドアドバタイジングカンパニーでの電話インタビューについてお電話します[明らかにグーグル-約。 Lane]。



- はい!お電話をお待ちしておりました!



- はい。バイナリツリーでK番目に大きい値を見つけるアルゴリズムを記述できますか?



黙った。完全に切断します。そのような状況に陥ったことはありません。空白のGoogleドキュメントが私をじっと見つめ、カーソルがスローモーションで点滅します。私は最初のパスとして何かをスケッチしています。



-このアルゴリズムのテストケースを作成できますか?



承知しました。私が完全に薬を飲まされていなくて、私の目の前で死ぬ夢の燃える怒りの下で私の内なるエゴが溶けていなかったならば、私はそうすることができました。これは、過去数か月にわたる私のすべての努力が要約されたものですか? 2019年1月頃、私は新しい仕事を見つける時が来たと判断しました。まるでソフトウェアエンジニアリングの神々がその考えを祝福しているかのように、Giant Search and AdvertisingCompanyのリクルーターがLinkedInで電話インタビューのために私に連絡しました。これは素晴らしかったです!



これが起こったのはこれが初めてではありません。高校を卒業したばかりの優秀な若いエンジニアとして、私は最近最初の仕事を始め、それでかなりうまくいっていました。しかし、その後、私の世界はひっくり返った。私は特に厄介なバグに取り組み、自分で解決しようとする前に、自尊心のあるソフトウェアエンジニアが行うことを実行しました。それはGoogleです。検索ボックスに対応するダムクエリを入力してEnterキーを押すとすぐに、画面が真っ暗になり、コンソールにスローされました。



あなたは私たちの言語を話します...問題を解決したいですか?

1.はい

2.いいえ、ありがとう


生ぬるいコストココーヒーで窒息寸前だった。私は飛び上がって、同僚が見に来るように叫びたかったのです。しかし、突然、グリッチが発生するのではないかと心配になりました。この場合、非常にデリケートな状況に陥ることになります。私の精神が私の体から飛び出そうとしているのを恐れて、私は1を押しました。



n + 1個の整数を含む配列numsが与えられます。ここで、各整数は1からnまでです。少なくとも1つの番号が繰り返されていることを証明します。重複が1つだけであると仮定しましょう。それを見つける。



あなたは24時間あります!


軽度の心臓発作がありました。コストココーヒーの別のショットで自分自身を復活させることができたとき、私は問題をかなり解決できることに気づきました。私はすでに計画を立てていました。だから私はしました。「送信」ボタンを押すとすぐに、別の解決策が表示されました。これを5回繰り返し、そのたびに難しくなりました。最後の返信を投稿したとき、別のメッセージが表示されました。



おめでとう!このコードはとても良いです!ジャイアントサーチアンドアドバタイジングカンパニーへのインタビューをお探しですか?


それで全部です。私のプロの世界全体が変わりました。世界で最も強力な組織の1つが、私の22歳の脳に潜入し、登録簿を書き直しました。以前のキャリア目標はもう重要ではありませんでした。その前は、そんなトップ企業が私を雇うことができるとは、幸いにも気づいていませんでした。しかし、私がどういうわけか注目に値することは明らかです。



電話インタビューは悪夢のようでした。私は45分でコンウェイのライフゲームをプログラムするように頼まれました。実際、私はかなりうまくいった。プログラム全体を作成してテストしました。翌日、私は拒否されました。内面的に、私は落ち込んで混乱しました。私は正確に何を間違えましたか?すべてのテストは何か意味がありませんでしたか?なぜこんなに複雑なアルゴリズムをこんなに短い時間で書かなければならなかったのですか?



このレベルでの最初の問題解決の経験の後、私は自分のスキルを向上させるべきだと決心しました。インタビューは今年4月に行われました。私は3か月のカリキュラムを作成し、ビジネスに取り掛かりました。毎朝、仕事に行く前に3つの実践的なタスクを実行しました。夕方、ジョギングしておやつを食べた後も、仕事をしていました。3か月で合計114の実用的な問題を解決しました。配列、バックトラッキング、バイナリ検索、バイナリツリー、幅優先検索、深度優先検索、動的プログラミング、グラフ、貪欲なアルゴリズム、ハッシュ、リンクリスト、確率、並べ替え、スタック、およびプレフィックスツリーは私が研究したトピックの一部です。 ..。どうすればそのような準備に失敗することができますか?



失敗



Giant Search and AdvertisingCompanyへのインタビューは炎上しました。私はその問題を解決できなかった。しかし、それは狂気の始まりにすぎませんでした。最初は、どの企業に連絡するかについて非常に戦略的にアプローチしました。 「良い」だけでなく「正しい」仕事が必要でした。



次は自走式の自動車会社でした。申請書を提出し、コードエディタを設定した直後に応答がありました。面接官は、イライラし、非常に強いアクセントを持って、非常に複雑な画像フィルタリングアルゴリズムをコーディングするように私に依頼しました。私はそれを書きました。 「とてもよさそうだ!」 - 彼は言った。翌日、私は公式の拒否の手紙を受け取りました。



それから、3文の宿題を依頼した調査会社がありました。私はできる限り最善を尽くし、非常に複雑なマルチスレッド画像処理システムを作成しました。そして、採用担当者から丁寧な「いいえ」をもらい、説明を求められたとき、自分の実装は「効果が大きすぎる」と言われました。



その後、決済処理会社がありました。私は採用担当者と素晴らしい電話での会話をしました、そして彼女は私の履歴書が仕事の説明とどれほどよく一致しているかを賞賛しました。翌日、彼女から私のスキルセットの仕事が見つからないというメールが届きました。



もう1つの例は、Giant Social Media PlatformCompanyの場合です。お申し込みありがとうございます!私たちはあなたが私たちの会社で働くのに最適だと思います!私はあなたの申請書をあなたの地方事務所の雇用マネージャーに直接送りました!」 8分後、私は自分のスキルがそのポジションに適していないことを示す定型的な拒否の手紙を受け取りました。



数え切れないほどの外部の採用担当者から連絡がありました。すべての会話は無に終わった。おそらく私が一番好きだったのは音響処理会社でした。採用担当者から連絡があり、私の履歴書を確認した後、チームは非常に興奮していて、私と話をしたいと思っているので、HRマネージャーに連絡すると言いました。一週間が過ぎたので、私は彼女にどうしているか尋ねました。採用担当者は、彼女がHRマネージャーに連絡したと言いましたが、彼は私のスキルがその仕事に適しているとは思っていません。私はそれを受け入れました...しかし、テストとして私は自分の履歴書を別の仕事に送りました-そして私はすぐに別のリクルーターから連絡を受けました。彼らがすぐに電話をかけてきたことに私は驚いた。今回はうまくいきませんでした。翌日、私はメールで公式の拒否を受け取りました。



最後に、ジャイアントソーシャルメディアカンパニーのオフィスで面接の段階になりました。私は4つの異なるインタビューで数人の人々と一連のコーディングの質問に答えました-それらはすべて正しくそして満足のいくものでした。途中、「あの時のことを教えてください…」など、紛らわしくて難しい質問がたくさんありました。仕事を探しているときに初めてエンジニアとしての経験や洞察力について聞かれたので、さわやかでした。これに続いて、最終的なシステム設計のインタビューが行われました。インタビュアーはすぐに私に開発するための小さなシステムをくれました。私は自分の決断について話し始め、その過程で質問をされました。最後に、彼が「さて、マイクロサービスアーキテクチャがあるとしましょう...それを設計できますか...?」と言うところまで来ました。私はすぐに言いました私はマイクロサービスの経験がありません。彼は私を疑わしく見て、「経験がないのですか?」と尋ねました。確認しました。私は、PC、組み込み、モバイル開発の分野でのスキルセットと経験を明確に表現しようとしました。彼は自分が間違いを犯したことを理解している男のように沈黙した。優れた!私はこのインタビューの準備に4か月を費やし、仕事以外の時間のほとんどすべてを準備、実用的な問題の解決、コミュニケーションスキルの経験を提示する方法のリハーサルに費やしました。彼はわざわざ私の履歴書を読むのに10分を費やしませんでした。私はこのインタビューの準備に4か月を費やし、仕事以外の時間のほとんどすべてを準備、実用的な問題の解決、コミュニケーションスキルの経験を提示する方法のリハーサルに費やしました。彼はわざわざ私の履歴書を読むのに10分を費やしませんでした。私はこのインタビューの準備に4か月を費やし、仕事以外の時間のほとんどすべてを準備、実用的な問題の解決、コミュニケーションスキルの経験を提示する方法のリハーサルに費やしました。彼はわざわざ私の履歴書を読むのに10分を費やしませんでした。





この困難な仕事探しで経験した多くの失望を嘆き続けることができました。たくさんありました。私は常に自分自身や他の人に自分の能力について完全に正直になるよう努めてきました。長年の経験が必要な仕事や、スキルが足りない仕事に応募していませんでした。もちろん、埋め込みプログラミングからWebに戻りたかったのですが、モバイルアプリ開発者および機械学習アルゴリズム研究者としての他の経験に加えて、Webエンジニアとして2年間の経験がありました。私には成長と自己改善の機会が無数にあることを十分に認識しています。しかしその一方で、私は新しい仕事を非常に早く始めることができるスキルを持っていると確信しています。私の考えでは、プログラミングは、学習と新しい経験によって定義される蒸留された芸術形式です。ソフトウェアエンジニアは、彼のキャリアの残りの間、開発をやめるつもりはありません。少なくとも私はそうしないことを望みます:そうする人々はすぐに道端に置き去りにされます。では、ここで実際に何が起こっているのでしょうか。この厳しいプロセスを長い間経験した後、私は自分の観察結果を分解して分析し、それからそれらを熟考してより明確な画像を取得することにしました。私は自分の観察結果を分解して分析し、それからそれらを熟考してより明確な画像を取得することにしました。私は自分の観察結果を分解して分析し、それからそれらを熟考してより明確な画像を取得することにしました。



  1. . , , -, . - — , . , , -. , , . , . .  — .



    • :

    • — , .

    • — , .

    • — . , : , .

    • — , . , . . . . - , -, .


    , , - . , , - .
  2. , — , , .



    • ? . , , , , . , . , ? . , .

    • ? , , . , . « ». . , , .  — , , . , , , , , . , , ?

    • . , . , . LinkedIn . , . , . , , , , «» .

    • , . . , . , . . .  — () , . . : « . ? : «, ». « ? ?» : « . ». . ,  — ?

    • , . , . , . , A. . ! ! . , . . ! ! - , , . : , , A : , - .

    • . 45 . . , . «», 50 , , . , 15 , . . , , . . 45 ?

    • . , Google. , . : « » « ». . , . , , , . , , « , , ». , , , . , «» , , , «» . , . - , . , . , . , , , , . ! ?
  3. , ? , . , , « ». ?! , ? , , . ? , ? . , , . , . , , , , . , .


同じ精神で続けることができたと確信しています。私のメモにはあと約8つのポイントがあります。しかし今のところ、記事はブログ投稿というよりは、diatribeのように見えます。過去7か月間に経験したいくつかの困難を共有できたことを願っています。結局、私にはあいまいな気持ちがあります。私の現在の雇用主はちょうど私のオフィス全体を解雇し、私を失業させ、私がこれらすべてをどのように嫌うかについて書くために一人で残しました。このプロセスをもう一度やりたいかどうかはよくわかりません。私は自分の経験について多くのことを考え、いくつかの簡単な結論に達しました。



  • , — 85 000 Java- , , . Python, . embedded C C++ , . Flutter . Clojure, . C#. , -. .

  • ソフトウェアの作成が許可されていない理由がわかりません。企業がソフトウェアエンジニアを必死に探しているという一般の主張と、候補者を選別するという残忍な現実との間には根本的な不一致があります。激しいdo-or-die圧力下でのこれらのコーディングの問題は、貴重な評価ツールというよりも、かすんでいるメカニズムのようです。それらを使用することは、彼らが法律について知っていることを尋ねる前に警察の候補者を撃つようなものです。

  • 反対側からはどのように見えるかわかりません。 要点は、批判されているプロセスが、企業が良い候補と悪い候補を分類する唯一の方法である可能性があるということです。私は採用チームに参加したことがないので、よくわからないと思います。


結論として、私はいくつかの考えを持っています:



  •  — , . , , . . , , ( ) , . , . , . , . , . , , , — , .

  •  — -. , : -. , . , . ? , ? , ? . , . , Agile. , . , . Java Python, Python, ? , , , . , - , .

  • — . , . . , -, . , , , :



    .



    . :






All Articles