别再神化谷歌了!!!
总有人喜欢问:去 Google 这样的公司工作需要什么样的硬性指标么?
我只想说:别再神化谷歌了!!!
说实话去谷歌工作,有且只有一个硬性指标:通过谷歌的4-6轮面试,通过team match就能拿到offer。无关性别、无关年龄、甚至无关学历。
那么,给大家科普一下 谷歌的面试流程:
一般谷歌是有4-6轮的面试,按照考试类型可以简单分为算法、设计和BQ(下方有具体解释)。
简单来说就是考算法题,除了面试官出的题要做出来,还要应对面试官的followup,一般能把题目做出来,且和面试官进行流畅的沟通,这轮基本就稳了。
按照类型可以简单分为系统设计和面向对象设计。面向对象设计(OOD)主要面向应届生和工作1-3年的程序员,系统设计则主要面向工作3年+的资深工程师。
即行为面试问题,简单来说就是不考技术相关的知识,而是考验你与人沟通、合作、处理问题等职场软技能。
接下来,具体介绍一下谷歌面试形式,以及该怎么准备。
首先,根据硅谷资深面试官令狐冲的讲座分享,想进谷歌必须要刷难题。谷歌算法考察范围很广,特别喜欢DP和红黑树 Red-black Tree,线段树 Segment Tree。
谷歌的算法轮会占到2轮以上,也有4轮全考算法的情况,可以说再给大家传授一个高效解法——想过谷歌的算法轮,刷近一个月的面经题就够了。
谷歌的算法题难度逆天,是因为它爱出新题,所以很多人也就理所当然的认为看谷歌面经没用。实际上,每个公司都是有标准化的题库的,谷歌也有题库,只是ban题速度更快一些。
ban题快也就意味着题库小,不能像FB这样动辄几百道题随机抽,每个时间段的题目可能也就几十~一百题。
换言之,面试前只要把谷歌近期的题目刷上一遍,大概率都能遇到原题。而我也把最近搜集的新题都整理好了,需要自取:
200 · 最长回文子串
575 · 字符串解码
1082 · 员工的重要度
257 · 最长字符串链
1001 · 小行星的碰撞
984 · 等差切片 II - 子序列
890 · 最短的唯一单词缩写
1869 · 统计全为 1 的正方形子矩阵
1024 · 满足要求的子串个数
978 · 基础计算器
300 · 会议室
4156 · 合并区间
122 · 直方图最大矩形覆盖
1370 · 赛车
615 · 课程表
在这套Google往年题库里,则是搜集了谷歌近2年来的算法真题,并且会按时进行更新。感兴趣的话可以来刷刷看。
前面简单地提到过,设计轮主要是按照工作年限考察不同的类型的题目。
一张图,先带你弄清楚OOD和系统设计的区别:
01
3年以下的求职者:着重面向对象设计OOD
OOD即面向对象设计,应届生和工作1-3年的求职者常考这类题型。如果还不知道OOD是什么,这节OOD全扫盲视频强烈推荐给大家!
(免费!点击“免费试听”即可白嫖)
扫码报名,免费试听
OOD的经典问题包括电梯设计、停车场问题、咖啡机等,通俗理解即“拥有实体”的设计题目。
要攻克OOD面试 ,首先要搞懂OOD面试的评判标准——SOLID原则。
• S – Single responsibility principle
• O – Open close principle
• L – Liskov substitution principle
• I – Interface segregation principle
• D – Dependency inversion principle
关于这几个原则的具体解释,九章的《面向对象设计》讲得很详尽了,感兴趣的话可以去免费体验一下~
扫码报名,免费试听
而这类问题也有比较通用的解法,同样是来自《面向对象设计》的5C解题法:
Clarify 说人话:通过和面试官交流,去除题目中的歧义,确定答题范围。
Core objects 说人话:确定题目所涉及的类,以及类之间的映射关系。
Cases 说人话:确定题目中所需要实现的场景和功能。
Classes 说人话:通过类图的方式,具体填充题目中涉及的类。Correctness 说人话:检查自己的设计,是否满足关键点。
02
3年以上的求职者:着重准备系统设计
系统设计的常见形式有2种,一种是设计XX系统,另一种则是设计XX系统中的XX功能。由于设计XX系统考察的非常广泛,所以目前公司更倾向于考察设计XX系统中的XX功能。
设计某某系统 Design XXX System
• 设计微博 Design Twitter
• 设计人人 Design Facebook
• 设计滴滴 Design Uber
• 设计微信 Design Whatsapp
• 设计点评 Design Yelp
• 设计短网址系统 Design Tiny URL
• 设计NoSQL数据库 Design NoSQL
设计某某系统中的某某功能
• 设计一个功能实现对用户访问频率的限制
• 设计一个功能实现统计某个具体事件的历史发生次数
• 设计删除一个 Tweet 的功能
• 设计邮件系统中将所有邮件标记为已读的功能
补充:Google 提出的示例系统设计问题
你会如何设计谷歌的网络索引数据库 你会如何设计 Google Docs 你会如何设计 Google Home(语音助手) 你会如何设计亚马逊的图书预览 你会如何设计一个社交网络 你会如何设计一个任务调度系统 你会如何设计一个售票平台 您将如何设计一个计算 YouTube 视频点击次数的系统 您将如何设计一个可以显示 1000 万以上用户状态的网页,包括:姓名、照片、徽章和积分 知道每个作业需要一定数量的 CPU 和 RAM,并且每台机器具有不同数量的 CPU 和 RAM,您将如何设计一个在机器机架上调度作业的函数?可以在同一台机器上调度多个作业,只要它可以支持
而这类问题的解法,在《系统架构设计2021版》中,老师也给系统设计总结了一套对应的解法——4S分析法:
说人话:将大系统拆分为小服务
• Split / Application / Module
说人话:数据如何存储与访问
• Schema / Data / SQL / NoSQL / File System
根据这一思路,就可以逐步完成一个系统的构建,也可以来参考《系统架构设计2021版》首节免费试听课的实例——设计Twitter。
扫码报名,免费试听
免费试听课上还会带你解决以下问题:
系统设计中常说的 Tradeoff 是什么 什么叫做 SOA (Service Oriented Architecture) 什么是 Pull Model & 什么是 Push Model 数据存储系统有哪些,什么样的数据适合存在什么样的数据存储系统中 什么是异步任务和消息队列 (Message Queue) 什么是数据的可持久化 (Persistent) 什么是去标准化 (Denormalize) 什么是惊群效应 (Thundering Herd) 有哪些与 News Feed 类似的系统设计问题
总之,白嫖不亏!
BQ,即行为面试问题,是在技术面以外的,考察求职者面试软技能的方式。面试官会通过20-40min的时间,考察求职者的沟通能力、处理和解决问题的能力,与公司文化的契合程度等。
Google 提出的行为问题示例
说说你自己 为什么是谷歌? 告诉我你最近参与的一个/有趣的项目 告诉我你必须解决团队冲突的经历 你最喜欢的谷歌产品是什么
在谷歌的BQ面试之前,你需要关注以下这些:
- Google 的使命宣言
- Google 的价值观
- 谷歌战略拆解
而BQ问题通常没有标准的答案,市面上相关的资料也没有很多,前谷歌资深面试官的《面试软技能指导》就有比较体系的介绍。
课程会涉及BQ问题解法和模板,免费的全英文模拟面试,谈薪技巧等干货,首节免费试听课上还会提供1V1免费面试的机会,感兴趣的同学千万不要错过!
扫码报名,免费试听
最后,也祝大家都能成功进入谷歌!!!
关键词
面试官
题目中
面向对象设计
系统设计
算法
最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。