皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

Reddit是如何面试工程师的

作者 薛命灯

在Reddit负责招聘的Elena Sparger在官方博客上介绍了Reddit的技术招聘流程,并给出了一些有益的建议。

Reddit的招聘流程其实没有那么复杂,从简历筛选到入职一共也就五个步骤:筛选简历、技术电面、现场面试、发录用通知书、入职报到。

Reddit是如何面试工程师的

技术电面

在简历通过筛选之后,就开始技术电面。电面只是作为一般性的能力测评,考察候选人的基本技术能力,比如对Web和Web安全问题的了解。这一轮的面试带有“半QA半Dev”的风格,你可能不会知道每一个问题的答案,不过没有关系。这轮面试的目的是划清候选人的技术知识边界,看看他们是否与职位要求的技能相匹配。候选人在回答问题时最好可以解释一下自己是如何知道这个答案的,以及为什么要选择这个答案。

贴士:在接受电话面试的时候,最好先准备好一台已经联网的电脑,并保持手机信号畅通。

现场面试

Reddit的现场面试分为六轮,其中三轮与开发技术相关,三轮与QA相关,整个过程可能持续五个小时左右。

Reddit是如何面试工程师的

现场面试会被安排在一个房间里进行,里面有一个白板,在面试过程中可以使用这个白板。候选人可以带自己的电脑来,也可以使用Reddit提供的电脑。之所以需要一台电脑,是因为Reddit想看到候选人真正的编码能力。Reddit在着装要求上没有硬性规定,所以候选人可以穿自己觉得舒服的衣服前往面试。

现场技术面试

现场技术面试主要涉及以下两个方面的内容。

  • 代码和算法。这一部分主要考察候选人的一般性软件工程概念和专业领域的知识(比如前端、后端、机器学习,等等)。
  • 系统设计。这一部分不涉及代码,主要是系统设计方面的问题。比如“如何构建具有X功能的服务”或者“如何对已有的服务进行伸缩”。这个时候可以利用房间里的白板与面试官展开讨论。

在回答技术问题的同时,不要忽略了与面试官之间交流的重要性。面试的目的并不完全是考擦候选人是否知道问题的答案,同时也会考擦候选人的团队协作能力。人不是万能的,如果候选人不知道如何回答一个问题,可以适当地求助面试官。

  • 仔细听取面试官的意见。有些问题面试官已经问过别人几百遍了,他们可能知道很多解决方案。
  • 对于给出的解决方案,总结其优缺点。产生想法比是否能够真正实现更加重要。
  • 欲速则不达。不要急着写代码,先把问题想清楚了再动手。

现场QA面试

相比技术面试,QA面试会相对轻松一些,而且通常是由其他团队的人来主导面试,旨在考察候选人技术之外的能力。

  • 候选人AMA(Ask Me Anything)。面试官可能会问候选人任何问题,旨在更好地了解候选人。候选人也可以问Reddit任何问题,加深对Reddit的了解。

贴士:准备好与公司有关的问题,比如文化、规章制度、日常生活,等等。

  • 跨职能面试。这一部分主要考察候选人的跨团队职能工作能力。除非候选人是面试基础设施团队,否则大部分情况下都需要与产品团队打交道。候选人需要具备良好的沟通能力和解决冲突的能力。主导这一部分面试的可能会是Reddit的某个产品经理,候选人可以抓住这个机会向面试官提问有关Reddit产品线的问题。

贴士:可以事先准备一些曾经经历过的场景,那些有助于展示候选人沟通能力的事情。

  • 招聘经理面试。到了这一轮,表示面试已经接近尾声了。招聘经理从更高的层次以及候选人所经历过的项目来评估候选人与职位的匹配情况。此时,候选人可以问一些有关Reddit项目的情况、公司的架构,以及团队的路线图。

面试过后

面试过后就是等待,一周内会出结果。

转自 http://www.infoq.com/cn/news/2017/08/How-Reddit-interview-engineers