Answers:
这是我的具体情况,但是我认为这是一个很好的问题:
因此,您在这里说您从未接触过C#或.NET,对吗?好的,这是一个工作站。弄清楚如何编写一个程序来查询此数据库,并打印出带有其订单的客户列表,按客户名称排序。您可以使用所需的任何资源。
我曾经遇到过的唯一问题实际上测试了我的学习能力。
这不是编码问题,而是行为问题:
告诉我,有一次您无法按时完成所有工作,无法按时完成任务。你做了什么?结果如何?
在采访别人谁声称拥有的Java的经验一个不平凡的量,我问他们hashcode()
,并equals()
和他们之间的关系。如果不了解潜在的陷阱,实际上不可能获得大量的Java经验,并且任何不了解该问题的人都会在我的项目中添加难以发现的错误。
我还将询问ArrayList
和LinkedList
以及相对利弊。这有望证明他们至少了解和考虑了所编写代码的性能含义。
我还想让他们对某个技术主题(Maven的有用性或其他方面,受检查的还是未受检查的异常等)发表意见,然后扮演魔鬼的拥护者,看看他们能否很好地论证自己的观点。
“您读过的最后一本(最佳)技术书是什么?”
或者,更一般而言:
“您如何使自己的知识保持最新状态?”
令人惊讶的是,有多少人自从完成学业以来从未读过技术书。而且如果您自从十年前读完书后就从未读过书,那么您可能从未听说过单元测试,设计模式,SOLID原理等内容。
对评论的回应:
如果愿意,您可以投票否决我,但这是我最喜欢的面试问题之一。博客,维基百科,SO都是最新高科技新闻的重要来源。但是我认为您无法通过阅读博客来全面深入地学习真正复杂的主题(例如您在Knuth的书中找到的东西)。
如果我必须在两个开发人员之间进行选择,而一个开发人员表示愿意学习新的复杂主题,而另一个则没有,那么我将雇用第一个。即使他或她想要更多的钱。从长远来看,它将得到回报。
您认为自己是一个幸运的人吗?
我在对Bruel&Kjaer的创始成员之一的采访中读到了这篇文章,它引起了我的共鸣。成功人士很有可能认为自己很幸运。他们将挫折视为改进的机会,并倾向于与周围的人分享成功(运气)-幸运的人会带来更多的运气。*
自认倒霉的人更有可能成为您团队中的坏苹果。
*在这种情况下,运气应被视为准备会议的机会,而不是四叶草。
一直为我工作的那个...
“告诉我您以前的项目”。
然后以他们的回答为起点,向他们询问他们在项目中的角色以及他们为什么做出某些决定。我没有与SAT进行面试,而是与他们进行了交谈。那始终足以判断开发者是否适合该职位。
我只有一次被聘用的工作,我已经知道所使用的语言,所以语言特定的问题对我没有太大的价值。我个人也不太关心语法琐事(当您被困在充满饥饿的Zebras的畜栏中时,怎么做棉花糖?)和陷阱问题,所以我从不问这类问题。
如果您能在世界上找到任何工作,那会是什么?
我只是在寻找一件事:认真尝试回答它。唯一的错误答案就是这么笑,并告诉面试官这是世界上最陈词滥调的面试问题。(我没有投票赞成)。
这确实是我一直以来最喜欢的问题的设置:
如果您想成为[Rock Star],为什么要在[HugeCorp]申请成为[Internet Development Engineer III]?
如果他们实际给出一些大胆的答案,则效果最佳。他们很少看到它的到来,这确实是一个让人们大声疾呼的机会,比如说“这里的时光更好”或“我的职业生涯将比典型的摇滚明星更长寿”。
我还谎称第一个问题没有错误答案。除非您正在面试一些非常出色的梦想工作,否则他们面试的工作是错误的答案。而且,如果您正在为理想的工作面试而还没有工作,则应问自己为什么不申请。
在进行C#采访时,我喜欢问:“如何处理方法中的错误”?如果我对该问题的回答得体,请问“如何/如何在Web应用程序中设置错误处理?”
令我惊讶的是,有多少开发人员对第一个问题没有任何疑问,而对第二个问题却毫无头绪。我什至采访了许多无法描述他们当前项目中错误处理方式的人。
像这样:
乘以7的值,而无需使用*
,/
和+
操作。:)
(x << 3) - x
?
x -(-x) - (-x) -(-x) - (-x) -(-x) - (-x)
我对这个问题的答案失败感到惊讶:
您将如何搜索未排序列表中的项目?
我最喜欢的问题是:
(大概混合了Java / C#和伪代码)
使用非外来容器,设计一个类,使其表现得像字典一样性能尽可能好,这还允许您枚举键,这些键不是按“随机”顺序而是按这些键被添加到字典的顺序列出,因为最初创建。