卒業生の開発者からのバッファオーバーフローは許容されますか?バーの設定が高すぎませんか?卒業生/ジュニアエンジニアの期待される能力は何ですか?
コンテキスト:
現在、主にLinuxのCで働いているジュニア開発者の募集をしています。
プロセスの一環として、候補者はCで自由にコードテストを完了する必要があります。
これまでのところ、コードは読みやすく、場合によってはかなり慣用的ではあるが、無制限のバッファ書き込みによるバッファオーバーフローエラーに悩まされていたため、2つの候補を拒否しました。
[編集]:
- エラーチェック済みの製品品質コードを明示的に要求します。
- 候補者にテストとビルドのフレームワークを提供します
[更新]:
このスレッドと、他の開発者と直接話し合った結果、コードテストの実施方法と採用対象者を変更しています。
候補者がバッファオーバーフローを修正または理解できないということは、私たちが実施する作業に不適当であり、特に、私たちが納得できる以上の指導を必要とすることを意味すると判断しました。したがって、最終的に堅牢なコードサンプルを送信できない候補は引き続き拒否します。
ただし、採用プロセスを私たちと候補者の両方にとってより生産的にするためのいくつかの手段を導入しました。
特に:
- 生産品質が意味するものを明確に説明し、入力とエラーに対してコードが堅牢であると予想されるという警告で、期待をより明確にします。
- コードテストの説明では、候補を防御プログラミングのリソースとC標準ライブラリにリンクしています。
- ターゲットオーディエンスをジュニア開発者および卒業生から変更し、ある程度関連する経験を持つ人々をターゲットにしました。
- 提出されたコードが何らかの方法で失敗するが、そうでなければ受け入れられる場合、エラー条件を引き起こす最小限のテストケースを提供し、候補者に間違いを修正する機会を与えます(他の理由でコードが拒否されない限り)。必要に応じて、問題のある行/関数も指摘します。
- テスト自体の目標は、フロントエンドフィルターから、候補者のより良い状況を構築する機会にわずかに変更されました。特に、電話での議論に役立ちます。とはいえ、私たちはコードのみに基づいて拒否するつもりです。
[2015-07-09更新]: NujobのAndy Davisが、候補者の観点からのコードテストの使用に関する興味深い関連記事を書きました。この記事は一見の価値があります。ここで見つけてください。