技术人员的职场面试指南
每当人们问我应对技术面试最重要的一点是什么,我都会告诉他们:做好准备。
面试会带来很大压力,这种压力会影响你的交流能力,令你无法进行全面思考、做完整的表述。在来回的话题转换中你会跑题,甚至都不记得一开始的主题是什么了。有的时候你在慌乱中把底牌全都亮出来了。
做好准备不代表你要填满所有的面试时间,而是要按重要性把他们想知道的讯息排序。浏览下列问题,想象你在招人,你希望知道些什么?
你曾有哪些建树?
你遇到的最棘手的专业问题是什么?
你是怎么解决的?
就是这些类型的问题。需要注意的是所有这些问题都是关于被面试者的,特别是关于做了什么以及如何做到的。如果你在某些不熟悉面试的公司进行面试,你可能还会遇到这样一些问题:
你认为你5年之后会处在一个什么样的位置?
你为什么想在这工作?
你怎么解决与合作者的意见分歧?
这些问题从公司的角度来看都是没什么意义的,因为预测事情是很难的,特别是未来的事。面试官很可能并不知道他们想要什么答案,这些问题只是用来填补时间的。不过这里需要说明,我所在公司的人力资源部门就会问一些类似“如果我们发offer你真的会来工作么?”的问题(例如“你满意我们提供的待遇么?”)。如果你正在申请一个很小的公司,你可能就会在面试中遇到这一类问题。
如何准备
准备一叠卡片,每一张卡片上写一项你完成的任务或者你管理过的项目,用一句话描述你的主要工作和你解决问题的主要方法,就像你在Stack Overflow上提问附带的标签那样。写了这些之后,再写下你所能想起的尝试和失败,你可以限制在5个以内,但是除非你真的尝试得不多(这也没事),不要一写到5个就结束了。最后,写下你还在做的事。
现在把卡片反过来。在最上头,用一个词描述你从这个项目中学到的最有价值的东西。你只能列出一个最关键的点。如果你还没有解决这个问题,那就写下你最新从中得到的领悟,然后用一行话描述这个想法从何而来。按这个步骤把卡片写完。
我经常听到有人说不知道面试官想知道哪些任务和项目。他们想知道你所提供的材料中的内容。如果你给他们一份简历,他们会问你关于之前工作的问题;如果你给他们你的Github链接,他们就会问关于你项目的问题;如果你给他们你的Stack Overflow链接,他们就会问关于你的回答的问题。你需要确保你所列出的每个工作经验都至少有一张卡片,最好每个工作经验中最重要的一点都有一张。确保你在过去一年中在Github的每个项目都有一张卡片。至于Stack Overflow上的问题,只要确保你最热门的提问和回答就行了(不需要为此写满整张卡片)。这些基本上就是你会被问到的全部内容。以我发在Developer Story上的一个项目为例。
如何讲一个好故事
现在,你已经有了重点卡片,该开始练习面试中要说的话了。即使你的卡片上已经有全部的重点,把这些重点变成一个吸引人的故事才是关键。
具体化
好的故事是基于对话的。面试的过程是我将我的信息传递给你,你从中找到对你的工作有用的内容。当无话可说的时候,对话往往就进行不下去了,所以一定要避免这一点。虽然广博的见识很吸引人,还会显得非常聪明,但要记住,我们的目标是在这个过程中让面试官针对每一个环节向我们提出更多问题。要做到这一点,最好的方法就是具体化。
《反斗智多星》(Wayne’s World)里的这个场景充分说明了为什么不能泛泛而谈,这样别人就不知道该怎么回应,因为你让人无话可接。在电影里,Wayne说的是“我喜欢你的衬衫,哥们”而不是“我爱你,哥们”,这样Garth就可以很轻松地继续对话,因为他知道下面要说什么。“哦,是的,这是我在里诺的音乐会上买的,那天鼓手特别嗨……”就是这样。要说具体的,而不是泛泛而谈,特别要注意结合当时的环境。
从亮点开始
好的故事会从一个亮点开始,第一句话就会让人产生兴趣,想知道后面发生了什么。
“我建立了一个用于运行开发者报告的Web界面。”这是一个不好的开头。面试官此时的问题基本上会是这两个方向:“什么是开发者报告?”“你用什么技术来构建界面?”这些问题都不会引向有趣的事。开发者是一群人,那现在谈论的就不是你了,而且许多人都使用了你所使用的Web前端框架,而这个项目有趣的地方可能不在于你使用的框架。
“我在Google Maps界面上设置了7个数据集,让销售组的人员可以获得全球开发人员的实时报告。”现在你可能会想知道我在这个项目中做了哪些工作,我们会展开对话,因为我使用了具体的信息来突出了这个项目中3、4个有趣的方面。这就是利用亮点和使用传统方式来表现自己的区别。
按时间倒序讲
一般来说,真实的故事都按时间倒序讲,这就是为什么我们从亮点开始。相比之下,编排过的故事按时间正序讲。在面试官看来,正序讲故事更像是在背诵拼命记过的东西,那么这个故事就显得更不真实了。好的面试官会让你按倒序讲故事,因为他们会不断要求你详细讲他们感兴趣的部分。如果你确实清楚发生了什么,为什么会发生这样的事,这对你来说应该不是个问题,因为你非常熟悉你正在谈论的问题。你所需要记住的就是你在叙述主线中离开的地方,这样之后你可以回到这里。
如果面试官要求你详细讲讲刚才说的内容,但你试图继续把故事讲下去,那就充分表明你是个不诚实的骗子。你可能把别人做的决定以某种方式说得好像是你做的,或者你显得好像熟悉你所使用工具的内部运作胜过熟悉你自己做的。这些不一定是谎话,但是沟通不畅也会显得不诚实。在面试中不诚实很不好,毕竟如果这个公司擅长面试的话,你很有可能被揭穿。不过我也想指出,如果你在这种情况下被揭穿,并不意味着面试就一定失败了。当你被揭穿时,要记得从这时起多讲一些,确保只说你所做的事情。被揭穿两次就差不多了。
亮点已经讲完了,下一步说什么?面试官会引导接下来的内容,他们会让你详细讲讲你在亮点里说到的2到4个有趣的地方。他们会问到一些你只是尝试过但没有成功的东西。一般来说,没人会关心实际的解决方案,作为一项工作技能,探究方式比知道答案更重要。你能够解决问题和你只是知道答案是有区别的。在你只是知道答案的情况下,最好的办法就是讲讲解决方案的几个部分以及它们是如何共同起效的。但是,在很大程度上,你被招来是解决问题的,所以你必须讲讲那些尝试过但是没成功的东西。
谈论你尝试过的东西还有另一个好处。一旦你抛出了这个亮点,面试官就会开始猜测你是如何解决这个问题的。这样你就与面试官的思考方式有所不同,而且因为讲到了方法,现在你就可以把重点转到那里。你可以和面试官讨论他们的想法,特别是如果你这样尝试过。要确保你一直在关键点上,这样才能推进到下一步。
作为面试官和开发人员,我非常高兴在面试中学到如下几点:
不要猜面试官知道什么
在大多数情况下,你不知道面试官知道什么。你不知道他们熟悉哪种语言,他们擅长解决什么样的问题,他们的工具箱中有什么工具。这里有一点平衡的作用。聪明的方法是假定他们知道一些事情。假定他们知道开发人员日常做什么,知道如何解决问题。在你的`叙述过程中时不时地停下来,确保面试官还能跟得上。这些可以通过肢体语言来完成,留意他们是不是认同你说的(在你说话的时候,他们有没有经常说“对”),或者直接停下来问他们你是否讲清楚了,他们是否还想让你再多说些内容。
如果你在一个故事中离题太远又没有确认面试官是不是还跟得上,他们就会觉得你无法阐述好一件事。要积极地确认面试官了解你正在讲什么,这样不仅你会觉得更舒服,面试官也会觉得他们学到了一些东西。
还有一点是不要假设面试官认为哪些事是有趣的。不要对你所做的任何事表达负面观点,因为这可能正是他们认为有趣的。就算你觉得这很简单幼稚或者别的什么,你仍然可以就此展开对话。现在开发人员有数百种专业技能,如果你正在申请的是Web开发岗位,并不意味着面试官和你一样知道CSS或某些javascript功能。如果面试官在与你交谈时对某些事情感兴趣,可以以吸引人的方式多谈一谈。
让面试成为对话
讲得更清楚一点,就是让面试成为对话。事实是你并不知道面试官会在你给他们的材料或任何你可能说的话中找到什么有趣的内容,我也无法知道。尽量让他们对你所做的事情感兴趣,如果他们没什么反应,反过来问问他们希望你谈什么。“你希望我说什么?”这样不好;“你觉得我的简历中有什么有趣的地方?”这样就好多了。这可以看出他们的准备工作。如果他们的回答是“我没有找到任何有趣的内容”,那么你的下一个问题应该是“那为什么我要参加这次面试?”一直试着去猜测面试官觉得有趣的内容是浪费时间,直接问更有效。如果他们不想和你谈具体的内容,可能他们自己就没有为面试做准备。
练习
练习面试是我最喜欢的环节。直接和其他开发员讲讲你做过的事,从亮点开始,具体化,当他们问你问题时,按照时间倒序讲讲你尝试过的东西。
记住:当你和别人交流时,要确保你说了5至10张不同卡片的内容,一张是不够的。大部分公司会让你见3至5个面试官,要确保你不是在和不同的人重复相同的内容,因为他们是会互相对照的。在练习时注意人们问你的问题,你在真正面试中遇到的问题会跟这些差不多,你可以通过多回答几遍来做到应对自如。当你说话的时候,你也应该注意对方的情绪。通过这样的训练,多说那些令人感兴趣的、最希望听到的内容。
你被录取的可能性与面试官对你所说内容的兴趣成正比。讲故事是一个有吸引力的方式,可以与刚结识的人建立有趣的对话。希望你觉得这是个练习讲故事的好方法,并成功应对面试。
【技术人员的职场面试指南】相关文章:
职场老鸟的面试指南01-23
职场跳槽指南08-22
面试指南02-17
面试指南精选02-07
面试指南:面试的技巧02-03
职场生存发展指南07-28
面试的指导指南02-23
面试指南与技巧02-09
最新面试指南02-09