私は仕事を探しており、いくつかのポジションに応募しています。 1人の雇用主が答えた。私はかなり長い電話インタビュー(おそらく1時間以上)を受け、それから開発者テストを設定しました。テストには6時間から8時間かかると推定されており、結果が彼らの承認に合えば、私は自分の仕事に対して支払われると言われました。
それは私に少し休止を与えました、しかし私は努力しました。開発者テストは [〜#〜] rdp [〜#〜] を介してアクセスされる [〜#〜] vm [〜#〜] で行われました。タスクは、サーバーからのデータをリクエストし、画面のテーブルに表示し、かなり複雑な検索フィルタリングスキームを使用するWebプロジェクトに検索ページを実装することでした(約15のステータスがあり、サーバーに検索を送信するときに、文字列/フィールド検索に加えて、これらのステータスで検索できます)。さらに、特定のデータ値の色を変更する [〜#〜] svg [〜#〜] アイコンが必要であり、一部のデータはデータベースでの構造とは異なる方法で表されます。
Loooongの話は短く、これは6-8時間よりもずっと長い時間を要しました。それの多くは、私が実行していた非常に貧弱なVMが原因でした(Visual Studio 2013のロードに10分、3 GBの巨大なソリューションを開くのにさらに15分かかりました)。
テストの完了後、変更をソース管理にコミットする必要があると言われました...うーん、OK。私は指示に従いました。変更をコミットした後、返信メールが届きました。 SVGが正しく色付けされていなかった、このEdgeケースにバグがあった、私が経験したことのない他の事柄に時々問題が発生したなどの理由で、私は今、この事柄に13〜14時間かかります。バグ修正を行います。私はそれらを行い、雇用主はより多くのバグ修正リクエストを返します。
私のすべての仕事は明らかに本番アプリケーションに組み込まれています。他の人が1つの機能のすべてをコード化しているように見えて、他には何も触れていないように見えるコードのいくつかの異常に気づきました。
私は安い労働力のために使われているだけですか?彼らが約束された1時間あたり50ドルを6時間私に支払ったとしても、私は今、このことに約18時間を費やしました。彼らが思いついたものすべてをバグ修正した場合、少なくとも16時間は無料で作業できます。
私はいくつかの開発者テストを受験しましたが、実稼働向けのコードに取り組んだテストは一度もしていません。私は開発のパイプラインにある機能を実装するテストを一度も受けていません。また、4ラウンドで合計20時間以上かかる機能を一度も受けていません。開発者のテストを使用して、機能の一部を安価に提供しているという印象を受けます。
私は間違った印象を持っていますか?そして、このテストプロトコルは適切ですか?
このようなコードテストには参加しません。私は多くのコードテストを行い、多くのコードプロジェクトを実行しました。私は確かにいかなる状況下でも他の誰かのリポジトリにコードをチェックインしません。ペアプログラミングセッションでわずかなバグ修正を加えた4時間のサンプルの後、彼らが何を知る必要があるかがわからない場合、彼らはそれを知ることはありません。
テストに入る前に、いくつかのことを知って明確にする必要があります。
あなたがインタビューしている会社もあなたからインタビューを受けています。もしこれが彼らがインタビューしている誰かをどのように扱っているかなら、これはあなたが働きたい会社ですか?多くの場合、人々が仕事の必要性を持っていること、そしてこの必要性がいくつかの常識の概念を無効にすることがよくあることを理解していますが、これは常にあなたの心の最前線であるべきです。外に出ることを恐れないでください。それが正しくないと感じる場合は、本能に従って、あなたの足で投票してください。
多くの面接の後にテストが続きます。これらのテストは、実際に必要なスキルがあることを確認し、面接中にテストするのが難しいいくつかの事柄(コードにスタイルルールを適用するなど)をよりよく把握するために必要です。
つまり、テストはテストです。
長くする必要はありません。 8時間のコーディングの後、30分後には見えないほど多くのことを見ることができません。さらに重要なことに、テスト中に記述されたコードは、行ごとに確認する必要があります。これには重要な時間がかかります。 30分以内に作成されたテストコードを確認するために2時間以上費やすことも珍しくありません。
それは既存のコードベースを扱うべきではありません。中規模製品のコードベースを理解するには、数日または数週間(またはコードの品質と技術的な負債によっては数か月または数年)かかる場合があります。知的財産も問題になる可能性があります(コードがオープンソースでない限り)。
候補者が既存のコードベースをどのように維持できるかをテストすることが目的である場合、テストは、テスト用に特別に記述された小さな(500〜600 LOC)架空のコードベースで実行できます。
実際のアプリや機能を開発するためのリクエストである必要はありません。問題を理解し、それを解決するための洗練された方法を見つけたことを示すことを唯一の目的として書かれた、まったく役に立たないコードの場合もあります。
完璧である必要はありません。バグはありますか?それはいいです。候補者とのさらなる面接のためにそれらをメモしてください。候補者がこの状況でどのように反応するかを確認する絶好の機会です。
自分でVisual Studioを持っていない場合を除き、VMのRDCを介して実行する必要はありません。コーディングと問題解決のスキルを見ることを目標とする場合、どこで練習をしてもかまいません。
このテスト中に記述されたコードが会社のバージョン管理になることは問題外です。なぜ候補者が書いたものでバージョン管理を汚染するのでしょうか?
結論として、本番コードの作成、バグの解決、会社のバージョン管理への取り組みに数十時間を費やすよう求められた場合は、次のようになります。
彼らはあなたに無料で機能を実装するためにあなたを使っているのか、
または、彼らはインタビューの仕方を本当に理解していません。
どちらの場合も、働きやすい場所を探します。
長い答えを書くつもりはありませんが、私はひどく混乱しています。なぜ誰もが著作権の問題を取り上げないのですか?
私の経験から言えば、開発者のテスト中に書かれたコードの著作権の所有権を相手方に譲渡するという合意について聞いたことはありません。これが事実である場合、あなたは実際に彼らを著作権侵害で訴えることができます、そしてこれのために与えられた損害は、特に私が聞いた話からそうであるように、かなり素晴らしいです。そして、彼らが和解したい場合(これを提案します)、あなたは侵害に対して法外な料金を要求することができます(その後、原則として彼らはあなたの作品の使用を依然として許可されず、彼らがまだ興味を持っているなら彼らにあなたの作品を販売することができます) )。
より多くのキャリア経験を持つ人々はこの質問に答えることができるかもしれませんが、私は個人的には20時間以上の開発テストにあまり慣れていません。彼らはインタビューを使用して作業タスクを完了しているようです。
コードの所有権に関する法的文書に署名していないことを前提としています。だから私は彼らがコードをレビューし、それを受け入れるか拒否するまで待ちます。その後、彼らがそれを受け入れた場合、私はフルタイムで20時間以上の支払いを求められます。最初に提案された6時間だけ支払いを受け取るかどうかはわかりません。これが本番環境に入る場合は、コードの所有権を明確にする必要があります。
少なくとも、コードの支払いについて話し合うことは、オファーを受け入れるかどうかを決定するのに役立ちます。 6時間だけ支払うのが公正だと彼らが思ったなら、私は申し出を受け入れたくありません。
私が開発者にインタビューする立場にあったとき、それらのテストは短く、単に「合格または不合格」でした。コードにいくつかのマイナーなバグがあったとしても、バグ修正は含まれていませんでした。それは私が候補者のスキルを評価したかったので、生産準備の整ったソフトウェアを入手したくなかったからです。
質問で説明されている状況は、誰かが無料(または安価)で有用なものを入手しようとしているように見えます。
私は1時間を超える開発テストを行ったことはありません。これらはすべて「パズル」であり、問題を解決し、指定された制限時間内に指定された目的を達成できるかどうかを確認する作業です。
50ドル(または私にとっては25ポンドから30ポンド)は1日の料金としてはかなりお粗末です。それは、配管工に飲み物と引き換えにトイレの修理を依頼するようなものです。
私のアドバイスは、不明確な言葉ではありませんが、このテクニックを使用してアプリ全体を作成しようとしている場合に備えて会社を名前で参照し、インタビューに行く前にGoogleの会社を参照することを許可しないでください。それは再び起こります。次に彼らがバグ修正を要求するとき、あなたはコンサルタントの日レート(彼らが提供していたものの少なくとも5倍)を挙げ、開発者が無料で働くことはないことを知らせます。
悲しいことに、だまされることは人生の一部ですが、座ってそれを受け入れる必要はありません。
あなたはおそらくあなたの仕事の(一部の)支払いを受けていますが、これは 試用プロジェクト のように聞こえません、それはあなたから安い/無料の仕事を得るための詐欺のように聞こえます。それは、意図された試作プロジェクトであって、構造化も管理もされていなかった可能性があります。
しかし、それは詐欺のように聞こえるほど悪い管理は、間違いなくあなたが仕事を取るかどうか決めるときに考慮すべきものです。
適切な試験プロジェクトはそれを明確にする必要があります
条件は、あなたが雇われるかどうかに関係なくあなたに受け入れられるべきです-条件が彼らがフルタイムの仕事を伴う場合にのみ受け入れられる場合、それらは実際には受け入れられません。
比較のために:現在の仕事のインタビューは約1時間で、これまでに何をしたか、会社は何を計画しているか、そしてどのように私はそれに合うかについて話しました。周りで、私たちはお互いにどのようにうまくやっていくのかを見るためだけだと思います。彼らは私にこれを従業員と同じ額のフリーランサーとして私に支払ったので、3日間はもちろん、1日もない無給の仕事はありませんでした。
コードが実際に本番環境で使用されている場合、見積もりが間違っていた場合のせいではなく、あなたが費やした24時間分の請求書を送ります。彼らがあなたにそれがかかる時間を推定させなかったと仮定します。
彼らが安い労働力を得るために実際にこれを使うとは思わない。
理由は簡単です。これらのテストを書いた後、彼らはあなたが書いたものをレビューする人を必要とします。そうです、コードをレビューすることはコード自体を書くよりもはるかに簡単ですが、それでもまだ多くの時間がかかります。
そしてその後、おそらく彼らはそれらのテストを維持し、それを説明するなどのために人々を必要とします。
そして私は、特に米国の企業で100ドル未満の節約を気にするIT企業を想像することはできません。決してビジネスの運営方法ではありません。
私は、開発者が就職のために面接するためのコードテストを非常に信じています。しかし、これは地獄からのコードテストのように聞こえます...コードテストは、実稼働コードを含むべきではありません。それらは単純であるべきであり、行われた作業のどれも会社によって使用されないことを述べるべきです。
明らかに、あなたがした仕事は製品コードに関するものでした。あなたはあなたのすべての時間に対して支払われるべきです-少なくとも。弁護士に相談して、訴訟を起こす価値があると彼が考えているかどうかを確認してください。多くの弁護士が無料の初期相談を提供しています。詐欺が関係していて、この場合はそのように見える場合、あなたは金銭による損害を4倍にする権利があり、それに加えていくつかのニースの懲罰的損害を被ることもできるでしょう。
それらを訴え、勝つことによって、あなたはいくつかの見出しを作成し、将来的に他の人によるこの慣行を思いとどまらせるでしょう-これは新しいポジションを探しているすべてのソフトウェア開発者にとって有益です。
コーディングテストは残念ながら現実の問題です。とはいえ、初めての電話スクリーニングを受けるための条件として、コーディングテストに4時間かかると言われるのは面倒です。会社が関係にほとんど投資していないのに、候補者に多くの投資を依頼するのは不公平です。
私は上級開発者です。彼らのコーディングテストに合格することができます。しかし、会社が私に個人的な関心を示していない限り、私はそれに多くの時間を無駄にすることはありません。私は一般的に、会社の粗末なロボットがキーワード検索を妨害する可能性があるため、履歴書を再入力するように依頼する、大きくて不十分なオンライン申請フォームを備えた会社への申請を完了しません。簡潔であるか、彼らがライブでそれを見て私に話しているのでない限り、私は一般にコーディングテストを完了することに同意しません。
彼らがあなたのコードをプロダクションに入れていなくても、あなたがあなたにぴったりであるかどうかを知る前にタイピングに長い時間を費やすことを望んでいる会社は、あなたをうまく利用している会社です。彼らは彼らが彼らの関係になりたいものを知らせています。あなたはコードモンキーです。彼らはショットを呼び出します。そして、彼らの面接プロセスは、その関係に満足している人々を見つけるように設計されています。
コードモンキーにならないでください。歩いて行ってしまう。