C++ 应用科学计算工作面试测试
你知道一个好的和客观的问题/测试,以审查申请人的科学计算工作 (事实上,这项测试是在候选人通过面试后进行的。) 第一)他们需要聪明。(编辑,谢谢特伦特的话) 第二)他们必须主要处理编程(C++和Python,使用科学库)、数字和数学,但也要处理工程和物理主题。此外,不需要类似C或Fortran的样式。。。使用O.O.概念会很好C++ 应用科学计算工作面试测试,c++,selection,scientific-computing,C++,Selection,Scientific Computing,你知道一个好的和客观的问题/测试,以审查申请人的科学计算工作 (事实上,这项测试是在候选人通过面试后进行的。) 第一)他们需要聪明。(编辑,谢谢特伦特的话) 第二)他们必须主要处理编程(C++和Python,使用科学库)、数字和数学,但也要处理工程和物理主题。此外,不需要类似C或Fortran的样式。。。使用O.O.概念会很好 申请人可以使用编译器、工具、图书馆和互联网。测试持续时间不得超过4小时。找到聪明的人,他们将能够适应您的特定要求。这比试图找到一个符合你所有“复选框”的人要好得多 “让我
申请人可以使用编译器、工具、图书馆和互联网。测试持续时间不得超过4小时。找到聪明的人,他们将能够适应您的特定要求。这比试图找到一个符合你所有“复选框”的人要好得多 “让我相信你是对的 “这项工作的负责人” 通过这个问题,您可以测试优秀程序员所需的所有技能:
- 智力
- 创意
- 沟通
- 自我激励
对于知识,你可以总是要求人以“最可重用的方式知道”,而不是在Python和C++中访问因特网,来实现循环环缓冲器。真正的“可用”代码比大量的复选框问题更能说明人们和他们的编码文化。但你仍然应该测试他们是否喜欢计算。在面试的编程测试中有很多帖子。不要担心你的特定领域,只要看看他们是否能编码就行了
它总是让人大开眼界;从不无聊。最好是做一个小测试,并与他们讨论,而不是大测试。询问他们为什么做出各种选择等。然后你可以看看他们是否能清楚地解释自己我认为你最好尝试与该人讨论一个问题,看看他们在面对该问题时如何推理。他们想到了什么算法,他们熟悉解决问题的什么方法?他们看到了哪些可能的陷阱
通过允许对方与你讨论,你可以适应他们的特殊技能,也可以减少拒绝对考试感到紧张的候选人的风险。你也可以对这个人是否适合你的团队有一个良好的感觉——你不想要一个真正擅长解决面试类问题,但又不愿意讨论其他解决问题的方法或诸如此类的人。我认为你应该问问他的经验。
关于问题:不要问语言功能问题(比如a=b??c??d),程序员应该了解算法、解决问题以及团队中良好的沟通技巧(这真的很重要)我可以想到一些您可能想要涵盖的要点:
- 了解浮点计算以及浮点如何在内部表示(例如,请参阅)
- 熟悉近似算法(如根的牛顿近似、Reimann和)
- 通用图形和可视化软件
- 高效地处理大量数据
- 置信区间与不确定性
- 统计与概率
我曾经面试过一个软件开发人员的职位。聊了一会儿,他们说:“在你的简历上,你说你很熟悉C++和java。告诉我们你在这两个之间的区别,不局限于语言本身。”从那里开始,它流畅地流动,当你的问题适合时,你可以很容易地抛出问题。就像我说C++通常被翻译成机器代码,而java是字节代码,他们会问什么字节代码意味着什么,什么方法和优点是什么,等等。< /P> < P>…很容易的问题是要求某人使用他们想要使用的任何库来解决简单的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) 如果问题问得恰当(例如,如果要求他们计算加速度),领域知识(本例中为物理学)也会被测试
radiatorPower(flow, temperature) -> power
Water specific heat: c = 4190 J/(kg*K)