当前位置:  开发笔记 > 编程语言 > 正文

应用科学计算工作的面试测试

如何解决《应用科学计算工作的面试测试》经验,为你挑选了4个好方法。

您是否知道一个好的和客观的问题/测试来检查申请人的科学计算工作?

(事实上​​,这个考试是在考生通过面试之后进行的.)

1)他们需要聪明.(编辑,感谢Trent的话)

他们将不得不主要处理编程(C++和Python,使用科学库),数字和数学,还有工程和物理主题.此外,不需要类似C或类似Fortran的风格......使用OO概念会很好.

申请人可以访问编译器,工具,图书馆和互联网.测试持续时间不应超过4小时.



1> Trent..:

找到聪明的人,他们将能够适应您的特定要求.这比试图找到满足所有"复选框"的人要好得多.


完全同意这一点.智力>知识

2> pm100..:

但是你仍然应该测试一下他们是否可以进行计算.在面试的编程测试中有任意数量的帖子.不要担心您的特定域名,只要看看他们是否可以编码.

它总是令人大开眼界; 永远无聊.最好是给它一个较小的测试并与它们讨论,而不是一个大的测试.问他们为什么做出各种选择等等.然后你会看看他们是否可以清楚地解释自己



3> Chinmay Kanc..:

嗯,一个简单的问题是要求某人使用他们希望使用的任何库来解决一个简单的ODE系统.我所知道的所有图书馆都不够简单,以至于可以在测试期间学习它们.例如,解决此系统x=1:10:dx/dt = -k (x^2/x).

更难的是要求某人解决僵硬的 ODE系统.在这里,算法的选择变得重要,"猜测"可能不起作用.例如,大多数Michaelis-Menten方程都很僵硬.

dS/dt = - vmax * S/(Ks + S)

其中dS是底物耗尽率,vmax和Ks是常数(你可以给候选者).在这里选择错误的求解器会导致相当灾难性的结果,正如我亲自发现的那样.

这两个问题本身都没有任何好处,因为几乎任何人都可以通过试验和错误解决它,只需要4个小时来解决它.但作为更大测试的一部分,它们可能很有用.

编辑:它证明了什么?那么,ODE 在科学计算中无处不在.如果你在某些方面没有至少轻易地处理它们,那么你知道这是一个很大的漏洞.我只是试着按照要求回答这个问题."向申请人提出科学计算工作的具体问题是什么?" 要解决问题,申请人必须知道

1)基础微积分.

2)某种科学计算库(MATLAB,SciPy,GSL).

3)如果问题被恰当地询问(例如,如果他们被要求计算加速率),则还测试领域知识(在这种情况下为物理学).

我想这会检查所有方框:)


我不同意.我同意某人处理问题的方式,但对我而言,它太具体,需要太多的先进知识."科学计算"是一个非常广泛的教会 - 我可以抛出关于偏微分方程或数值分析问题的统计问题或问题

4> zebrabox..:

我可能会后悔这一点,但这是我对FWIW的一般建议

1)采访候选人而不是工作规范.

在你的规范中有一套最基本的'Essential',你不会妥协,看看候选人并看看他们带来了什么其他技能 - 他们甚至可能带来你不知道你需要的技能

2)考试候选人

测试可能是一些口头问题,书面测试等等.这并不重要,但你肯定需要了解候选人知道什么以及他们不知道什么.

3)让候选人写代码

您将通过他们如何处理问题,如何实施问题以及更重要的是他们如何解释他们对您所做的事情来了解更多关于某人的信息.请记住,这就是你雇用他们做的事情,这是他们一天中大部分时间都要做的事情

4)不要问很多'记忆问题'

要求某人记住std :: algorithm的确切格式或System.Xml.XmlDocument中的所有方法都没有用处.人们使用docs和Intellisense - 克服它.

5)请问开放式问题

提出几个没有"正确"或"错误"答案的问题 - 这样你就可以给候选人提供他们的意见,而你正在进行对话,而不是一个美化的"勾选清单".双向对话有帮助,因为它允许候选人放松,同样重要的是,它可以让你放松.进行讨论可以告诉你很多关于候选人的信息,即他们听取你的意见,他们如何回应反驳

6)看看他们是否完成了他们的研究

如果他们听说过您的产品/团队/游戏/公司,请务必询问他们.如果他们不能告诉你他们申请的公司最简单的一点,那么你很可能不希望他们在贵公司工作.毕竟输入谷歌需要30秒,所以对这个人来说是残酷的.相信我.

7)不要自己面试

你可能超级聪明,你可能知道你想要什么,你可能认为你可以阅读人,但软件开发主要是一种协作努力,所以进入一些人而不只是让另一位经理或高级程序员 - 带来在你的团队中听取他们的意见.重要的是,赶上后来讨论候选人,同时它仍然在你的脑海中.

8)不要急于面试

分配面试的时间很大程度上取决于你面试的职位类型,即初级,经验丰富,高级,但总是在你认为自己需要的时间长达半小时.这给你提供了呼吸的空间,如果你早点完成,那就好了.如果需要,请进行第二次面试.我经常做两次采访 - 第一次是技术性的,第二次更侧重于个性和团队.

您可能觉得不合适或者没有时间,但不要打折.如果你觉得你第一次没有从候选人那里得到足够的东西而且仍然有可能让他们回来.如果他们想在你的公司/团队工作那么他们就会回来.

9)请求证据

如果一位候选人说'为......的发展做出了重大贡献'那么就问问他们他们做了什么,详细地说,他们从经验中学到了什么以及他们将再做些什么.如果他们不能给你证据和细节,那么他们很可能没有"显着贡献".要注意一直使用"我们做过"的候选人.当然,开发是在团队中完成的,但他们必须能够说出他们贡献的内容以及描述团队的努力.

10)要做好诚实坦率的准备.

大多数候选人略微过度销售自己.这很好,他们的简历是让他们接受采访的原因.但是,如果你认为候选人没有完全了解他们的经历,那么就这么说吧.确保你探索优势和劣势.太多的采访最终成为一个细长的销售交易所.是的,候选人知道UDP的来龙去脉,但是他/她知道什么时候他们做出了错误的决定以及他们如何处理这个问题,这很棒!问他们上一次他们错了或他们做出的最后一个错误的决定.小心不要太过沉重或者判断力 - 错误是完全自然的,我们大多数人一直这样做,这就是我们处理它的重要性.

11)不要自信地接受.

知道你的东西和认为你比其他人更好之间有一个很好的界限.在像编程这样的知识型专业中,这总是对我们所有人的诱惑.我同意杰夫阿特伍德的观点.一个优秀的程序员知道编码很难,他们会犯错误,很多时候他们的代码很糟糕.糟糕的程序员不会 - 他们认为其他人的代码很糟糕.买者自负.

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有