候補を評価するときにコードサンプルを要求する人からの1つの意見として、いくつかの高レベルの機能(コードの内容)といくつかの低レベルの機能(コードの構造)があります。高レベルの機能:
- アイデンティティ:コードのフレーバー。UI / HCIコーダーとして自分自身に請求している場合、私はそれを実行するときに視覚的な何かの良い外観/雰囲気を見たいです。DBビルダーの場合、データの表現や分析に関して興味深いものを見たいと思います。サンプルはあなたが誇りに思うものでなければなりません。それらの少なくとも1つを持っていない場合は、アイデンティティがありません。
- 成熟度:さまざまな問題に戦略をシフトしていますか?興味深い問題を解決していますか?コードまたはアプローチを同様の問題に簡単に拡張できますか?逆に、カーゴカルトコミューンのメンバーを見ているような気がしますか?
- コミュニケーション:コードは、コードの実行内容とその理由を簡単に説明していますか?これは、コードを単純にする必要があるという意味ではありません。実際、複雑なコードを理解しやすくすることはボーナスです。
低レベルの側面はより単純です:
- スタイル:コードはクリーンで一貫性があり(確立されたガイドラインに従って)、十分に文書化されている必要があります。
- パッケージング:少なくとも、短いreadme、実行可能なバージョン、および実行可能なテストが必要です。READMEには、後者の2つを実行する方法と、この特定のコードサンプルを示す理由が記載されています。
- 言語:私は通常、誰かにポジションの言語のサンプルと、彼らが最も強いと感じるものを求めます。現在の上限についての良いアイデアを与えます。
良い候補としては、A)防弾の小さなサンプルか、B)より大きな興味深いプロジェクトのかなりの部分(たとえば、Githubの個人リポジトリからのモジュール)のいずれかをサンプルとして期待しています。私はそれらが個人的なプロジェクトまたは学術的なプロジェクトであることを期待しています。彼らが有料プロジェクトからのものを送る場合、私は彼らがそれを使用する許可を与えられたというメモを期待しています。そのメモが得られない場合、候補者からそれらを切り取るか(弱い候補者)、インタビュー中にそれについて尋ねます(強い候補者)。許可がないと、大きな危険信号になります(おそらく乗り越えられません)。上級候補者の場合、最高のソースサンプルの一部は仕事の一部として行われたため表示できないことに注意してください。しかし、私はなぜ彼らがその見せられないデザインを誇りに思っているのか、そして子供のようにそれを愛しているのかについての噴出する証言を期待しています。
最後に、一部の人々は「ああ、誰かがインターネットからコードサンプルを入手するだけだ」と言っているのと同様に、反論として、優れた製品品質のコードを理解していないほとんどの人はそれを見ても理解しないということです。その上、コードをチェックするための独特な行をいつでもグーグルにできます。また、せいぜい、コードを盗むことで、候補者は面接に参加します。
前職からのコードに関する最後のメモとして:しないでください。人事の観点からすると、以前の雇用からのコードを要求することは不適切であり、会社についての警告です。あなたは両方とも法的責任を負い(すなわち、あなたは両方とも訴えられる可能性があります)、彼らが何をしているかわからないことを示しています。以前の雇用主のために行われたコードは、そのコードが既に公開されているか、その雇用主からの明示的な許可がない限り、決して与えられるべきではありません。さらに悪いことに、大企業では、あなたの上司があなたに許可を与える権限を持っていないかもしれませんので、その場合は法務部で楽しんでください。私は彼らが既存の従業員に自分のIPを公開することに大喜びするだろうと確信しています。