谷歌后台开发岗社招面经分享(上)
去年换工作的时候,面试了一下Google,来了个Google面试六轮游,结果是没通过.� 现在分享下我参与面试的具体流程以及个人认为应该注意的事项,希望对大家有所帮助.
个人相关背景
Google整体面试流程上基本如下:
Recruiter Prescreen→
Phone Interview (1~2 sessions) →
Onsite Interview (4~5 sessions, 1 week to receive feedback) →
Hiring Committee Review→
Offer Review→
Offer Delivery (Yippee!)
我一共经历了1轮电话面试, 5轮onsite,如果算上前面的HR的预筛选的话,就是7轮.
简历投递
之前校招其实也参加过,无奈门槛太高,竞争压力太大,连面试流程都木有进.当初校招时直接网上刷题,这个网站上其实还能看到往年的一些题目情况: Google Code Jam. 基本上分几轮,每轮top xx的选手才有机会进入面试.
第一次换工作的时候,其实也有找在Google的同学内推,填了不少内推推荐理由呀等等,最后简历都没过.� 当然,简历没过肯定也有多种理由啦,这个其实跟各个公司都一样.比如人家需求是招聘P7,以你的工作年限经验等最多就P6,肯定不行;还有比如希望是招聘机器学习等相关经验的等等,岗位信息等不匹配也不行;当然还有一种,岗位描述等都相关,确实简历没啥亮点,太平庸,也直接被HR给筛选掉了.
这次其实刚开始是没有考虑过面Google的,机缘巧合在linkedin在有Google的HR联系,说要不要试试Google的机会.当然就抱着 “试试就试试” 的想法跟进面试流程啦.既然要尝试,当然还是需要认真对待,修改简历. 防止手生,肯定需要提前准备”刷题”的. 发简历给HR小姐姐后, HR小姐姐会给你一些准备材料供你参考。
其实,时间有限,“刷题”准备不够,当初预感估计面试面不下来.不过真正走完所有面试流程,发现其实面试题目没有想象中的那么难(然而,我仍然没有过图片,说明实力不足呀图片),积极准备,还是有希望的.因为面试题目比较敏感,不能直接分享原题哈,不过我会根据我的理解,找类似知识点和类似难度的题目分享一下.
HR面试
对,第一轮就是HR面试, “Recruiter Prescreen”,其实就是一些计算机相关基础的填空题和选择题.几分钟的时间,十几道题目.面试过程中,不需要给予明确的解释,知道就是知道,不知道就不知道. 题目可能会涉及到比如:快排的时间复杂度是多少?选择排序是稳定的排序算法吗?等等之类的.
这也是我参与的所有面试当中, HR直接参与的”技术”面的.我理解就通过这一轮面试可以用比较少的成本把一些不合适的候选人直接排除了.当然这种方法可能不一定适用于所有公司.
电话面试
电话面试要求直接用Google doc共享写代码,需要要求你有一个稳定的网络环境. 这轮面试我理解应该不会太难,从我面试的经验来看也确实如此.
相比onsite,电话面试不能在一个很好的沟通环境下,不能面对面和面试官进行交流.当初我面试的一道题目和二叉树的遍历相关,当然题目不会是直接写二叉树的先序/中序/后序/层次之类的遍历,会有一个具体的业务场景在里边.需要你分析这个具体的业务场景,能够抽象出题目本质上就是 二叉树的遍历方法. 这道题目算是拿下了.实际coding后,面试官可能会根据你写的code去提问,一些边界条件以及让你提优化方案.
HR小姐姐介绍的电话面试时1-2轮,其实我理解,这应该是需要看第一轮的面试官的反馈,是否犹豫是否再安排一轮电话面试.毕竟和onsite相比,电话面试成本相对更低一些.在线code其实在面试过程中,还是蛮重要的环节.从你code的细节,包括code style,边界条件的判断,哪怕是注释情况,都能看出一些编程习惯. 我认为这个环节对于招聘一个写代码的工程师来说,肯定是一个必不可少的环节(google整个就搞了五六轮).
现场面试
电话面试通过后, HR会很快跟你反馈沟通面试结果,是否通过,以及onsite的安排. 因为现场面试是4-5轮,平均1轮一小时的话,需要4-5个小时,其实还是蛮耗费精力的.一般会沟通可以约2个半天或者1整天,两个半天的好处是,时间不会那么紧张,前两轮后,中途可以过几天再休整调整下再继续.我当初就选择”快刀斩乱麻/早死早超生” 的方案直接约了1天时间搞定.
#面经##社招##google##软件研发工程师#