您最喜欢的面试问题是什么?[关闭]


21

您发现哪个问题在采访软件开发人员时特别有价值?使它变得特别有用的问题是什么?

我正在寻找一个您想问的特定问题,而不仅仅是“让他们写代码”之类的面试方法。


2
这个问题-措词不具建设性,但有一些很好的答案。改写问题以匹配最佳答案,我建议您重新打开它。
克里斯·

@ChrisF:我改写尝试多一点“共享经验”和“问为什么”,这也应该吸引更多的“邀请更长的答案”。让我知道是否需要进一步修改。
蒂姆·古德曼

更好!
克里斯·

现在看问题和答案,仍然感觉没有建设性。看起来没有任何答案包含“为什么”并仅列出了问题。
亚当李尔

Answers:



22

这是我的具体情况,但是我认为这是一个很好的问题:

因此,您在这里说您从未接触过C#或.NET,对吗?好的,这是一个工作站。弄清楚如何编写一个程序来查询此数据库,并打印出带有其订单的客户列表,按客户名称排序。您可以使用所需的任何资源。

我曾经遇到过的唯一问题实际上测试了我的学习能力。


是在StackOverflow存在之前?
编辑于2010年

1
嗯,这不应该是您要提出的问题吗?
Paddyslacker

8
+1,这是一个完美的问题。如果他们无法通过Google找出基本的语言结构,那么它们将无济于事。
乔什·K

我喜欢它,它表明他们可以很好地学习从未使用过的编程语言。我可能会因为面试问题而偷窃它:)
理查德(Richard)

1
似乎毫无意义,任何人都可以直接从msdn复制粘贴糟糕的.net代码。
dotjoe 2011年

15

这不是编码问题,而是行为问题:

告诉我,有一次您无法按时完成所有工作,无法按时完成任务。你做了什么?结果如何?


3
为什么这是一个好问题?似乎毫无意义,我
乔·菲利普斯

9
关键是,从开发人员的答案中我得到了很多信息。首先,如果他们不承认自己曾经发生过这种情况,那么他们要么是在自欺欺人,要么是他们没有实际项目的经验。其次,如果他们不谈论如何与团队沟通此问题,而是谈论他们将如何努力解决该问题,我不想雇用他们。沟通不畅是我在项目中看到的大多数问题的原因。我想聘请积极的传播者。
Paddyslacker

3
我问一个类似的更一般的问题(“告诉我发生问题的时间,以及您的反应是什么……”)非常开放,但是我有一个受访者发誓要说什么都没有为他出了错。不用说我不推荐他租用。
Alex Feinman

13

您是如何开始编程的?

查看人员是否对编程充满热情并打破僵局的好方法。


11

在采访别人谁声称拥有的Java的经验一个不平凡的量,我问他们hashcode(),并equals()和他们之间的关系。如果不了解潜在的陷阱,实际上不可能获得大量的Java经验,并且任何不了解该问题的人都会在我的项目中添加难以发现的错误。

我还将询问ArrayListLinkedList以及相对利弊。这有望证明他们至少了解和考虑了所编写代码的性能含义。

我还想让他们对某个技术主题(Maven的有用性或其他方面,受检查的还是未受检查的异常等)发表意见,然后扮演魔鬼的拥护者,看看他们能否很好地论证自己的观点。


+1我喜欢ArrayList和LinkedList。我已经看到很多关于人们说ArrayLists应该被废除的评论,但是我可以想到很多比LinkedLists更好的用途
Evan Plaice 2010年

大声笑!曾经有两个面试官问我有关列表和地图之间的区别。我给了他们如此惊讶的表情,他们实际上道歉了(然后我回答了他们的问题,我们当然继续了采访)。
希拉,

6

“您读过的最后一本(最佳)技术书是什么?”

或者,更一般而言:

“您如何使自己的知识保持最新状态?”

令人惊讶的是,有多少人自从完成学业以来从未读过技术书。而且如果您自从十年前读完书后就从未读过书,那么您可能从未听说过单元测试,设计模式,SOLID原理等内容。

对评论的回应

