PeterVerhas在一次技术面试中问了一个看似无关的问题,得到了一个正确但不恰当的答案。他接着宣称:“有时我遇到候选人,他们不仅不知道答案,而且聪明到会给出错误的答案。知道错误的答案比不知道更糟糕。一些人甚至坚持并试图向他们解释我。”我应该如何解释他们的答案。这已经成为一个人格问题,绝对是通过面试的一个。”我想声明,不仅彼得错了,而且这样的面试条件完全损害了我个人,我永远不会因为他所在公司的利益而以这种态度为公司工作。您可以先阅读他的原始文章。事实上,用不了多久。好吧,既然你已经了解了材料,那么让我们彻底探索一下。提出错误的问题对于初学者来说,在我看来整个过程都是错误的:有太多的Java技术面试问题,即使是最入门级的新手也能给出正确的答案。当我与初级候选人打交道时,我不会浪费时间问这些问题。我假设候选人知道正确答案。但是,有时有些候选人一开始我认为是新手,为了避免浪费他/她和我的时间,我会缩短面试时间,所以我会问一些简单的问题。这些问题的答案通常会揭示真实的知识水平,然后可以在相对较短的时间内对其进行评估。但是伙计们,有一件事很清楚:如果你是技术面试的面试官,那么你必须让他们写代码,而不是回答问题。除非他们申请的工作是回答编程问题(在这种情况下,您是在面试老师,而不是真正的程序员),否则您是在要求他们展示他们的技术能力,而不是他们的口头知识。这个道理应该是理所当然的,但是如果你还不明白,我将从逻辑、实例、类比三个方面进行论证。逻辑:并非您采访的每个程序员都接受过传统培训。他们可能不知道所有首选术语。它是“gettersandsetters”还是“自动定义的属性”或“accessorsandmutators”?这在某种程度上取决于您是使用哪种语言长大的(例如,如果是C++,则在相当长的一段时间内更喜欢后者)。这取决于你读的是什么书。这取决于您是否与其他人讨论过这个问题——也许是从一本书中,或者在互联网上阅读过。(最近的StackOverflow民意调查显示,大约三分之一或更多的求职者认为自己是“自学成才”的开发人员。)您是否因为完全合格的候选人没有使用正确的词语而将其踢出?这还不包括那些因为在面试中不知所措而争先恐后地回答简单问题的人。示例:一位为我工作了两年的开发人员是一位相当称职的C#开发人员。这个人可以领导一个团队,指导一些初级开发人员,并提出一些非常可靠的设计。然后,当一个潜在客户在会议上要求他解释什么是静态方法时,他完全搞砸了,突然开始谈论构造函数和其他无意义的东西。当他终于意识到他在说什么时,我已经坐在那里看着他看了几分钟,“到底是什么?!?”看。按照彼得的标准,毫无疑问他不会通过面试。然而,在那次会议之后,他仍然是那个客户的团队负责人9个月,对于他的技术、他的能力以及对那些静态问题的回答(具有讽刺意味的是,从来没有人谈论过这个!)没有人提出异议。也就是说,在没有面试压力的情况下,他做得很好,作品会说话。打个比方:比方说,如果你要雇一个乐队为你的婚礼演奏,你真的介意他们解释音乐理论和作曲的能力吗?还是您更关心他们是否可以播放您最喜欢的舞曲、播放您配偶选择的歌曲,或者让您的祖父母跳上舞池?许多乐队(我敢说所有乐队!!)因为他们的工作和/或演示而不是他们回答问题的能力而获得演出。期待错误答案接下来,彼得说,知道错误答案比不知道更糟糕。极少数人甚至坚持并试图向我解释我应该如何理解他们的回答。这已经成为一个人格问题,毫无疑问是通过面试的一个问题。呵呵,狂妄自大,还不如叫“编程面试大神”呢。我的意思是:这里有一个简单的问题:一个类的静态方法可以调用同一个类的非静态方法吗?如果您了解一点Java,就会知道答案是:不,您不能。静态方法属于类,不属于实例。您甚至可以直接使用类的名称来执行静态方法,而无需类的任何实例。它甚至可以在整个JVM中没有类的单个实例的情况下运行。那么,在哪里可以调用运行到实例的连接的普通方法呢?势利小人,没有理由认为静态方法不能调用实例方法,好吗?彼得在这里的问题是基于静态方法没有对特定对象的引用(通常是“this”引用)这一事实,这就是给出答案的原因:“没有this,就没有方法调用”。然而:话又说回来,这时候出来了一个候选人,他的回答是:是的。他甚至继续解释说,当静态方法访问实例时,就会发生这种情况。它可能会获得一个实例作为方法参数,并通过该引用,它可以调用实例方法。他是对的。但是:这样的回答并不能改变他对Java了解不多的事实,尽管在这个非常具体的问题上,他是对的。所以,请原谅我的直言不讳:这个答案可以说是正确的,但你也可以说是错误的,因为“这位候选人对Java没有深刻的理解”?但反过来,我也可以说,由于对Java有足够的了解,这位候选人能够找到一个不是你所期望的,但实际上是正确的答案。很明显接下来会发生什么:面试官对自己的技能很有信心,给候选人准备了一系列问题和规定性答案,如果候选人不按照他的答案回答,他就会被认定为“不合格”。让我根据我自己的经验给你举个例子。几年前,我去一家公司面试一个C++的职位。当我被问到“类外可以访问private字段吗?”,正常的回答应该是“不能,private会把这个字段封装起来,就像与世隔绝一样。”"#include
