代码之家  ›  专栏  ›  技术社区  ›  lorenzog

(学生)面试问题-机器人实验室编程

  •  5
  • lorenzog  · 技术社区  · 7 年前

    我的机器人实验室正在寻找程序员来完成我们目前的一些项目。

    所以我的问题是:

    或者,如果你是被采访者,

    有人问了哪些问题让你欣然接受?或者,如果你有过一次糟糕的经历,回想起来,你忽略了什么明显的警告信号?

    请注意我是 寻找有争议的答案。我们可以整天谈论什么对我们最好,从不同意。

    相反,我在寻找 根据你的经验。轶事,故事,暗示,一切都会有帮助。


    背景:

    背景:在这里为学术界工作与为私营部门工作(这里=意大利)略有不同。没有“销售”产品的“最后期限”;相反,这都是基于概念的证明。你开始做的任何事情都不能保证是有效的。

    漫画最能描述这一点: reinventing the wheel

    一切

    很多东西被一次又一次地改造和重写(只是因为没人知道) ). 人来人往,前途未卜,但我们玩机器人,所以很酷:)

    此外,由于人手不足,没有人能跟随你并指导你的项目。充其量你就是那个必须拿出计划、背景资料和工作原型的人。

    • 可以高度独立
    • 希望 学习和建立自己在新领域的专长
    5 回复  |  直到 14 年前
        1
  •  3
  •   Staffan    15 年前

    实际上,这是我最好的建议:

    在你的学生中招募。

    既然你在一个学术机构工作,我想要么你要么你的同事教书。这就为你提供了大量的信息,告诉你潜在的新兵有什么能力——他们学习的速度有多快,他们的积极性有多高,他们擅长什么和不擅长什么,他们在实验室任务和项目中提交的代码是什么样的,等等。

        2
  •  2
  •   Ragster    15 年前

    首先,在工业界,编码问题是非常正常的-我会担心如果编码问题不被问!

    我负责技术面试已经有十年了。是的,我问编码问题。但问题本身并不是重点。我更感兴趣的是了解应聘者是否能思考和表达自己的想法。

    我问的一个问题是关于继承人的继承权。没有一个正确的答案,尽管有很多错误的答案。但重要的是他们如何处理这个问题,他们提出的观点支持一种设计而不是另一种。

    然而,很有可能有聪明的人谁是不可能的工作!我还没弄清楚怎么确定他们是谁。

        3
  •  1
  •   Matthieu M.    15 年前

    我认为最明显的要求是动机/激情。因为他们大部分都是独立的,所以你需要他们有点独立,能够独立思考,这首先需要动力。

    然后是能力问题。就像你说的,要发现那些聪明到可以自己解决问题和做事的人可能并不容易。再次,你可以询问他们过去的项目,让他们详细说明他们面临的问题以及他们是如何解决的。

    最后,我同意你的看法,他们的能力应该得到一些证明。一开始他们可能会有点紧张,所以我会在最后这样做,一旦面试已经开始,你可能有机会让他们通过这种方式放松之前的问题。

    我们遇到了一个问题,机器人不能分析相机拍摄的图像,它不能正确地确定移动的物体本身,你知道你会怎么做吗?

    那你就得让他们想办法了。你需要一个白板,让他们大声思考,这样你就可以跟随他们的反应。你可能需要时不时地推动他们一点,让他们走上正轨,他们对你的意见的反应也是这里的一个关键点,因为你希望他们能够接受批评,并在此基础上再接再厉,否则你可能会在指导他们之后遇到问题。

    坦率地说,尽量避免要求他们使用快速排序算法,或introsort,或基数排序。。。如果他们需要分类,他们只需启动电脑浏览互联网。另一方面,让他们分析一个他们不知道的现有算法(例如,5排序的中位数),并检查他们是否理解它为什么工作,可能是值得的。如果他们需要自己工作,他们也需要能够自己学习:)

        4
  •  0
  •   Staffan    15 年前

    就像其他人说的,试着雇佣一个有动力的人!

    对于硕士学位论文的学生,我更强调了解基本技能(编程,知道如何使用版本控制),因为他们没有停留足够长的时间来学习所有的东西。

    如果他们主要是自己工作,而你对语言没有特殊要求,我就不会太关注语言问题。但是每一个优秀的程序员至少对一种语言都相当熟悉,他们可以得到一个样本或者他们以前的工作,或者让他们编写一些简单的应用程序来测试他们不喜欢的东西。

    也可以问一些设计问题,例如什么是“耦合”以及为什么不好,问他们是否知道设计模式是什么,等等。

    显然,如果你想让他们执行任何真正的机器人技术,你也应该检查这些知识。例如,估计(在我的书中,理解简单的EKF和粒子滤波器是一个要求)、控制理论、模式识别、机器学习、视觉,或者任何对特定任务有用的东西。

    如果我雇一个人来做理论工作,我也许会放松对CS/编程技能的学习,更多地关注数学知识。有扎实的数学技能的人会很容易学会CS,而编程就是编程。

    要求参考或看到一些以前的工作。许多优秀的学生毕业后已经有了一些有趣的项目要展示。

        5
  •  0
  •   Eric Mickelsen    15 年前