工作面试测试[关闭]
Posted
技术标签:
【中文标题】工作面试测试[关闭]【英文标题】:Job Interview test [closed] 【发布时间】:2011-08-06 15:22:18 【问题描述】:我有一个软件工程师职位的第一份工作面试,但在电子邮件中他们说我必须在面试阶段写出一个程序。每个人都这样做吗?
适合毕业生的课程是什么?
这份工作是为 .NET 开发人员准备的,但我可以使用任何语言,所以我会坚持使用 C#。我真的很讨厌它;我不知道他们要我做什么。
【问题讨论】:
我不确定程序,但雇主也喜欢在线技能测试。尝试通过其中一些。这个tests4geeks.com/test/c-sharp 对验证你的 C# 技能很有帮助。 【参考方案1】:许多公司会花费大量面试时间要求候选人编写实际代码(通常在白板或纸上,但有时在真实计算机上),因为这是查看他们是否会在工作中取得成功的好方法.需要注意的一些事项:
-
大声说话。面试官通常更关心你的思考过程和解决问题的方法,而不是关心你编写的实际代码。
提问。面试官通常会故意使问题模棱两可,只是为了看看你是否会注意到并寻求澄清。问诸如“谁是观众?”之类的问题。 “我应该包括异常处理吗?” “我应该优化性能还是只确保它有效?”
如果你在挣扎,不要慌张。告诉面试你的想法,他们通常会为你指出正确的方向。部分学分。
在面试前睡个好觉。大量的白板编码和相关讨论可能会令人吃惊。
优秀的面试官将能够提取您一生中学到的东西,所以不要太担心最后一分钟的学习课程。太晚了。也就是说,复习基本的语言语法和核心数据结构和算法并不是一个坏主意。
这里有一些你可能想练习写在纸上的示例问题:
-
编写一个函数来计算斐波那契数列中的第 n 个数字。
编写一个函数对 2 个数字数组进行排序(不使用现有库)。
设计一个 Deck 类和一个 Card 类,并编写一个函数来洗牌。
设计一个 Circle 类并编写一个函数来确定 2 个圆是否相交。
设计一个 LinkedList 类并编写一个函数来反转列表中的元素。
【讨论】:
不要取消。并非所有公司都会如此困难。最坏的情况,你会得到一些很好的面试经验。祝你好运! 问题 1 和 4 只有在 a) 你愿意向受访者解释斐波那契数列是什么,并且 b) 你愿意定义什么是“圆”以及什么是“相交”是必然的。这些都是教科书式的问题,任何经验丰富的开发人员都应该能够在看到通用解决方案的情况下重新解决这些问题,但可能无法当场“发明”。这些类型的面试是不必要的,通常不会透露候选人是否能够/将能够完成他们正在面试的工作。任何人都可以上网查找洗牌算法。 我认为为这些问题之一带来解决方案并让受访者为您分析它更有意义......更好的是,破坏算法并让受访者诊断它。 @Hill 这是我们使用的方法之一。在雇用开发人员时,我们会以几种关键方式破坏我们的系统,以确保他们可以导航用户控件(ASP.NET Web 窗体)并确保他们可以使用调试器。然后我们让他们编写一个简单的表单,将输入存储到数据库表中。总的来说,事实证明它非常有效。 @ahwm - 出于好奇...假设您不雇用未通过筛选的开发人员,这意味着您没有可比较的样本,您怎么知道它的有效性?【参考方案2】:通常软件开发工作会提供简单的测试。我从来没有面试过只需要简单实现一个函数的工作。
这是我知道的一些简单测试:
FizzBuzz:http://www.geekschool.org/programming/fizzbuzz/ 在 MS 的一份工作中,我被要求编写一个函数来反转字符串中的单词。 在另一份工作中,我被要求用 C++ 编写 Join 函数的实现。 我的一个朋友得到了这个用于游戏开发:编写一个函数来测试简单的矩形碰撞【讨论】:
【参考方案3】:我们一直在发布编程测试。除了测试编码能力这一显而易见的原因之外,这样做有很多原因。我们寻找
a) 编码风格 b) 开发和实施算法的能力 c) 能够遵循指示 d) 能够沟通已完成的工作
但是到目前为止,编程测试最有价值的事情是与候选人讨论他们为什么这样做。在这个讨论中,候选人真正理解测试以及他们自己的设计和实现的程度很快就会变得很明显。它还可以很快根除抄袭。
【讨论】:
这是否意味着现场编码(在笔记本电脑上)通常会尝试评估您的算法/数据结构技能,同时寻找一些干净的代码?我想知道他们是否有时会给出一些接近实际业务问题并要求您在笔记本电脑上编写代码?【参考方案4】:至少可以做到这一点FizzBuzz
到安排面试时,按照准备的顺序,您可能没有太多可以做的事情。
请记住,他们想了解您的问题解决过程。尽量大声思考,如果你真的不知道,就直说吧。
无论他们提出什么类型的问题,只要顺其自然,尽力而为。 面试官最不想看到的人是因为某个特定问题而心慌或不安的人。我会第一个承认面试中提出的一些问题可能是蹩脚和不必要的,但你正试图从这些人那里得到一份工作,你只能取悦他们。
当你有更多的时间学习时,你可能应该开始关注Questions every good .NET developer should be able to answer.
【讨论】:
【参考方案5】:如果公司在面试中不要求你写代码,那真的非常非常糟糕。去另一家公司。
测试类型取决于。我已经完成了我必须编写带有指针或递归函数的小型 C 代码的测试。
但一般来说,他们要求一个基本的 asp.net 应用程序(我也是 C# 开发人员),就像一个表单,插入和读取数据库。
【讨论】:
要么非常糟糕,要么非常好:) 怎么可能真的很好?我唯一一次没有编写代码就被录用,我是非 IT 公司的第一个 IT 员工。所以他们不知道。我接受了这份工作,因为我可以组建自己的团队。 我面试了很多,我不寻找知道如何编写代码的人,我希望人们能够思考、设计和执行计划 + 在团队中工作并交流他们的想法。 . 学习一门语言并不难,12 岁的孩子每天都会这样做!也就是说,我确实使用编码任务,但我不在乎候选人是否编写伪代码,甚至只是创建一个易于实现的良好设计。今天我们写 C++,明天写 Rust,谁知道我们可能会运行 PythonRT( 【参考方案6】:很可能是像FizzBuzz 这样简单的东西,只是为了淘汰完全不合格的人。
【讨论】:
以上是关于工作面试测试[关闭]的主要内容,如果未能解决你的问题,请参考以下文章