very big 厂的一次面经
共 2585字,需浏览 6分钟
·
2021-02-28 21:38
大家好,我是沉默王二。
今天给大家分享一个大佬的面经,也许会对一些读者在接下来的面试中起到一定的帮助,毕竟年后换工作的人还真的不会少。大佬的名字叫赖智华,网名小赖子(我称呼他小赖哥),在英国生活。他当年的高考成绩虽然过了二本线,但最后录取的学校是一所大专,一怒之下去了北京,两年后破釜沉舟地去了英国。
因为他学的是计算机专业,学历上的门槛相对较低,经过他自己的努力,以及导师的竭力帮助,最后拿到了博士学位,并成功进入亚马逊工作——我在 B 站上看了他教两个孩子学编程的视频,还特意留言加了微信,感觉他现在的生活真的是很舒服了,人生算是逆袭成功了吧。
我的经历和他相似,虽然我没有读博,也不在大厂工作,但都算是通过自己的努力找到了人生的方向,走上了一条改变命运的道路,我想,小赖哥应该和我一样,心里对计算机专业应该怀揣着一份感恩的心。
小赖哥每年都会去面试,并不是说一定要换工作,而是在人才市场中保持竞争力,查看自身的不足,并且还可以通过面试来检测一下刷题的成果,可谓一举多得。
Google 是很多软件工程师梦寐以求的大厂,very very big,不仅薪资水平高,技术给力,福利待遇也好,有免费的员工餐厅,有各种休闲娱乐的场所。小赖哥这次面的正是 Google。
不过,据统计,Google 面试的成功率不到 0.2%,也就是 1000 人中不到 2 人,这还不包括那些投了简历却连面试机会都捞不到的,难度比上哈佛大学都大。
国外的大厂,比如说 Facebook、Amazon,包括 Google,直接投简历很难过,最好是通过在职员工的内推。这也是没办法的事儿,这些大厂每天收到的简历估计成千上万,想要直接从简历中筛选出要发出面试邀请的人确实比较难。
9 年前,小赖哥离开初创公司,开始疯狂地向大厂投递简历,基本上都石沉大海。后来,通过猎头幸运地拿到了美国通用电气(以下简称 GE)的工程师 offer,让他备受鼓舞。
有了 GE 的大厂背景后,在面试的时候就不需要花时间和面试官介绍公司的情况了。前年,小赖哥以此为跳板,顺利拿到了 Facebook 和 Amazon 的面试邀约,最后成功加入 Amazon 的 AWS(亚马逊公司创建的云计算平台)。去年,有了 Amazon 的硬实力背景,除了投递给 Apple 的简历被高冷的拒绝外,其余像微软、Facebook、Twitter、CloudFlare(一家总部位于旧金山的美国跨国科技公司,向客户提供基于反向代理的内容分发网络,以及分布式域名解析服务等业务)等大厂的面试邀约都顺利拿下。
Google 的小赖哥主动投递了两次,都没有回音,幸好他的一个朋友在 LinkedIn 上收到了邀请,顺带把他也推荐给了猎头,就有了 Google 的这次经历。
第 0 面是和 Google 的 TR(Technical Recruiter,人力资源部面向信息技术的专员)面的,职位是 SRE(Site Reliable Engineer,网站可靠性工程师,有点偏运维的软件工程师,需要考核算法、编程和系统设计方面的知识)。
这一轮是远程视频面试,可以选择走传统的数据结构与算法和网络运维。小赖哥选择的是前者,基本上都是多选题,偶尔会有一两道选择题,比如“C++ 的 map 如果 key 不存在时访问 map[key] 会发生什么?”答案是会按照默认的构造函数来创建一个 entry。这一轮只要不是太差,基本上 TR 都会给一个 1 面的机会。
第 1 面考的是算法题,45 分钟,一道题,在 Google 开发的一个叫 Virtual Interview 的工具上敲代码(不需要编译)。题目偏难,需要一些数学知识,外加广度优先和深度优先算法。小赖哥这一轮表现得还可以,没有大错,没有卡住,和面试官聊得也挺愉快。
最终面考的是编程 + 系统设计 + Leadership(领导力)。
编程题相对较难,题目本身可以做很多延伸来讨论,没有碰到原题(哭)。
第一轮:给一个单调函数(y=f(x))的值,求 x,二分算法。
第二轮:求地球上陆地的最大面积,深度优先算法,需要先进行一次广度优先在外围水域进行预处理。
第三轮:CPU 调度算法。
系统设计考了一个类似 Dropbox(多宝箱,提供线上存储服务,通过云计算实现互联网文件同步,用户可以存储并共享文件和文件夹)的文件分享的题目,Google 要求的比较简单,只分享不涉及到用户上传和修改。
Leadership 阶段的考题是,如果你带一个团队,2 周后有个 deadline,但这时候有一个工程师生病了,你会怎么做?这种题没有标准答案,所以并不好回答。
很遗憾,小赖哥这次面试最终以失败告终。主要是第二轮算法面试的时候,时间复杂度搞错了,减了不少分。还有就是编码阶段也不是 Bug Free(写没毛病的代码和想很周全的算法)。再还有就是简历没有好好准备,AWS 的工作没有写出来,估计吃了不少亏。
小赖哥告诉我,面试大厂的关键所在有三个。
第一,就是刷题,一定要多刷,把解题背后的套路牢记于心。给大家强烈推荐这份算法小抄,点击链接后就可以获取离线版。
第二,就是简历,还是要好好准备。一定要把牛校和牛项目的背景介绍到,毕竟所有的材料都会被汇总,有时候可过可不过的时候,简历的作用就体现出来了。给大家推荐一份简历模板,点击链接就可以获取。
第三,多结交朋友。内推岗还是香啊,很多时候,机会就是彼此成就的,平常一定要多积累,尽量去帮别人一把,尤其是那些潜力股,还有就是那些大牛,手头上都有一些资源人脉,当关系好的时候,他们在得到机会的时候脑海中就会第一时间想到你。
对了,之前分享过一篇GitHub 上最励志的计算机自学教程,教程的作者也是想面试谷歌,结果失败了,不过最后和小赖哥一样,面上了亚马逊。里面有一份 GitHub 上 星标140k+ 的面试攻略,我亲自整理的,大家可以去获取一份。
加油加油!虽然我们不一定要面试 Google,但这份面经还是值得学习一下的。我们下期见。