当前位置: 首页 > 科技观察

面试流程——谷歌资深面试官经验总结

时间:2023-03-20 23:53:35 科技观察

Overview面试题出处准备时间表及注意事项面试评估流程答案着装十大常见错误FAQ1.1 大多数公司的面试流程概览其实都是一样的。本章将简要介绍面试流程以及企业希望招聘什么样的人才。这些信息将指导您如何准备面试以及在面试期间和之后做什么。收到面试通知后,您通常必须先进行筛选面试,通常是通过电话进行。***应届大学毕业生可能需要参加现场筛选面试。不要让“筛选面试”这个词让你失望。screening面试很可能会涉及到coding和algorithm的问题,要求不一定比on-site面试低。如果不确定是不是技术筛选面试,不妨问一下招聘的助理面试官。如果是工程师的话,大概会和技术有关。很多公司在面试的时候会用在线同步文档编辑系统,但是也可以让你直接在纸上写代码,然后在电话里读给他们听。一些面试官甚至会给你“作业”或要求你将你编写的代码通过电子邮件发送给他们。在现场面试之前通常会有一轮或两轮筛选面试。大概有4到6轮现场面试,其中一轮可能是午餐面试。当然午餐面试比较随意,面试官一般不会问你技术问题,甚至不会被列入面试评价范畴。但同时,这也是一个难得的好机会。你可以和面试官讨论你感兴趣的问题,了解公司的企业文化。其他几轮面试主要是技术方面的,包括编码和算法。此外,您可能必须回答与简历相关的问题。面试结束后,面试官将开会讨论您的表现或提交书面评估。在大多数情况下,公司招聘人员会在一周内回复您,并告知您申请的最新状态。如果已经等了一个多星期,也可以主动询问进度。即使招聘人员没有回应,也不意味着你被拒绝了(至少在大型科技公司是这样,但几乎所有公司都是如此)。我再说一遍:没有回应意味着您的申请仍然未知。当然,人们希望招聘人员在得出最终结论时让求职者了解情况。确实有拖延的情况。如果您等不及,请询问相关招聘人员,但请保持礼貌。招聘人员就像我们一样,他们很忙,而我们中的一些人往往会忘记。1.2 面试问题的来源求职者经常问我,最近有些公司喜欢问哪些面试问题?他们总是认为面试题会随着时间而改变。其实公司本身对面试题是没有偏好的,全看面试官的个人喜好。请允许我解释一下。在大公司,面试官通常需要先参加一些面试培训课程。在谷歌,在成为面试官之前,我参加了一家外部公司提供的专业培训。为期一天的培训课程有一半时间侧重于法律方面,例如面试官不能询问求职者的婚姻状况、种族等。另一半致力于如何应对“刺痛”的求职者,例如,如果求职者在被问及编码问题或其他求职者认为“羞辱”自己的问题时“抛出”该怎么办。培训结束后,我又实地观察了两次真实面试,然后开始单独面试。就是这样。这就是我们接受的所有培训,所有公司都差不多。没有所谓的“谷歌面试问题官方清单”,也从来没有人问过我必须问哪些具体问题,或者我必须避免哪些话题。那么我的面试问题从何而来?其实来源和大家一样。面试官也当过求职者,他们会借用过去被折磨过的问题。或者,一些面试官也会互相交换题库。其他人喜欢在线搜索问题,例如CareerCup.com。有的面试官也可能会从以上渠道搜集面试题,或多或少做一些调整。公司很少(如果有的话)为面试官准备问题清单。面试官通常会选择自己的问题,人们通常会有五六个常用的备选问题。因此,下次您想知道Google“最近”一直在问什么问题时,停下来想一想。Google和Amazon的面试题其实没什么区别。他们需要的是软件开发人才。面试题是不是“最近流行”就更不重要了。一切照旧,因为这个要面试官自己去把握。当然,总的来说,不同公司的风格是有差异的。互联网公司倾向于问系统设计方面的问题,而那些使用数据库的公司显然更喜欢数据库问题。但是大部分面试题无非是数据结构和算法,任何公司都会问。1.3 准备时间表及注意事项“台上一分钟,台下十年功”,其实面试的表现取决于你的技巧——离不开多年的积累。你需要有足够的技术经验供公司使用,然后准备好在面试中解决真正的技术问题。下面的时间表和流程图可以给你一些启发。如果你开始晚了,别担心。“尽力而为,知天命”,请安心备战,祝你好运!1.4 面试评估流程招聘人员可能会告诉你,他们主要看四个方面:工作经验、企业文化契合度、编程能力和分析能力。这四个维度相互补充,但编程技能和分析技能(或者你是否聪明)通常是招聘决策中最重要的因素。这就是为什么本书的大部分内容都致力于提高您的编程和算法技能。当然,虽然编程和算法能力往往是最重要的,但这并不意味着你可以忽略其他两个方面。一旦你在一家大型科技公司面试,你之前的工作经验并不特别重要,但它会影响面试官对你的看法。例如,如果你提到你过去写的一个复杂程序的精彩之处,面试官可能会想:“哇,她真聪明!”犯了一个小错误。总之,面试不会很精确,为一些“软问题”做好充分准备会有所帮助。初创公司比大公司更看重企业文化的契合度(或你的个性,取决于它是否适合公司)。例如,如果公司的企业文化鼓励员工做出独立的决定,那么喜欢听从指挥的人就不太合适。此外,候选人因过于傲慢、好争论或抗拒而被淘汰的情况并不少见。我曾经遇到过一个求职者,他对我问题的措辞很挑剔,抱怨说这让他不能顺利解决问题。后来他对我的引导方式很不满意。这种“阻力太大”的表现,其实是一种警示。果然,其他面试官也对他产生了不好的感觉。***他被淘汰了。谁愿意和这样的人一起工作?因此,您应该注意以下几点。如果人们认为你自负、过度防御或消极,你最好在面试中退缩。如果你的性格不讨喜,不管你的表现再好,也有可能被拒绝。准备一些与简历相关的问题。虽然这不是最重要的因素,但不应掉以轻心。稍微准备一下就能起到很好的效果,做到“四两拉一千斤”。专注于编程和算法问题。***,我再说一遍,采访不会很精确。你的表现可能不佳,招聘委员会(或任何人)有时会做出错误的判断。与任何团体一样,招聘委员会可能会被主导人物的观点左右。这可能不公平,但这就是生活。请记住——这次被拒绝并不意味着永远。您也可以在一年内申请一份新工作。很多求职者都有先失败后成功的经历。不要气馁,失败是成功之母。1.5 答题流传甚广、颇为迷惑的谣言:求职者必须答对所有问题,才能被录用。离得很远。首先,面试问题的答案很难简单地用“正确”和“错误”来判断。就个人而言,当我评估求职者的面试表现时,我通常不会只看他们正确回答了多少问题。相反,我会考虑最终的解决方案是否完美,需要多长时间,代码是否干净。这不仅仅是简单的是非判断,还要综合考虑很多因素。其次,您的面试表现将与其他求职者进行比较。例如,如果你在15分钟内出色地解决了一个问题,而另一个人在不到5分钟内解决了一个更容易的问题,那是否意味着这个人的表现比你好?也许,但不一定。自然而然,面试官问的问题越简单,就越希望你尽快给出最佳答案。但如果题目很难,他们也不会指望你答得又快又好,毕竟出错在所难免。在我评估过的谷歌数千份面试资料中,只有一位候选人的面试表现“完美无瑕”。其他人,包括***雇佣的那几百名幸运儿在内,都在某方面犯了一些错误。1.6 DressCode软件工程师一般着装随意。这一点从面试的着装要求也可以看出来。去面试时,推荐的做法是穿得比同龄人好一点。以下是我对软件工程师(和测试人员)的面试着装建议,旨在让大家找到一个“平衡点”:不要穿得太正式,也不要穿得太随意。事实上,有很多人穿着牛仔裤和T恤参加初创公司或大公司的面试仍然没有问题。毕竟公司看的不是你穿什么,而是看你的编程水平。初创公司微软、谷歌、亚马逊、Facebook等科技巨头。非科技公司(包括银行)男士卡其裤、休闲裤或整洁的牛仔裤。Polo衫或正装衬衫卡其裤、休闲裤或紧身牛仔裤。Polo衫或正装衬衫套装,不打领带(带上领带以防万一)女士卡其裤、休闲裤或挺括的牛仔裤。体面的上衣或卡其裤毛衣、休闲裤或挺括的牛仔裤。漂亮的上衣或毛衣套装,或带有整洁上衣的漂亮休闲裤这些仅供参考,具体取决于您公司的文化。此外,如果你应聘的是项目经理、开发总监或其他管理职位,面试时最好穿得正式一点。1.7 十大误区误区一:只在电脑上练习如果你准备参加海洋游泳比赛,你会只在游泳池里练习吗?可能不会。您将体验强风、海浪和海洋条件的影响。所以,您一定会想出去海里训练。在编译器的帮助下在计算机上练习面试题就像只在游泳池里练习一样。撇开环境不谈,让我们拿出纸笔。当你编写完所有代码并手动测试后,你可以在计算机上使用编译器进行验证。误区二:行为面试题不练很多求职者把所有时间都花在排练技术题上,而忽略了行为面试题。你猜怎么了?面试官会测试两者。不仅如此,你在回答行为问题时的表现实际上会影响面试官对你技术能力的看法。行为题的准备其实还是比较容易的,很容易达到事半功倍的效果。用心回顾你过去的项目和经历,并准备一些小故事。错误#3:不进行模拟面试培训假设您正在准备一场大型演讲,所有同事和相关人员都参与其中,而且这事关您的未来。如果你只是在脑子里默默练习说话,到了真正说话的时候,你肯定会发疯。只是纸上谈兵,不做模拟面试,也会落入同样的境地。如果你是一名工程师,你就会认识很多同行。找一个朋友为你做一次模拟面试。作为回报,你也可以做他的面试官。误区四:试图死记硬背答案死记硬背最多只能解决一些具体问题,但遇到新问题时,可能会傻眼。此外,基本上你不太可能遇到本书的主题。最靠谱的方法就是把书上所有的题都认真做一遍,不看答案。这样,你就有可能练习各种技能和技巧,从容应对新的问题。即使***你只能简单复习几道题,这个练习也会对你很有帮助。质量而不是数量。错误五:不要大声说出你的解题思路暴露一个秘密:面试官不会知道你在想什么。所以,如果你在采访中保持沉默,我根本无法理解你的思路。如果你沉默太久,我也会误以为你没有进步。如果你多说话,你可能会在谈话中找到理解。大声说出你的想法,这样面试官就知道你还在努力解决这个问题,没有被卡住。这样做的另一个好处是不会跑题,有助于尽快找到解决方案。当然,***的作用是凸显你强大的沟通能力。为什么不这样做呢?误区六:太仓促写程序不是比赛,也不是面试,所以解决问题的时候不要操之过急。如果代码写的太马虎,很容易出问题,也说明你不够细心。请慢下来,有条不紊,多做测试,把问题考虑得更透彻。这样,您最终会更有效地给出答案,并且错误更少。误区七:代码不够严谨其实每个人都可以写出完美的代码,但有时候我们在面试的时候还是会写出错误百出的程序,不是吗?冗余的代码、杂乱的数据结构(例如,缺乏面向对象的设计)等等,这些都是常见的错误!编写代码时,想象你正在处理一个真实的问题,注意可维护性。将代码分成不同的子程序,并精心设计数据结构来处理相应的数据。错误八:不测试在日常工作中,你不能不做任何测试就提交代码。既然如此,为什么在面试中省略这一步呢?编写代码后,请“运行”(或查看)程序以验证结果。或者,在处理复杂的问题时,也可以边写代码边测试。错误九:粗心地修复错误程序中总会有错误。这就是生活或编程的本质。只要您仔细测试您的代码,错误就可能会出现。那也不错。但是,重要的是,当你发现一个bug时,一定要三思而后行,确定错误的原因,然后再改正。有的求职者看到函数传入某个参数时返回false而不是true,就会直接将返回值取反,然后查看问题是否修复。当然,偶尔也能碰上瞎猫死老鼠,但其实操之过急往往会导致更多的bug,同时也反映出你做人比较粗心。有bug很正常,但是乱改代码就很严重了。错误十:轻易放弃。我知道面试题很难,但不难看出求职者的水平。你会迎接挑战还是放弃?态度很重要,面试官喜欢不怕挑战,迎难而上解决问题的求职者。毕竟,面试并不容易。因此,请大家遇到棘手的问题不要慌张,也不要轻易放弃。1.8 常见问题遇到熟悉的问题应该说实话吗?是的!遇到熟悉的问题,当然要告诉面试官!有些人会觉得这很愚蠢——知道问题(并知道答案)没什么大不了的,对吧?其实不一定。我们敦促您说实话,原因如下。炫耀你的诚实。这反映了您的诚信-一大优势!要知道,面试官正在默默地审视你,看看你是否够格成为他未来的同事。我不了解你个人,但无论如何我喜欢和真实的人一起工作。这个问题可能会稍微修改一下。你不想冒险给出错误的答案,是吗?如果你脱口而出正确答案,面试官会觉得很可疑。面试官当然知道题目的难度。但如果你假装跌跌撞撞,你很可能会夸大其词,显得不诚实。我应该使用哪种编程语言?许多人会建议使用您最熟悉的语言,但理想情况下,您应该使用面试官最熟悉的语言。我通常推荐C、C++或Java,因为大多数面试官都熟悉这三种语言。我个人比较喜欢Java(除非涉及到C/C++的问题),因为用Java写程序效率更高,而且写出来的程序简单易懂,即使是平时用惯了C++的人读Java也不会有太大的困难程式。鉴于此,本书基本使用Java来解决问题。面试完没回音,是不是被拒了?不。如果你真的要被拒绝,公司通常会通知你。如果您在面试后的短时间内没有收到回复,那没有任何意义。你可能做得很好,但招聘人员正在休假,无法及时处理。公司可能正在进行部门重组,目前尚不清楚将招聘多少人。或者,你真的表现不好,但碰巧有一个拖延或忙碌的招聘人员没有及时回复你。当然,也会有一些奇奇怪怪的公司,“嗯,既然我们不打算录用这个人选,那回复他也没用”。所以,一切都取决于公司本身。但您可以通过电子邮件或电话跟进。被拒绝后可以重新申请吗?当然可以,但通常需要一段时间(六个月到一年)。上次表现不好一般不会影响下次面试。很多人被微软、谷歌拒之门外,但是都顺利通过了。原文链接:http://www.ituring.com.cn/article/61712