プログラマーの力量を見極める–面接官になったら尋ねるべき質問実例集 – IT業界を生き抜く秘密10箇条 – ZDNet Japan
まず最初の4問
- 「等値」と「等価」の違いを説明してください。
- 「値渡し」と「参照渡し」の違いは何ですか?オブジェクト指向システムや手続き型システムにおいて、これらにはどのような違いが存在するのかを説明してください。
- 「ポリモーフィズム」とは何かを説明してください。
- 「悲観的ロック」と「楽観的ロック」を比較し、違いを明確に述べてください。
1番目が判りませんでした。プログラマになって10年以上経つけど、入門レベルらしい。
「等値」は判るよ。字の通り「値が等しいこと」。2つの値aとbが同じ値だということ。a == b が真ということ。
「等価」というのは、調べたら、「対象よりも大きくも小さくもないということ」。 !(a < b) && !( b < a) が真な条件を満たすもののこと。だそうな。
ソートしたときに前後どちらでも構わない、ということなので、プログラマ的にはクラスや構造体のソートを思い浮かべると良さそう。
複数のメンバを持ったクラスで、比較に使うのは一部のメンバだった場合、比較の結果同じと判断されても、比較に使われなかったメンバの値は違うかもしれない。その状態を等価っていうんじゃないかな。
バカテスで例えるなら、
「吉井明久と島田美波は古典のテストで二人とも30点だった時、明久と美波は別の人なので等値ではないけど、古典の順位としては二人とも最下位なので等価である。」
みたいな…合ってるのか?この喩え。
つか、面接でバカテスを例に出したらアウトだろ。
その他の問題も、判らなくはないけど、面接官を頷かせるような回答ができるかどうか自信ないわ。
再就職とかできないわー。