说句实话,现在的谷歌最值得加入!

按目前的政策可知,现在加入狗家好处有三👇
需求大门槛低,想上岸比较容易

虽然狗家的算法题之前一直都是上岸拦路虎,但最近论坛里不少人反馈
coding都没遇到hard题👇

需求大,领英上显示狗家目前在招人数6000+
最新股权激励政策,等于变相涨薪

今年北美大厂可是缺人缺疯了,一个二个都在【变相涨薪】,先是涨base涨bonus,现在又开始对ve
st制度进行改革,四年股票可以提前拿到手...

原本入职一周年才能拿到手的股票,现在变成陆续发放。
H1B发放数量多,身份问题好解决

从美国劳工局2021年发布的数据显示,狗家可以拿到H1B的数据位居第二👇拿到H1B身份都不愁了高薪还会远吗?

所以就上述信息而言,如果你想加入一个相对好上岸的,发展前景稳定,还能拿身份的大厂,选择谷歌肯定是没错的。
当初我想上岸狗家的目标也是特简单,想找份钱差不多事稍微少点的工作。但鄙人不才,两年前社招时只拿到了谷歌的lowball。年薪将将25w,记得当时的招聘流程是这样的:
而从投简历到最终拿到offer,我一共经历了4轮面试,这几轮面试经常被问到的问题有3大类:算法题/系统设计/Behavioral Question不同的问题面试官考察的侧重点是不一样的。
01
算法
G家基本是三轮算法一轮design,但非常看运气,有的人会被问到很难很怪的题,有的人一路easy/medium题,最近据说是难度降低了,因为缺人,但还是建议跟以前一样去准备,注意细节。
谨防面试官在coding style上找茬:命名,格式,甚至细节到每一个空格,符号,都能被抓住挑刺。
我觉得最快提升算法能力的方式非常直接,就是刷题!得按照类别去刷,用的是学习资料是《FLAG面试常考知识点及考察频率》里的分类方法,基本每个概念做两三道就可以了。
刷题的重点可以放在动规、二叉树、递归、链表、二分搜索上,动规简单看下就可以了,投入产出比非常差。其他常考知识点可以参考《FLAG面试常考知识点及考察频率》上划分的FLAG面试常考算法知识点和频率,在免费试听课上就能学到,不用担心被收qian~
扫码报名,免费试听
当你做完这一步之后,应该能对各类算法题有一个比较全面的认知,如果你能够做到看一眼题目就知道怎么解,效果基本就达到了。如果还没有,建议继续刷题来巩固和熟练。
我一开始是在学完算法与数据结构基础之后,直接去LintCode上找狗家的高频题去练习。大概百来道吧,基础的算法知识点都能覆盖。遇到不熟悉的题型,可以将他们单独放在一个list里,之后专门攻克。
事实证明这样的准备比盲目去刷几百题更有效,我就是靠这样的方法,在G家终面时遇到了原题,也算非常幸运了。
各位可以实操下👇
  • 第k大元素
  • LRU缓存策略
  • 图是否是树
  • 序列重构
  • 单词拆分 I
  • 最多有k个不同字符的最长子字符串
02
系统设计

狗家面系统设计的特点是不按套路出牌,有面试官直接现场给简单的app后端设计图,希望求职者针对用户需求来重新设计并解决问题,题目课拓展性差。
系统设计作为跟面试官谈涨薪升levle的筹码,所以是必须要熟练具备的技能。
所以,在面试前了解系统设计面试的评分标准,非常重要。
根据我之前的面试经验,我发现系统设计主要考察这几个方面:
  • 可行解 Work Solution 25%
  • 特定问题 Special Case 20%
  • 分析能力 Analysis 25%
  • 权衡 Tradeoff 15%
  • 知识储备 Knowledge Base 15%
但说实话,算法可以靠刷题去巩固,系统设计却并没有一个标准的备战方式我前期面试的时候总挂在设计上,因为面试官抛给我问题之后,我会疯狂的去怼关键词,像是Load Balancer,Memcache,NodeJS什么的...
所以那阵子几乎所有面试的公司都挂了,一度看到设计题就恐惧。后来学长推荐给我一套系统设计4S分析法,谁能想到设计题也能套模板回答,套用之后,仿佛打开了新世界大门,这里借花献佛,分享给大家~
所谓4S分析法指的就是👇:
  • Scenario(场景)
  • Service(服务)
  • Storage(存储)
  • Scale(扩展)
