三次冲击谷歌软件工程师: 我的面试起伏录 (谷歌面试是不是一生只有三次机会?)
Google(谷歌)是全球知名的互联网巨头之一,几年前被认为是养老终级大厂,福利优厚,压力相对较小。在英国伦敦,Google设有一个主要从事开发和研究的办公室。
第一次面试 2016年
我在2016年首次面试Google。第一轮是电话面试,由一位在瑞士的工程师主导,通过电话交流并在Google Doc上同步编写代码。由于当时技术水平有限,我用C++完成了那道消息打印的题目,核心是使用队列和哈希表来解决问题,写得很磕磕巴巴。
当时对软件工程师的级别没有特别概念,推测自己面的是SWE L4/L5的级别,因为当时也就工作了5年多。
我查了一下邮件,2013年11月份的时候谷歌猎头联系我问我要不要试试?我说我当时没拿到英国永居,不想冒险,虽然他说到谷歌可以办工签,我当时还是没有选择去面试,现在想起来实在不可思议,后来2014年/2015年的时候同一个猎头还每隔6个月就check-in一次,最后面是在2016年4月份的时候才开始第一次的。
我要是当时聪明一些,努力刷题一些,搞不好当时进谷歌,现在也工作将近十年了,拿着谷歌股票到现在,也不至于现在混个高不成低不就的。
第二次面试 2020年
第二次面试是2020年11月份,第零轮其实应该算是Google的猎头问的一些选择题,比如C++里的哈希表/map如果访问一个不存在的键会发生什么?Google的软件工程师包括SRE站点可靠工程师在面试的时候都可以选两种路径,一个是数据结构和算法(编程),另一个是运维/DevOps偏LINUX知识的。我都选前者,毕竟这个我感觉只要短期刷题就好了,相反后者需要多年工作实战的积累。
通过了猎头的小测试,我进入了第一轮,是道编程题,但是并不是那种力扣上可以见到的,这一轮45分钟,给得是一个比较有意思的游戏,比如迷宫生成算法。面试的时候需要你主导整个过程,包括澄清问题,构思,写代码,分析复杂度等等,每一步都需要你Think Aloud。虽然这一轮我犯了些错误,但是给得反馈总题还不错,面试官说他觉得我应该进入下一轮。
到了终面,安排在了同一天,上午2轮,下午3轮,我记得3轮编程/Coding,一轮系统设计,一轮Culture Fit/Behavior/行为模式。除了系统设计是1小时,其它的4轮都是45分钟,谷歌的Coding面试45分钟都是解决1题即可,题目并不是力扣上的,题目范围/scope较大,偏难。一般来说coding完还会有一些Follow-up的问题,比如怎么优化算法。这个和Meta/Facebook的Coding面试不同,Meta百分百喜欢出力扣上原题,40分钟内需要解决2题力扣原题(留5分钟问问题),这个可以通过力扣按公司归类最近3/6个月的试题准备即可。
系统设计我记得是设计一个类似AWS S3的文件存储,也不知道是不是看我当时在AWS S3工作。很可惜,最后面这一轮不过关,当时我面的是L5(Senior),软件工程师级别越往上走,对系统设计的能力则要求越高(设计可扩展/分布式/高性能的系统 )。
Unfortunately Google doesn’t disclose specific feedback per interview session so in this case I can’t share more context. I wish I had more to share with you! Also, we don’t use the scoring system from 1-4 anymore, each person puts in full context, notes, and recommendations and then HC reviews for an overall consensus decision.
不幸的是,Google 不会披露每个面试环节的具体反馈,因此在这种情况下我无法分享更多背景信息。我希望我能与您分享更多!此外,我们不再使用 1-4 的评分系统,每个人都会提供完整的背景信息、注释和建议,然后由 HC 进行审查以做出总体共识决定。
一般大厂来说,不太会降级别给Offer,也就是说,如果面的是L5职位,但是能力可能只到L4,一般来说是不会给Offer的,但也不排除个别情况下,据说Meta就有面试E5给E4的情况。
级别是在面试过程中根据您的个人背景确定的,包括简历经验、面试表现等多种因素,以及与 SWE/SRE 的契合程度。
Unfortunately we reviewed for overall technical depth slotted against our teams and right now the decision is not to proceed.
不幸的是,我们审查了我们队伍的整体技术深度,现在的决定是不继续。
这次面试的职位是SRE站点可靠工程师。
第三次面试 2024年
其实去年2023年,也申请了谷歌伦敦Google Research的位置,当时和猎头简单聊过之后,就没下文了,猎头说会把我的简历给招聘经理,不过等了好几周,最后面很抱歉的说已经招了别人了。
Apologies for the radio silence on this one, we have had radio silence from the hiring manager on this role. They have unfortunately decided to prioritise other hiring areas in the team so we won’t be able to move forward at this stage.
However, if we have any other roles in the future I will make sure to keep you in mind.
抱歉,我们没有得到任何回复,我们一直没有收到招聘经理关于这个职位的任何回复。不幸的是,他们决定优先考虑团队中的其他招聘领域,因此我们目前无法继续推进。
但是,如果我们将来有其他职位,我一定会记住你的。
2021年/2022年我记得也投过,不过都没有下文(简历被拒),有一年直接申请Google瑞士,因为听说那边的工资高,和美国一样高,所以想试了试,第二天直接收到了拒信,还是谷歌瑞士的工程师直接发的邮件。
今年就随手申请了一下,也不知道是不是招聘市场回暖,简历同时过了Meta和Google的第一轮筛选。上一次2020年也是,同一时间面试Google和Meta,两个公司的面试都进入了最后一轮(Final Onsite)。
今年和Google猎头聊了聊,她并没有给小测试,就是了解了情况,然后让我选是以算法为主还是运维/DevOps为主,我今年面试的是SRE站点可靠工程师,和第二次一样。
第一轮面试也是一轮设计一个简化版的游戏,面试了45分钟,最后面拖了三分钟 Follow-up问题,也就是把这游戏 Scale Up,如果很多很多人玩,单机内存不够怎么办?
我最开始的暴力解法写得很6,犯了两个小错误,并不是Bug Free,不过面试官指出后我立马意识到并改正了,后来优化需要用到 二分搜索+前缀和/Prefix Sum,面试官很满意说他没想到这种方法。
再后来的优化用到了线段树,但由于时间限制,并不需要去实现,但需要讲明白算法原理。我脑子里想着另一种实现二叉索引树Binary Index Tree,但是不记得实现原理了,结果在那里纠结浪费了一些时间。
最后面给出的回馈就是最后面的Follow-up回答得不是很好。不过并没有立刻拒我,我猜是我过了Bar,但是并不是表现最好的那一个。一般一个职位一个坑,如果接到100份简历,那么只会邀请6-8个来进行第一轮面试,然后淘汰掉一半,最后面邀请3-4个来进行终面。
当时猎头给我打电话,说了反馈,然后就说暂时把我的申请on-hold了。
又过了两周,猎头给我回复:
I hope you’re keeping well, I just wanted to update you that we have now closed our London role. If we get another one through we will definitely be in touch! Thank you so much for everything you invested in our interviews, I know you put in a lot, on top of everything else and elsewhere too – and I know it takes a lot, so really do appreciate it, and I really hope we can keep in touch and work together again in the not so distant future! Take care and thank you again for everything you invested in our process, I really enjoyed working with you and getting to know you.
I wish you every strength, take care XXX!
希望你一切安好,我只是想告诉你,我们现在已经结束了伦敦的职位。如果我们又有新职位,我们一定会保持联系!非常感谢你为我们的面试所做的一切,我知道你付出了很多,除了其他一切之外,也付出了很多——我知道这需要很多,所以真的很感激,我真的希望我们能保持联系,在不久的将来再次合作!保重,再次感谢你为我们的过程所做的一切,我真的很高兴和你一起工作,认识你。
祝你一切顺利,保重 XXX!
我回了(不知道可不可以再投其它职位):
Could I apply to other roles if there are any suitable in the meantime? Or is it better to just wait?
如果在此期间有其他合适的职位,我可以申请吗?还是最好等待?
更新:Google猎头隔了几天又回了:
I hope you’re keeping well! Thank you for your patience, we should have some roles coming live in London so I’ll catch up with you super soon! Good news!
希望你一切安好!谢谢你的耐心,我们应该会在伦敦有一些HC职位,所以我很快就会再次联系你!好消息!
每年都面试一下,才能知道自己几斤几两。
谷歌面试是不是一生只有三次机会?
谷歌的面试通常没有严格的次数限制,理论上并不是“一生只有三次机会”。不过,谷歌对多次申请有一定的冷却期政策,这意味着在未通过面试后,申请者需要等待一段时间才能再次申请。
通常的冷却期为6到12个月,但这时间会因具体情况和职位类型有所不同。如果之前的面试表现较好,甚至可以更早重新申请。此外,间隔期越长,对候选人的成长和进步的期望也会更高,因此再次面试时需要准备得更充分。
面试经历
- 三次冲击谷歌软件工程师: 我的面试起伏录 (谷歌面试是不是一生只有三次机会?)
- 记两次伦敦抖音面试经历(Tiktok)
- 我的面试谷哥GOOGLE伦敦SRE的经验和教训
- 记Facebook的第一轮技术面试(伦敦脸书)
- 记微软Principal SE的第一轮面试
- 我的AMAZON面试经历与经验之谈(亚麻伦敦面经)
- 离伦敦脸书最近的一次 - 记FACEBOOK伦敦终面经历
面试题
- 软件工程师面试: TCP/IP协议是什么?
- 软件工程师经典面试题: 当你在浏览器的地址栏敲入google.com并按回车后发生了什么?
- 谷歌面试题: 迷宫随机生成算法
- 软件工程师数据库面试技巧之 SQL中的第二名记录
- 软件工程师面试技巧之 动态规化 - 整数拆分
- 软件工程师面试技巧之 如何检查数独的有效性
- 去年 Google 的面试题 - 打印消息
- 软件工程师面试技巧之 使用哈希表降复杂度
- 微软面试题: 三角形的面积是多少?
- 英国 IT公司 电话面试的一些技巧 (程序员)
- C/C++ 中的内存管理器(堆与栈)
- C++的 map 当键(Key)不存在的时候会发生什么?
- 随机数独游戏的算法设计 (Sudoku)
- 经典二叉树的镜像的递归算法
- 谷歌的扔鸡蛋问题
- 面经: Python 的 List 和 Dictionary 有啥区别?
- 逻辑测试系列 - 一种只有4种语句的编程语言 - (1)
- 逻辑测试系列之二 - DECR
- 逻辑测试系列之三 - SUBT
面试技巧
面试其它
- 产品设计和系统设计面的区别(Product Design vs System Design)
- 45 分钟模拟面试(编程、系统设计)+职业发展建议
- 英国和美国IT公司面试的主要区别
- 拒了甲骨文(Oracle)的 Offer
相关文章:
- 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
- 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
- 博士毕业五年多了 无意翻出 FACEBOOK 五年前上传的博士毕业典礼视频, 才发现自己已经工作近六年了. 还记得当时毕业时的兴奋 为了 一个 ‘Doctor’ 的称号奋斗了三年多 不过这几年对头衔看得越来越淡 包括在公司里也一样 什么职位也无所谓了 做着自己喜欢的事情才是最重要的. 这是 2010年...
- WP中检查白名单的用户是否登陆? WordPress 提供了一个方法 is_user_logged_in() 用于检查用户是否是登陆状态. 但是很可惜 这个方法在 pluggable.php 中定义. 也就是说如果你需要在插件中使用, 那么这个函数是没有被定义的. 我们来看一下 is_user_logged_in() 的实现: 1 2...
- 同一台服务器上多个WORDPRESS站点的一些设置可以移出去 我自从把所有网站都挪到一处VPS服务器上 就发现很多事情省事很多 可以同时管理多个网站 包括 WORDPRESS博客. 比如我有四个WORDPRESS博客 然后我就把通用的一些资料给移出去 移到 HTTP或者HTTPS都不能直接访问的文件夹里这样就更安全许多. 文件 wp-conn.php 存储了 相同的数据库资料. 1 2...
- 三分熟的牛排 除了像早餐, Fish and Chip, 英国酒巴也是吃得到一些外来引进的食物,比如牛排.虽然一般的酒巴里的牛排 (Steak) 一般都不是很地道,表现在你要个三分熟的牛排基本上都是 烧熟了的给你.还有就是牛肉本身也有区别,嫩,而且要新鲜. 上周五发现一家巴西烤肉自助,刚上来的牛排就不错, 三分熟,新鲜,嫩.要是能有个红酒就再好不过了. 五分熟的可以说是 medium (cooked), well done...
- 免费的 Visual Studio 2013 社区版 程序员应该都知道 Visual Studio, 这个是微软的得意之作.是世界上最好用的程序设计工具 IDE. 现在 2013 社区版是免费的! 个人开发,和开源什么的都不需要费用.统统都是免费的. VS2013社区版本可以在这个URL下载: http://www.visualstudio.com/en-us/visual-studio-community-vs.aspx 之前我机器装了 VS2012 和 VS2010....
- 老婆的配偶签证被拒 郁闷死了, 601镑签证费打水漂,一去不回!费钱费力. 去年12月份我请了律师拿到了永居.老婆是T1G签证的陪工签 (DEPENDENT VISA) 2016年4月份到期. 然后我就想说得趁早把她的签证转成配偶签(SPOUSE)这样她就可以尽快走五年永居的路线. 今天收到拒签信,原因是我没有提供 有工资进帐的那份银行帐单,我提供了我和我老婆的联名帐户, 但是工资并不是直接打到这个帐单上的.所以就这一点被拒了.完全不给解释,不给补材料的机会.601镑就这样再见了. 英国的签证寄出之后是先由另一个部门先收费, 收完费才正式审理,而且不管结果如何是不退钱的.后悔没让律师弄,也不至于到现在浪费这么多时间和金钱,签证还没过.由于原签证还没到期,所以还不能上述.估计只能等搬完家后年底请律师搞定这事. 真是郁闷, 600镑, 我可以再买一个IPHONE6,或者给我的新买的车换四个轮胎....