李诗萌 王淑婷编译

技术面试中,当面试官「套路」你时,怎么「反套路」回去?

无论是快要毕业的学生,还是已经步入职场的达人,求职攻略都是必不可少的东西。以前我们出过怎么回答问题的求职攻略,现在,学学怎么提问吧!

我刚刚在人才紧缺的阿姆斯特丹结束了为其六周的中级软件开发岗位面试。这意味着我参加了很多面试。为了弄清楚哪些公司比较适合我,我想问很多问题。你必须找到你和面试官之间合适的平衡点。

如果你是一个初级求职者,你可能并不关心这些问题的答案——毕竟你只是想要一份工作而已。即便是在这种情况下,你也应该思考一下对你来说什么是危险信号,并向面试官提一些可以获得相关信息的问题。这样可以在接受工作之前了解到和你的预期不符之处。

一般的面试过程

根据我的经验,面试形式和过程大致如下:

  • 电话筛选(隐形的现场面试)。这个过程一般由 HR 完成。如果是技术人员负责,这个过程一般都很短(不是你提问题的好时机)。

  • 技术面试。你将和实际开发人员进行这一轮面试,在这期间他们会深入了解你的知识背景。

  • 技术评估/homework 编程/结对编程。对我来说,如果一家公司的面试有结对编程环节,那绝对是加分的。homework 编程我也能理解,但绝大多数情况下这都是在浪费每个人的时间,也无法正确评估技术水平。

  • 最终面试,和团队其他成员见面。如果这是一家小公司的话,这一轮面试你面对的可能是创始人(们)。

  • 发放 offer。

当然,每家公司都会有所不同,这只是你在找工作的过程中可能经历的大致过程。

向电话面试官提的问题

第一轮面试通常由非技术人员来主导。向他们提出一堆问题并不合适,因为他们可能不知道你在说什么——即便是小公司也是如此。

电话面试的大部分内容应该是你介绍自己。虽然他们已经有你的简历了,但他们还是希望你能自我介绍一下——确保你能够简明扼要地讲述自己的工作经历。面试时你需要再次重复这些内容。

招聘流程是什么?

他们应该会和你讨论这个,但是如果没有的话,你就要自己找出这家公司具体的招聘步骤。如果你只是在这里试水,但他们却想让你构建完整的 app,那最好跳过这家公司,去下一家。

问一些技术团队的事。

团队中有多少成员?团队由多少初级和高级技术人员组成?团队中是否有其他级别的成员(比如 CTO 或产品负责人)?对 HR 来说这些问题应该是很容易解释清楚的。如果他们无法回答(尤其是大公司),那也没关系。

确保结束电话面试之前,你已经知道下一步该做什么了。

向技术面试官提的问题

我的大部分问题都是关于这一部分的。他们评估你的同时你也在评估他们。让你的面试官主导谈话过程,但在这个过程中提一到两个问题也无妨。在面试结束的时候,他们应该会问你是否还有其它问题,你可以在恰当的时候提下面的问题。

别问你不关心答案的问题。浪费每个人的时间来讨论无法帮你决定是否接受这份工作的问题是没有意义的。

这些问题是按我关心的程度排序的。如果面试过程愉快,我可能不会问最后的问题;如果面试过程没那么愉快,那我可能会问所有的问题,并希望和团队其他成员建立更好的关系。

这个职位的理想人选是什么样的?

我真的很喜欢这个问题,因为这个问题以一种全新的方式诠释了招聘方对你的期望。如果你的面试官可以凭空创造一个填补这个职位的理想人选,那会是什么样的人?有时候他们会觉得你就很理想,但有时候他们也会说一些和你的背景、技能或偏好都不相符的人选。你可以通过这种方式很好地了解你是否适合这家公司。

例如,一家公司说他们想要「不需要很多帮助」的人。对我来说这就是一个危险信号。任何刚进入新代码库的人都需要有人来帮他了解业务逻辑,哪怕这个人很擅长写该领域的代码也是一样。我真的很反感抵触学习环境的开发人员。

另一方面,我还经常听到他们想要「独立」且「自励」工作的人。对我来说这些都是很好的迹象,我认为自己就是这样的人,我不想在自己的工作中有过多吹毛求疵和强制的结构。这两个答案可能意味着完全相同的东西,但是它们的框架可能会对你的工作环境有很大的影响。

这份工作中最大的挑战是什么?

这个问题的答案很大程度上取决于你要做什么。这在所有情况下都是一种很好的方式,通过这种方式你可以了解面试中未涉及的隐藏信息。注意密切关注他们所认为的这份工作中最具挑战性的部分,判断你是否可以应对这些挑战。

在公司中作出规划的是谁?

这一问题主要针对的是长期规划,可以谈一些关于目标增长的问题。让我觉得最危险的是他们不知道该如何回答这一问题。如果这是一家小公司,那「创始人」就是很好的答案;如果是一家大公司,那「董事会」或「管理层」都是不错的答案。最好的情况是每个人都认为自己在创造更好的未来。但如果你问出这个问题后面试官无言以对那就很糟糕了——你得去一家知道未来发展方向的公司工作。

