私は電話での面接を非常によく受けました(CakePHP関連の立場については、質問にとって特に重要ではありません)。面接官は私の履歴書と個性に感銘を受けたようです。けれども最後に、彼は私に彼に私の既存の作業プロジェクトからのコードサンプルを彼にメールで送るように頼んだ、「あなたがひどくプログラマーであることにひそかにチェックしていないことを確認するために!」
私はあまりにもコードが自分の足で立つことができないのではないかと心配していますが、私は専門家というよりは中級プログラマです。彼らがその場で私を除外する場合に備えて、コードサンプルしないでくださいに該当することを確認する必要がある明らかな落とし穴は何ですか?次に、これはおそらく回答するのが難しい部分です。コードサンプルのどの機能が非常に印象的で、すぐにプログラマーにはるかに好意的になるのでしょうか?
すべてのアイデアや提案を歓迎します!
見たい クリーンコード :
クリーンコード:別のコーダーが簡単に読み取ったり修正したりできるように、正しく整理された方法でフォーマットされたソフトウェアコード。
つまり:
i
を使用しないでください。意味のない変数名は使用しないでください。興味深いであるように十分に複雑であるが、優れた開発者がすぐにそれが何であるかを理解できるほど十分にクリーンなものを送信したいやっている。
上記のコメントの一部は、これがいかに簡単に偽造される可能性があるかを懸念しているようです。*これから保護したい場合は、コードの目的と履歴の簡単な説明を電子メールで送信してください。
*少なくとも、インタビュアーが過去のプロジェクトについて前もって質問した場合、次にがこのプロジェクトのサンプルを要求し、それを記述するために何が必要か、またはそれがどのように発展したかを尋ねました私はそのプロセスがかなり嘘つきであると思います。とにかく嘘をつくとなるほとんどの候補者は、他の分野で問題を示すと思います。
仕事を探していたときに、ACMプログラミングコンテストの質問をいくつかの異なる言語で解決し、それ以降、コードサンプルにそれらを使用しました。私は彼らが良いコード例を作ったと思います:
そして、作成するコードは、明確で一貫性があり、読みやすく、理解しやすいものにする必要があります。
そして最後に:
さて、私があなたにインタビューしているなら、私はyourコードを見たいです。
クリーンは良いですが、問題解決は良いですが、真のコードの方が優れています。優れたプログラマーは、他のプログラマーにだまされたときを知っているので、信頼が低下する可能性があります。
他の人のコードを読むのは ダンシング セックスをしている:あなたはそれが本物であるときを知っています、そして、他の人がそれを偽っていれば、結局災害が起こります。 (本当のオタクが踊る方法を知らないだけで気づいた)
あなた自身とあなたのコーディング能力を信頼してください。あなたが面接官を本当に知っているのでなければ、あなたが彼のコーディングスタイル/スキルから彼が期待することを期待することはできません。
また、それが現在の雇用主からのコードではないことにも十分注意してください(所有者が所有していないコードを所有しており、共有したくないことを保証します)。あなたが誇りに思っているものを取り、それを自分で作り直して、雇用者固有ではないようにします(データベーステーブルやサーバー名などへの参照をすべて削除します)。間違いがあるか、コードの種類に適さないコードを送信しない場合は、何でも(SQLコードを確認すると、セットベースの操作が単純でパフォーマンスが良い場合に、カーソルを送信した人を拒否するでしょう。他のより一般的な問題に使用できる比較的まれな問題の問題を解決するために他の言語にも同様の手法がありますが、他の問題には最適ではありません。その文は意味がありましたか?)
候補者を評価するときにコードサンプルを要求する人からの意見の1つとして、いくつかの高レベルの機能(コードのコンテンツ)といくつかの低レベルの機能(コードの構造)があります。高レベルの機能:
低レベルの側面はより単純です:
良い候補としては、サンプルが次のいずれかであると想定しています:A)防弾小型サンプルまたはB)大きな興味深いプロジェクト(Github個人リポジトリのモジュールなど)の良い部分。私はそれらが個人的なプロジェクトまたは学術的なプロジェクトであることを期待しています。有料のプロジェクトから送信する場合は、使用許可をいただいていることを期待しています。そのメモが届かない場合は、候補者から除外するか(弱い候補者)、面接中にそれらについて尋ねます(有力な候補者)。許可がないことは大きな危険信号です(おそらく乗り越えられないでしょう)。上級候補の場合、私は免責事項として、彼らの仕事の一環として行われたため、彼らの最高のソースサンプルの一部を表示できないことに注意してください。しかし、私はそれから、なぜ彼らがその見せられないデザインに誇りを持っているのか、そして彼らが子供のようにそれをどのように愛しているのかについての噴出する証言を期待しています。
最後に、一部の人々は「ああ、誰かがインターネットからコードサンプルを取得するだけだ」と非難しますが、反対の意見は、優れた本番品質のコードを理解していないほとんどの人は、それを見ても理解できないということです。その上、いつでもコードをチェックするための独特の行をグーグルできます。また、せいぜい、コードを盗むことは候補者を面接に連れて行き、彼らは彼ら自身を困惑させます(「それでなぜあなたはそれをこのようにしたのですか...?」)。
以前の雇用からのコードに関する最後の注記として:しないでください。人事の観点からは、以前の雇用からコードを要求することは不適切であり、会社についての危険信号です。あなたは両方とも法的責任を負うことになります(つまり、両方が訴えられる可能性があります)。以前の雇用主のために行われたコードは、コードがすでに公開されているか、その雇用主から明示的な許可を得ていない限り、決して与えてはなりません。さらに悪いことに、大企業では、直属の上司があなたに許可を与える権限を持っていない可能性があるので、その場合は法務部門で楽しんでください。既存の従業員に自分のIPを公開することは、彼らにとって大いに喜ばれることでしょう。
私はクリーンなコードについてRenesisからの投稿を2番目にしますが、提出するコードに品質と十分に文書化されたユニットテストを提供するリストに追加します。優れたプログラマーは、コードの単体テストを作成する必要があります。