如果愿意,您可以投票否决我,但这是我最喜欢的面试问题之一。博客,维基百科,SO都是最新高科技新闻的重要来源。但是我认为您无法通过阅读博客来全面深入地学习真正复杂的主题(例如您在Knuth的书中找到的东西)。

如果我必须在两个开发人员之间进行选择,而一个开发人员表示愿意学习新的复杂主题,而另一个则没有,那么我将雇用第一个。即使他或她想要更多的钱。从长远来看,它将得到回报。


-1。我很少打开技术书籍,但是知道什么是TTD并了解一些设计模式。我从SO(例如什么是工厂模式)以及Jon Skeet和其他专业人员的博客中学到的东西要比从平庸的书本中学到的更多。例如,我所见过的书都没有一本解释为什么FxCop和StyleCop检查对于编写可重用的下降源代码如此重要(甚至没有提到那些工具)。
2011年

3
+1您可以通过在线文章和博客学到很多东西,但是即使如此,不阅读技术书籍也意味着我缺乏主动性和平庸性。
Dunk


5

您认为自己是一个幸运的人吗?

我在对Bruel&Kjaer的创始成员之一的采访中读到了这篇文章,它引起了我的共鸣。成功人士很有可能认为自己很幸运。他们将挫折视为改进的机会,并倾向于与周围的人分享成功(运气)-幸运的人会带来更多的运气。*

自认倒霉的人更有可能成为您团队中的坏苹果

*在这种情况下,运气应被视为准备会议的机会,而不是四叶草。


1
+1我想再投票几次。
ocodo 2011年

拿破仑曾经说过“给我幸运的将军们!”
Zachary K

4

一直为我工作的那个...

“告诉我您以前的项目”

然后以他们的回答为起点,向他们询问他们在项目中的角色以及他们为什么做出某些决定。我没有与SAT进行面试,而是与他们进行了交谈。那始终足以判断开发者是否适合该职位。

我只有一次被聘用的工作,我已经知道所使用的语言,所以语言特定的问题对我没有太大的价值。我个人也不太关心语法琐事(当您被困在充满饥饿的Zebras的畜栏中时,怎么做棉花糖?)和陷阱问题,所以我从不问这类问题。


+1。我也要问。但是有时很难找出候选人在项目中的职能是什么(项目经理?首席开发商?维护开发商?咖啡机操作员?),尤其是当他们与许多人一起从事大型项目时。
nikie 2011年

2
如果您能在世界上找到任何工作,那会是什么?

我只是在寻找一件事:认真尝试回答它。唯一的错误答案就是这么笑,并告诉面试官这是世界上最陈词滥调的面试问题。(我没有投票赞成)。

这确实是一直以来最喜欢的问题的设置:

如果您想成为[Rock Star],为什么要在[HugeCorp]申请成为[Internet Development Engineer III]?

如果他们实际给出一些大胆的答案,则效果最佳。他们很少看到它的到来,这确实是一个让人们大声疾呼的机会,比如说“这里的时光更好”或“我的职业生涯将比典型的摇滚明星更长寿”。

我还谎称第一个问题没有错误答案。除非您正在面试一些非常出色的梦想工作,否则他们面试的工作是错误的答案。而且,如果您正在为理想的工作面试而还没有工作,则应问自己为什么不申请。


“而且,如果您正在为理想的工作面试而还没有工作,则应该问自己为什么不申请。” -听起来像是“如果不愿意就该死,如果不愿意就该死”的问题-尤其是如果您以描述方式对待答案。如果某人心中有梦想的工作,也许他们不觉得自己已经准备好接受这份工作,并且需要更多的经验,可以在贵公司学习。为什么要反对他们?
Mark Freedman

4
-1我拒绝了公司提出的工作邀请,在这些公司中,人们提出了愚蠢的,完全不相关的问题。#1与工作或您的表现无关。#2面试官不是去面试那个人,而是通过欺骗他们来证明自己比被采访者更聪明,并相信我的傲慢态度很强烈。 3如果我在面试中不喜欢这些问题,我认为我不想和pr @#k $一起在工作面试中问这些类型的问题。用啤酒问这个问题是另一回事。
Dunk