拿之前面试时遇到的真题举例:如何设计一个推特?
就可以套用4S分析法来展开回答:
第一步:Scenario 场景
在这一步,你需要询问面试官:需要设计哪些功能(也可以自己想),需要承受多大的访问量?
首先可以把Twitter的功能一个个罗列出来,很显然你无法在45分钟的面试中完成所有功能的设计,所以需要筛选出核心功能(Post a Tweet,Timeline,News Feed,Follow/Unfollow a user,Register/Login)。
然后有的面试官可能会问你系统承受的QPS大概是多少?需要考虑并发用户,读频率(Read QPS)以及写频率(Write QPS)。记住重要的是你的思考和计算过程而不是计算结果。
分析QPS有什么用?
  • 如果QPS = 100,那么用你的笔记本作Web服务器就好了;
  • QPS = 1K,一台好点的Web 服务器也能应付,需要考虑Single Point Failure;
  • QPS = 1m,则需要建设一个1000台Web服务器的集群,并且要考虑如何Maintainance(某一台挂了怎么办)。
QPS 和 服务器/数据库之间的关系
  • 一台Web Server承受量约为 1K的QPS(考虑到逻辑处理时间以及数据库查询的瓶颈);
  • 一台SQL Database承受量约为 1K的QPS(如果JOIN和INDEX query比较多的话,这个值会更小);
  • 一台 NoSQL Database (Cassandra) 约承受量是 10k 的 QPS;
  • 一台 NoSQL Database (Memcached) 约承受量是 1M 的 QPS。
第二步,Service服务
所谓服务可以认为是逻辑处理的整合,对于同一类问题的逻辑处理可以归并到一个服务中。这一步实际上就是将整个系统细分为若干个小的服务。
根据第一步选出的核心功能,我们可以将推特拆分成如下的几个服务:
篇幅有限,关于后面几个步骤的更多的内容,可以直接移步《系统架构设计通关攻略》,也是免费资源。像秒杀订票系统,设计电梯,三驾马车,新鲜事系统,评论系统这些大厂常考的设计题,都能手把手带你实操。
...
扫码报名,免费试听
03
BQ
BQ方面狗家肯定考不过亚麻,所以可以直接去看亚麻的军规打基础,另外利用下手头免费资源《面试软技能指导》丰富一下储备就ok了。
扫码报名,免费试听
04
加分项目
最后就是项目经验,没实习经验的一定要看,绝对能在投递简历时加分。
linghu-algorithm-templete
虽然谷歌的算法面非常爱出变形题,但面试官最终想考察的东西肯定是不变的,所以我在备战期间会选择多做高频题,搞清面试官的出题套路
Twitter 后端系统 - Python 项目实战
Facebook资深架构师的Twitter项目,带你从零设计Twitter,最终搭建一个P8(L5)水准的项目
涉及万行代码,最终成果是一个可上线的工业级别的项目,而不是像市面大多数项目课程简单做个demo。
涉及的面试难点包括:
  • 如何分别测试登录用户和未登录用户?
  • 如何做反向查询?
  • 如何设计数据库表达?
  • 如何让部分用户看到某个新功能,其他用户看到的就是功能?(灰度测试)
  • comments的API该如何设计?
  • ……
最适合当作系统设计的练手项目,可以免费试听,大家可以去感受一下。
扫码报名,免费试听
LintCode
小众在线刷题平台,在学完算法与数据结构后,可以先找几道G家的原题练练手,感受下大厂的面试难度及考察风格,除此之外,对于新手也专门设置了新手必刷编程50题,基础薄弱的也可以先从这里开始刷起。
最后,在疫情持续动荡的年份里,北美很多人都在经历着辞职与找工的热潮,希望你能在此时明确目标,当然能上岸狗家确实也算是个不错的选择。
继续阅读
阅读原文