面接のC++プログラマーとして、面接担当者が優れたプログラミングスタイルについての私の知識を調査したいと思っていた状況に繰り返し出会いました。これらは通常、OOPの基本的な知識を中心としていました。
OOPは概念をカプセル化するのに便利であり、毎日使用しています。しかし、C++のような言語は多くの異なるスタイルを許可し、TMPやSTLアルゴリズムのような一部のC++アプローチはOOPまったく(ただし、関数型プログラミングに似ています)私は、他人のアプローチについての私の知識を、傲慢にならずに、または基本を理解せずに誰かに出会わずに、最もよく「売る」方法にこだわっています。 OOPの質問者の強調は、OOPは万能薬であると信じられていましたが、それは傲慢な立場です取る。
このような質問を最大限に活用するにはどうすればよいですか?
あなたはこの種の質問に最善を尽くさなければならないでしょう、あなたはどんな種類の質問にも最善を尽くすべきだと思います。
後でインタビュアーに質問する機会が与えられたら、次のような質問をして、件名を上げる必要があります。
など...このようにして、他のアプローチで専門知識を販売することについて会話を始めるだけでなく、OOP inそのチーム/会社。
質問者の動機についてあまり心配せず、正直に答えてください。インタビューは双方向です。イデオロギー的に柔軟性のない会社に行き詰まりたくないだけのことです。
そうは言っても、あなたは面接官の意図について少し偏執的だと思います。驚くほど多くのプロのプログラマーがOOPの基本を理解していません。 99%の確率で、インタビュアーはOOP kool-aidを飲んでいるかどうかを確認しようとはしていませんが、基本的に理解している場合にのみ確認したいと考えています。パラダイムは特定のソリューションに適しています。面接担当者は、それが情報に基づいた結論であり、OOPの無知から生まれたものではないことを知りたいと考えています。
合理化は、誰かが何かを理解していない場合の非常に一般的な防御メカニズムです。人々が概念を理解していない場合、彼らはその概念が自分の無知を認めるのではなく、愚かであるか、適用できないと主張します。 OOPは答えとしては不適切な選択ですが、それでも合理化者と区別する必要があります。これを行う方法はbothを説明することです= OOPソリューションおよびなぜその状況でそれが不適切な選択であると考えるのか。
[〜#〜] solid [〜#〜] の原則に従うことを強調します。これはOOPなど)です。それだけでなく、コードがオブジェクト指向ですが、SOLIDの原則に従ってオブジェクトを置き換えることは比較的簡単なタスクです。OOPを知っているというメッセージを送信するだけでなく、 OOPハックの複雑なコードからのコードの微妙なポイントを理解するOOP Cでプログラミングするために使用された誰かによって書かれたコードであり、他のすべての言語はプログラミングされるべきであると考える同じように、正直に言うと、それがOOPを使用できるだけでなく、優れたプログラマーになる理由です。
5つの原則のそれぞれについて、それぞれが重要である理由と、その原則を無視するコードに何が起こる可能性があるのかを徹底的に説明する準備をしてください。