@Dunk:您是对的,技巧性问题比采访者更多地谈论采访者。但是总体上询问一个人的目标和愿望是有道理的。您希望您的员工对他们的工作感到满意(不快乐的人没有生产力),因此您想知道自己是否适合他们。
nikie 2011年

@Dunk因为我每天与客户打交道的人会提出陈词滥调的问题,并且经常重复同样的愚蠢错误,所以这样的陈词滥调问题也有助于自我选择无法在我的工作中与客户打交道的人的类型。好处是工作要付出一定的补偿来容忍这种行为。因此从这个意义上讲,这确实是一个完美的问题。
shemnon 2011年

@Mark Freedman-我不反对他们。这使他们有机会对自己的职业道路诚实和直接。如果受访者认为他们“如果这样做就被诅咒,如果不这样做就被诅咒”,那么这份工作就不适合他们。如果您不愿意以诚实的回答伸出自己的脖子,那已经是一个标记。
shemnon 2011年

2

在进行C#采访时,我喜欢问:“如何处理方法中的错误”?如果我对该问题的回答得体,请问“如何/如何在Web应用程序中设置错误处理?”

令我惊讶的是,有多少开发人员对第一个问题没有任何疑问,而对第二个问题却毫无头绪。我什至采访了许多无法描述他们当前项目中错误处理方式的人。


2

像这样:

乘以7的值,而无需使用*/+操作。:)


4
您的代码库是否需要位纠缠的知识,还是只是为了评估对细节的兴趣?
彼得·泰勒

2
请注意,他没有说“或”
Ben L

1
@Ben,我想您只是将逻辑炸弹扔进
活板

2
是不是(x << 3) - x
user13278 2011年

1
或更简单:x -(-x) - (-x) -(-x) - (-x) -(-x) - (-x)
nikie 2011年

1

与David相似,但略有不同:

看一下早期版本中凌乱的实际生产代码,我们后来对其进行了修复和改进。告诉我它做什么。告诉我问题出在哪里(正确性和样式)。告诉我您将如何解决和改进它。

这有助于区分仅能编写新代码的人员和能够应对遗留代码库现实的人员。


0

很多年前,有人问我正则表达式/ a * /和/ a *?/

我个人倾向于问一些关于递归的问题。


1
?表示贪婪还是零或一?我已经看过两种语法。
保罗·内森

1
哪个方言?

那是perl5,也大约是11年前。是的,这是贪婪而不是贪婪。
Zachary K

0

我对这个问题的答案失败感到惊讶:

您将如何搜索未排序列表中的项目?


这是一个很深的问题:匹配是如何定义的?您对列表中的部分排序有任何了解吗?这是什么样的清单?这些物品可以分类吗?列表有多大?比较与检查匹配项的相对计算成本是多少?不同的这些问题的答案可能会改变的最佳方法.....
mikera

该搜索多久进行一次?会成为性能瓶颈吗?
Justsalt 2012年

WTF,伙计们。从第一个或最后一个项目开始,比较,如果不匹配则移至下一个项目。唯一的问题是:我们是在乎多个比赛还是在第一场比赛中中断搜索?如果您想提供一些见解,可以添加:对于链接列表,这无关紧要,但是对于索引列表,如果我也想提取匹配项,则可以以相反的顺序遍历该列表,因此不必更新循环条件外的索引。
NotGaeL 2015年

0

我最喜欢的问题是:

(大概混合了Java / C#和伪代码)

使用非外来容器,设计一个类,使其表现得像字典一样性能尽可能好,这还允许您枚举键,这些键不是按“随机”顺序而是按这些键被添加到字典的顺序列出,因为最初创建。


这导致了太多的澄清问题。仅使用两个哈希表或一个哈希表和一个数组列表是否公平:一个保存排序,一个保存排序?是否有必要删除东西?(这使它变得更加复杂。)如果更新了值,该值是否算作重新添加?
dsimcha 2011年

@dsimcha,很好。我有20到30分钟的谈话时间,我首先开始:请随时要求澄清。如果您觉得自己陷入困境,我很乐意提供提示或指导您正确的方向。如果这个人仍在旋转,那么我会说他们不理解数据结构。就澄清我想要什么-我宁愿不加限制地将其放在不同的方向。
工作
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.