你如何衡量开发团队、个人或公司成功与否?

这又是一个过程问题。我想知道我的工作以及团队的工作会被如何评估。如果他们无法回答这个问题,那就换个思路,问他们是怎么判断自己做得不好的。在我看来,如果看不到做得好的地方,只能看到做错的地方,那这绝对是一个危险信号。如果你不知道成功是什么样子,那你怎么能成功呢?

在这里工作最吸引人(或令人沮丧)的地方是什么

这个问题可以重复问很多人。可以把它按积极和消极分成两个问题(我更喜欢问积极的方面)。你经常会发现一些模式——每个人都会烦恼同样的事情。在面试中讨论消极问题是很难的,但我发现人们无法回避这个问题。

他们不会告诉你公司存在的系统性大问题(有的时候也会告诉你),但至少你会感觉到工作中过程/个人/官僚主义问题的存在。

描述代码审查的流程

这个问题的答案就相当简短了——他们可以在 Github 或其他什么地方进行同事审查来拉取请求(Pull Request,PR)。进一步了解他们要做哪些审查、合并提交代码的平均时间等。他们会非常挑剔吗?还是不怎么严格,漏掉大量错误?他们是真的很在乎还是只是在显摆自己的知识?测试怎么样?他们多久发布一次呢?

一个想法是如何从「走向世界」进入产品需求待办列表(product backlog),并最终变成代码和产品的(带我看一下功能开发过程)?

我想知道新想法从何而来——通过观察数据然后根据现有观念建立?还是创始人有个想法然后每个人努力实现他的想法?

这个问题很像前面关于「规划」的那个,这可以作为那个问题的后续。当你们有了规划之后,会如何描述实际功能并编码这些功能呢?我认为这和「在这里工作是什么样的体验?」很像,但换了一种问法,而且也不会得到陈词滥调的回答。

解释一个你最近遇到的技术挑战

如果他们觉得上面的问题都很难回答,那这个会简单点——我想要一个他们最近完成的工作的具体例子。团队成员之间是合作完成任务,还是某一个人自己解决问题?是否引入了外部资源?是否完成了该功能的开发?同样,这个问题有助于了解该公司的日常运营。

附加题:新员工的入职计划是什么?你该如何让新入职成员融入团队?

除非你是初次求职,不然我认为这些问题应该放在最后。头一次找工作的人要了解重要的入职计划和培训计划。但老油条也可以通过这些问题了解他们的答案。我想知道他们会如何帮助新的开发人员开始工作。他们是否思考过如何让新入职的职员更容易地融入新公司?当然,如果公司没有这些计划也并无大碍,因为大部分公司都没有。

类似问题还有,他们是否会雇佣初级开发人员以及他们如何与这些开发人员共事,但问这个问题的前提是我们已经工作过一段时间了——我们并不是职场菜鸟。我已经工作快三年了,但我并不想给任何人任何建议。高级工程师可以提这个问题,他们不容易被误认为菜鸟。这样他们可以知道这家公司是如何看待员工价值的。

向最终面试官提的问题

在最后一轮面试中,你可能已经要谈薪水和入职时间了。如果他们给你发放了 offer,那你要详细了解通知里的内容——奖金、养老金、股权、假期以及入职时间等。

你可能想问这样的问题,但在问之前要小心一点,注意房间氛围:

有什么需要我特别注意的部门吗?

在大公司,他们认为「销售」部门需要特别注意,他们会让你知道销售就像是这里的神祇,不要惹恼他们。在小一点的公司,他们会告诉你这方面没什么需要注意的。通过这个问题你可以了解一些第一天工作要知道的事——实际发号施令的是谁?是否存在有些人觉得不值但也有些人很喜欢的项目?如果他们不介意告诉你一些秘辛,这会在你入职的头几周帮到你。这个问题也表示你很想融入公司,想和周围的人进行适当的沟通。

终极提示

以上所有问题都会引发讨论。你不需要逐一提问。从最重要或者信息量最大的问题开始,根据对话进行扩展。仔细讨论比逐一问答要好得多。

我在评估一家公司时,只会问自己两个问题——如果我在这里工作会开心吗?他们会想要雇佣我吗?无论面试过程中的对话是什么样的,都会让我更接近这两个问题的答案。这些提示只是帮你在面试时能更好地实现目标。

原文链接:https://medium.freecodecamp.org/how-to-interview-your-interviewers-when-youre-looking-for-a-job-d848bc3a910

入门技术面试
8
相关数据
规划技术

人工智能领域的「规划」通常是指智能体执行的任务/动作的自动规划和调度,其目的是进行资源的优化。常见的规划方法包括经典规划(Classical Planning)、分层任务网络(HTN)和 logistics 规划。

结对编程技术

结对编程(英语:Pair programming)是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。 一个人输入代码,而另一个人审查他输入的每一行代码。 输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员)。 两个程序员经常互换角色。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

推荐文章
暂无评论
暂无评论~