您好,欢迎进入某某沙盘有限公司官网!

咨询热线:

020-88888888

如何得到 Google 的工作机会?

发布时间:2024-03-12 13:29人气:

我想得到的答案大致是:1. 你要多强(具体化的描述)才能荣幸加入 Google. 2. 你为去 Google 做过什么努力,或者什么努力帮助你去 Google.

相关问题:

如何得到Microsoft的工作机会?

国内程序员怎样竞争 Google 总部的工作机会,需要满足哪些条件?

知乎处女答。


Disclaimer:答者是Google员工。非招聘部门。一切言论为个人观点,与官方无关。一切信息来源届来自网络,不含内部机密信息。如果Google compliance部门同僚对这个答案有意见,请联系本人修改。


前小部分为吐槽,后大部分为干货。会把我个人的理解和网络上的信息整合为一个guide。



目录:

  • 吐槽
  • 干货
  1. Google有什么职位?
  2. Google在公开招聘什么职位?
  3. Google有内部推荐计划吗?
  4. 内部推荐和自己网递申请有什么不同?
  5. 我是学渣,GPA很低,有机会吗?
  6. 递完简历后是什么步骤?面试是什么流程?
  7. 是谁作出录取/不录取的决定?
  8. 整套流程需要多少时间?
  9. 应该如何准备面试?
  10. 怎样使我的简历突出?
  11. 没被录取,怎么办?以后还有机会吗?
  12. 楼主的补充问题
  13. 传说中Google的Benefit真的有那么逆天吗?


-----------------------------------------------------------------------------------------------------------

吐槽:


你的问题不是问题


怎样去Google工作,是指怎么坐车去?还是怎么报名递简历?还是询问要怎样的自身条件?楼主你不说我怎么知道你在问什么?我甚至都不知道你几岁,是学生还是应届毕业生还是工作人士,你想找的工作是工程师还是销售还是打扫Google办公室的清洁工,很难作答。


要想得到一个好答案,先从一个好问题开始。


而如果你能问出好问题,通常也不需要他人来知乎作答了,因为你的问题很可能在网上已经被address过。


引用 珵cici 的话,‘先去用Google搜索这个问题。无论对什么职业来说,「自行搜集信息的能力」都很重要.


怎样的问题我认为是可以接受的?

我是XX大学软件工程系大二生,想去Google报工程师职位。请问我应该把重点放在学习哪种语言上?Google招聘工程师最看重哪些特质?

我是从业XX行业的市场营销,想去Google从事marketing工作,但是我没有科技公司工作经验。请问我的背景可以申请吗?适合Google里哪个level的职位?我需要证明我的什么能力?


换句话说,你的问题必须够具体,够私人,你得到的答案才能帮助到你。


--------------------------------------------------------------------------------------------------------------


以下是干货。 持续更新


我决定整理一套相对清晰易读的指南,便于有心报Google的人作为参照。


1. Google有什么职位?


官网:Teams and Roles


分三类:

Build Cool Stuff: 硬件、软件工程师,产品经理,Google X等。

Sell Cool Stuff: 销售,运营等。

Do Cool Stuff: 行政,法律,市场,招聘,公关,人事,财务等。


具体职能上 Teams and Roles 看。




2. Google在公开招聘什么职位?


官网:google.com/about/career


选择地点或职位就可以搜索出所有公开招聘的职位。用户体验很好,职位介绍详细很准确。


另外,在如linkedin等招聘/职业社交网站上会出现部分Google公开招聘的职位




3. Google有内部推荐计划吗?


有。Google非常看重,并且鼓励Referral。员工只要成功Refer一位最终被录取的candidate,就能得到奖励 。换句话说,如果你有认识在Google工作的人,而他同时认为你确实是有这个能力的话,通常Google员工是很乐意帮忙Refer你的。


所以说,如果你真的很想来Google工作,可以多发展这方面的社交。比如LinkedIn上搜索校友,或是参加Google的校招活动认识recruiter和/或员工。


Google内部推荐你的人需要填Referral form,上面有很多类似他会怎么评价你,怎么证明你的领导才能等问题 。如果要找人refer的话,确保你让他充分了解你自己,这是对双方的负责。




4. 内部推荐和自己网递申请有什么不同?


内部推荐很可能会加速你的申请过程,但很小可能增加你被录取的成功率。



每天投简历到Google的人是很多很多的。Recruiter每天要看成千上万份通过网上递交的简历,看到你的那份时都不知道猴年马月了。何况,你真的确定你的简历能在上万份简历里stand out?


这时referral就能帮你了。内部规定recruiter必须在收到referral的一周内review你的简历,必须在两周内给出答复。换句话说,你算是插队了。


可是这不能提高你被录取的成功率,实力不行的人也只是插队被拒。整个interview和review process都是一样的。最终决定录取与否的始终是你的背景,能力,和面试表现。







5. 我是学渣,GPA很低,有机会吗?


有! Google有可能是全世界最不看重GPA的公司了。Google People Op老总 Laszlo Bock自己说过,Google通过多年统计和研究发现,GPA和个人成功的correlation极小。链接:Google HR Boss Explains Why GPA And Most Interviews Are Useless


Google最看重的一点,自然是 --- 你的能力。


至于能力怎么体现?可以通过GPA体现(专业能力,学习能力)。如果无法通过(渣)GPA体现,那就通过其他途径体现。什么途径?自己想去。想不到说明没有。


工程师体现的途径就是你的coding skill。coding skill的体现在与你参加过的个人/团体项目,github上的协同项目,学校的研究项目,面试时的当场表现。其他所有方面几乎都不重要,唯一重要的就是你的coding skill;能力强,Google能包容一切,包括你的GPA,毕业院校,专业,甚至你不是本科生都无所谓。


非工程师职位,如果是非应届生招聘就看工作经历;如果是应届生招聘,看重的是 soft skills,如沟通能力,领导能力,学习能力 - 这点很重要,因为互联网科技是个极速发展的行业,一年后的产品和生态可能跟现在完全彻底不一样,只有具备高度自学能力的人才能适应。




6. 递完简历后是什么步骤?面试是什么流程?


在glassdoor上有大量的信息,都是经历过面试的人(成功与否)留下的信息。

Glassdoor – an inside look at jobs & companies


通过最初步的CV Screening (简历筛选)后,会有大于等于5轮的面试,和3轮的review


没有内部推荐的话,CV Screening往往是最难的一步。


第一轮通常是telephone screening,通常来自Recruiter,也就是接下来会管理你整个application的人。


这telephone screening的重心会放在你的简历上 - 一切你写出来的经历都会被question followed by question。如果报的是软件工程师,很有可能会让你马上在电脑前开一个google doc然后在30分钟内写代码回答问题。


Recruiter对screening的满意的话,就会邀请你去最近的Google Office进行on-site interview了。通常会3场面试一起安排在office。不一定每个interviewer都会在办公室,可能3个interviewer都不在。不在的会通过视频和在办公室的你进行面试。面试官有可能是你将来的manager,有可能是你将来的同事,也有可能是其他team的manager。Google希望得到多方面人的意见。


面试内容:工程师职位会非常focus在coding skills,会被考算法,并且会被要求当场用纸笔写代码回答问题。非工程师职位的问题就focus在你报的职位相关product,knowledge或experience上。具体问题要分职位,我不可能全了解,上glassdoor搜索相应职位的interview review会准确很多。另外,interview时可能会问一些brain teaser。


当全部的interview都完成后,recruiter会联系你并问你要更多的信息,如推荐信,学习成绩单,以及你做过的经历的证明或补充。每个interview过你的人都会写出他们对你的feedback,以及打给你一个分数。Recruiter会把所有人的feedback和分数,和你的简历,补充资料,推荐信等等所有资料整理为一个package,接着把这个package发到美国总部的3个committee做review。


官网上的 How we hire - Google Careers



7. 是谁作出录取/不录取的决定?


Base在美国的hiring committee。上文说到的package会被发到committee,committee中人会定时开会并讨论每一个被发过来的case。前面说过面试官会打分,平均分低的就直接被刷,平均分中等以上的就会开始case by case讨论,直到大家同意这个case是hire or no hire。无法统一意见的case可能会被退回给recruiter,然后recruiter可能会去collect more information如加多一轮interview。


过了hiring committee的人会进入compensation committee,这些人会决定要给你怎样的compensation package啦。


最终会进入executive committee,也就是公司的高层老大们。他们会把所有的information最终review一次,并判断这个candidate的quality符合不符合公司长久的招人质量。


Exe committee也过了就大功告成了。recruiter很快就打电话来了 :)



8. 整套流程需要多少时间?

不等,短则2个月,长则6个月以上。




9. 应该如何准备面试?


转载一下官网 How we hire - Google Careers 上的说法吧,方便被墙的知友:


Leadership

We’ll want to know how you’ve flexed different muscles in different situations in order to mobilize a team. This might be by asserting a leadership role at work or with an organization, or by helping a team succeed when you weren’t officially appointed as the leader.


Role-Related Knowledge

We’re looking for people who have a variety of strengths and passions, not just isolated skill sets. We also want to make sure that you have the experience and the background that will set you up for success in your role. For engineering candidates in particular, we’ll be looking to check out your coding skills and technical areas of expertise.


How You Think

We’re less concerned about grades and transcripts and more interested in how you think. We’re likely to ask you some role-related questions that provide insight into how you solve problems. Show us how you would tackle the problem presented--don’t get hung up on nailing the “right” answer.



Googleyness

We want to get a feel for what makes you, well, you. We also want to make sure this is a place you’ll thrive, so we’ll be looking for signs around your comfort with ambiguity, your bias to action and your collaborative nature.




Again,建议有心了解面试准备的同学上Glassdoor,上面资料更齐全而且更role-related。




10.怎样使我的简历突出?


Google对简历要求不死板。常规的CV OK,带有创意的也很能接受。但简历不要超过一页。重点突出你的skills,重点突出你的accomplishment,能用数据体现出来最好!


有人把简历做成这样:



更是有个哥们,为了得到一份marketing的职位,花了3000美刀做了一个please hire me的网页

Google, please hire me. Matthew Epstein.

逗逼的是他最终interview后被拒了。


结论就是,creativity有用,可最终要靠还是硬实力。



11. 没被录取,怎么办?以后还有机会吗?


有的。Google会保留每一个人的档案。专门有一个招人的team是负责找回以前interview过的人并重新assess。




12. 楼主修改后新增的问题):1.你要多强(具体化的描述)才能荣幸加入Google. 2. 你为去Google做过什么努力,或者什么努力帮助你去Google.


进入Google的方式没有公式,不同类型人可以通过不同途径进入。我猜测楼主是个学生?那答案自然是 ------- 好好读书。考上个好大学是一个好的开始。找到自己热爱的领域,并成为这个领域的顶尖人物。如果热爱CS,就大量参与project并成为顶尖coder。如果热爱marketing,就大量参与各种市场活动并成为顶尖marketer。如果热爱sell stuff,就成为顶尖sales。Google是一个很大的公司,几乎任何人都能在这找到位置,只要你在你的领域足够优秀。楼主说“崇拜肯 汤普逊”,那看来是学IT的?那简单的回答就是成为一个极好的coder,做出过自己的产品,参与过学校的研究,协同过github的项目等等。我不是IT出身,很抱歉不能更加具体地回答你的问题。如果之后看到有好的回答我会转发上来的。





13. 传说中Google的Benefit真的有那么逆天吗?

(图片皆来自网络)


免费三餐:



免费零食,水果,饮料,果汁:




办公室内有按摩:



有理发:



有得耍:



有得睡:




Reception是这样的:



下楼是这样的:



  • 母亲有22星期的产假,父亲有12星期的产假。(美国)
  • 小孩出生后Google报销奶粉钱。
  • 员工的health,dental,vision保险同时包括员工的丈夫妻子和小孩。
  • 如果员工在Google工作期间去世了,员工的另一半和孩子会得到员工5-10年的年薪。
  • 每年圣诞节Google送给全体员工Chromebook、手机或平板。2010年更是每人发了1000美刀和全体员工10%的 raise。
  • 可以带狗上班。

就在昨天,美东时间下午 4 点,意外收到 Google recruiter 从西海岸总部打来的电话,说我的 case 通过了 SVP 的审核,马上就给我发 offer 啦。


果不其然,挂完电话没过多久,就收到了 offer 邮件。pre-senior 标准包,General Software Engineer - IC(Individual Contributor),没什么特别大的惊喜,毕竟还没有好的 compete offer ,但是也没有被 lowball。感觉还不错,因为这是我梦想的公司,而且有了他作为 backup,接下来的 F L A 我想压力也不会太大,应该会取得一个比较圆满的成绩。

正式 offer


其他答主从很多方面解答得都很全面,我就从一个特别的角度 -- 分享自己关于 software engineering 的学习方法和经验总结。


按照国际惯例,首先是免责声明:我的言论仅代表我自己的理解和感受,与我所在的公司无关。一切信息来源都来自网络,不含内部机密信息,也不会包括任何和公司 & 政治相关内容。如果 Google 同事对这个回答有任何意见或者建议,请随时联系我。


现在在回头想想,其实肉身翻墙还是蛮有难度的。除去留学经历和第一次美国找全职工作,单单是准备这个 Google 的面试就是很要命的。因为我申请的职位是 General Software Engineering(以下若没有附加描述,默认都指的是 Software Engineering 职位),而且我之前也有(国内/美国)全职工作经验(之前的面试经验请移步:三个月找到北美满意好工作),所以我着重准备

  • 算法
  • 系统设计

算法--想必大家已经猜到了,最重要也是最让人头疼的部分。算法准备其实是相当有难度,因为之前在国内工作时几乎没有公司考这个,即使是 BAT,也只考算法的皮毛,大家平时也不注重基础的准备,只要能搬砖就行。正如优秀答主 @Tony 所说

Google 难就难在他对所有的职位都有基本的数据结构/算法要求,哪怕对最普通的职位都需要最优秀的人才去胜任。

还好现在我们有了前人铺好的路,网上有很多非常优秀的大神前辈分享的学习算法的资源。大家可以根据自己的情况、选择适合自己的资源。


关键字:分类学习艾宾浩斯记忆曲线总结

第一步就是按照 tag 把知识点分成不同的 list。一定要根据自己的算法掌握情况来定制知识点 list,随便从其他地方的舶来品基本没用,因为只有自己才最了解自己的复习情况。这里我的做法是额外分一个 basic list,意思是所有基础的数据结构/算法都覆盖一遍。这些内容是一定要会的,基础的基础。

第二步就是著名的艾宾浩斯记忆曲线的运用了。考过托福/雅思的细心的同学可能发现了,这个实际上和记忆英语单词有异曲同工之处 -- 先做 list,第二步我们要干嘛?按 list 不断复习,每天循环学习!

最后一步也是最重要的一步:总结。我们需要随时记录下当前学习的状态,然后每天在练习时做到有的放矢:已经掌握的知识点略过即可。总结需要注意的关键点:

  • 总结 tag -- 对于一个知识点,我会哪些方法哪个是最优
  • 总结笔记 -- 记录下来当时学习此知识点的方法
  • 总结类似知识点
  • 总结关键思考步骤

总结 tag 大致意思是说:某个知识点大概有哪些思路以及我自己最喜欢的方法。

总结笔记,很多的知识点复习好多遍也不太会。那没有办法,我只能把这个笔记单独拿出来,写到纸质的笔记本上,有空就看一遍,推一遍,敲一遍。谁叫我笨呢 :(

总结类似知识点,这个也很有用,因为往往类似知识点都有一致性。只是越往难越是在基础算法/数据结构上糅合了其他的算法技巧。可以参考网上大家分享的建议,然后把所有的先总结出来,每次练习一起练,找出基本差异。

最后一点,总结关键思考步骤。这一点很有意思,主要是说我在遇到困难时,看完大神的思路之后自己总结出几点关键步骤,这样下次要是再卡壳了就可以直接看这个,想想之前自己的思路,而不是再去看其他讨论。这样循环往复个 2-3 次就能熟练记下来。

具体可以看这里 LeetCode按照怎样的顺序来刷题比较好?


系统的话就比较容易搞,有工作经验的小伙伴可以基本上直接略过。我个人是按照 STAR method 准备。没有工作经验的同学也不用太着急,在各大网站上好好上和自己职位相关系统设计的课程,可以好好学习。

个人觉得系统设计就相当于是知道/不知道类型的题目,有过工作经验的自然就很好说。如果你是 new grad 也千万不要本末倒置,因为随着实习/工作的进行,如论如何都会积攒越来越多的系统设计经验,所以在算法/数据结构没有夯实基础之前,个人认实在是没有必要花时间在这上面。没有好的算法和 CS 功底,基本都不会遇到系统设计的题目。

Brush up on Computer Science fundamentals.

这是 Google 面试指南的准备第一条,只有这条 crack 之后,社招的候选人才有可能会遇到系统设计。


去年 5 月:内推/收到 recruiter 邮件

去年 6 月:店面 + onsite

首战失败,但距离成功很近。根据 recruiter 的反馈:

We are not confident enough to make a decision (either pass you or fail you), we'd like to make another additional interview...

我感觉他们的套路是:如果发现 pass 你或者 fail 的证据不足,会一直要求增加面试。可惜,在最后的加试中挂掉了。于是从那时候就在心里中下来默默刷题/来年再战的种子。

果不其然,今年我还没咋准备好,就来骚扰我了。


3 个月前:收到一个陌生 Google recruiter 的邮件,说我去年很接近了,要不要今年再试一下。我先是谢绝了,然后她给我发了很多准备资料,我说我会按照你这些资料好好准备,等 3 个月之后再联系你把。她说好。


这期间除了准备算法 + 系统设计,我其他做得比较多的是 mock interview。搞得厉害的时候每周 3-4 个 mock interview,基本上正常情况也是在 2-3 个/周。我主要是在 pramp 上准备,当然 pramp 本身比较简单,即使是选择最难的档,也还是有不少水题。这就要求我尽量答得要好,基本上 90% 的全部(Problem solving / Coding / Comunication) 4 星(满分)。等这个练习得差不多了,20-50 次吧,就可以去更难的 interviewing.io 上试试啦。基本上能在 interviewing 上拿到 2-3 个 pass 那我觉得就很不错了。


最后附上一张刷题打卡表,解答一下要刷到什么程度才算是合格。

连续刷了 5 个月,每天都有 submit

细心的同学可能发现了,在连续刷了 5 个月之后,我有一天突然断掉了。那天我特意没有刷,因为拿到 offer 去庆祝了呀。


根据目前掌握的情况,我一般建议要刷到 4-500 题至少(2019 年的 bar)。这里我说的是里面大多数题目都要不止刷一遍,而且要弄懂绝大部分的数据结构和算法。再多基本上就是换汤不换药啦,在没有充裕时间的情况下可以不用太追求数量。质量其实更重要。


利用好市面上免费的资源帮助自己准备也是会学习的一种表现。盲目机械地学习算法我不推荐。这里是我总结出来的一些资源,仅供参考。

1) LeetCode 学算法

2) hired.com 改简历

3) pramp.com 做 mock interview

4) Triplebyte 刷 system design + 经验

5) 找我帮你看看简历,并且分享相关面经

6) 学习群讨论总结和提升(知乎同名公众号回复“学习群”即可进入)

7)...


可能有人会问:我已经拿到心仪 offer 了为啥还要继续学习?我的 philosophy 是:我们应该时刻保持自己有足够的竞争力,持续提升自己。因为即使工作之后,经济不好的时候随时可能失去工作;而且即使是和平时期,搞不好也会被 pip,据说此大厂最近还搞出了个 devlist。

作为学校/职场中的我们,唯一能应对的就是时刻保持竞争力,算法 + 硬货。算法应对面试,硬货应对工作。两手抓两手都要硬。所以我的建议是:每年拿出一个月左右(在职即可)来复习算法,看看自己在人才市场中处于什么位置以及目前行业中的大致走向。做到自己心中有数,随时为不稳定的环境做好充分准备。这也是我对『活到老,学到老』的另一层的理解。

还在煎熬中的你,看到这篇文章你就会明白 -- 你不是一个人在战斗。所有的面试都是相对的,你现在多高效准备一分钟,说不定到最后就能取到决定性作用。

搬自我的Blog

joshuablog.herokuapp.com

缘由

在整个找工作的期间,每天刷一亩三分地和Leetcode,而且刷题的过程中,有一些比较有价值的网站值得参考,其中的解法分析重点需要掌握。目前在Google的Product Infrastructure组工作,可以提供内推。

大部分来自天纯的pdf笔记

如果问最短,最少,BFS

如果问连通性,静态就是 DFS,BFS,动态就 UF

如果问依赖性就 topo sort

DAG 的问题就 dfs+memo

矩阵和 Array 通常都是 DP

问数量的通常都是 DP

问是否可以,也很有可能 DP

求所有解的,基本 backtracking

排序总是可以想一想的

万事总可以想HashMap

找规律试试Stack

  1. Longest Substring系列
  2. Two Pointer问题总结
  3. String总结
  4. LinkedList系列
  5. Stack总结
  6. Backtracking总结
  7. Heap总结
  8. BFS-Board类型总结
  9. DFS and Dijkstra
  10. Tree总结
  11. DP总结

TopLogicalSort 总结
Trie 类型总结
Union-Find总结
Design 问题
System Desgin

  1. Leetcode
  2. 1point3acre.com
  3. Linkedin (encourage to purchase premium member)
  4. Indeed
  5. AngelList
  6. Glassdoor
  7. LingOffer (Refer)
  8. Hackerrank
  9. 某一次Bittiger分享的公司和HR邮箱PPT
  1. kamyu104 带有时间复杂度的总结
  2. 细语呢喃 (思路清晰)
  1. 一个按类总结的博客
  2. Ethan Li 的技术专栏 思路清晰
  3. 一个适合刷基础数据结构的博客
  4. 分类总结2(值得看)
  5. 分类总结3
  6. 算法珠玑——一个最精简的题库
  1. Python小技巧大全
  2. 小土刀总结
  3. CMU-15619 Cloud Computing
  4. Java API 小总结
  5. 菜鸟教程!
  6. 廖雪峰教程
  7. 数盟
  8. 结构之法 算法之道
  1. fullstackml
  2. [Apache Pig Intro](tutorialspoint.com/apac)
  3. Cassandra Tutorial
  4. qwiklabs
  5. dive-into-machine-learning
  1. 不太全的总结
  2. 设计模式
  3. 教你如何迅速秒杀掉:99%的海量数据处理面试题
  4. 基础知识包括系统设计--面试题
  5. hiredintech
  1. 利用 Python 练习数据挖掘
  2. The Open Source Data Science Masters
  3. Bittiger项目
  4. voting-app
  5. Interactive Data Visualization for the Web
  1. 北美(湾区)CS工作进阶攻略-求职篇
  2. 一个台湾人写的小总结
  3. 复杂度表
  4. USC学长的Blog
  5. 面试总结
  6. Leetcode 分类顺序表
  7. 小土刀简历总结
  8. 简历的自我推销

目前 foobar challenge 又开放了,一般是搜索一些词就可以出来~

——————————————————

分享一个非主流的 Google 招聘方式吧, Google foobar challenge。

时间发生在去年在找intern的时候,某天晚上无意搜索到了 python list comprehension 这个关键词,然后 Google 的搜索页面突然抽风,黑屏......最后有一个动画过渡到了这个界面。。

当时完全不知道发生了什么,一直在 I want to play 和 No thanks 这两个选项中犹豫,不过最后还是点了 I want to play。


随后网页跳转到了一个类似 shell 的东西

这个 shell 自带一些的命令,

点了 Log in 之后,平复了一下心情,然后开始去 Google、百度上搜索这到底是个什么东西。

结果发现这个叫 footer challenge,是 Google 一种隐藏的招聘渠道,貌似是通过你的搜索历史和一些关键词触发(有待考证)。一共有 5 个 level, level 1有一道题,level 2 有两道,以此类推...通过 level 3 ,也就是 6 道题之后,可以给 Google 的 recruiter 留下邮箱地址,直接空降到 onsite 面试。

对于当时还在刷题找 intern 的我,简直是天降神器==

前面三个 level 的题信息量很大,理解题意需要一段时间,但是并不难,最难的也就是个二维 DP 了。每道题给的时间很长,从一开始的 24 小时一直到 level 3 的 7 天。闯过 level 3 之后,会问你一些基本情况,例如所在的国家地区、工作经验、要不要找工作之类的,然后就是留下邮箱地址了。

之后就是漫长的等待,大概几个月之后,应该是到了校招的招聘季,我收到了一个 Google recruiter 发来的邮件。

之后的流程就和通常的招聘流程一样了,校招就是 4 轮 onsite 面试,然后过 Hiring Committee ,Product Area Match,最后 Offer 。


最后回答一下这两个问题

1. 你要多强(具体化的描述)才能荣幸加入 Google.

2. 你为去 Google 做过什么努力,或者什么努力帮助你去 Google.

这两个问题感觉关系很密切,一个问的是结果,一个问的是过程,就一起答吧。

因为我没有大量的数据,所以也不知道要多强才能荣幸加入 Google,这里只能介绍一下我的情况。

我上研究生之前在一个做 mobile app 的公司有过 1 年多的 iOS full-stack 经验,本科的时候自己做过几个校园内的 app,对 web 前端, iOS , Python 后端,数据库, 缓存,async queue,DevOps 这些东西都涉及到了一些。最熟悉的应该算是 iOS 开发。

leetcode 做了 100 道左右吧,基本上涉及到了每种类型的问题。

我比较反对纯刷题,适可而止就行,大量刷题只是在具备其它能力时锦上添花,根本还是在于通过刷题提高解决问题的能力,和学习能力,数量并不重要。不过我更倾向于通过动手做自己感兴趣的项目来提高,例如 app,网站之类的,我的知识和能力大部分也是来自于做项目时解决的问题。

前不久我写过一篇文章,介绍了 GitHub 上有一位工程师为了得到 Google 的工作机会,不惜花费大量时间整理与 Google 有关的学习资料及面试题的故事。

现在我将这篇文章贴过来,希望对大家有所帮助。

GitHub 标星 8w!学完这份指南后,你就可以去 Google 面试了!

下面是正文。

如果让你选择一家互联网科技公司加入,你会选择哪一家?

具体答案因人而异,不过我相信,作为目前全球最为知名的互联网公司,Google 一定名列其上。

自诞生以来,Google 已推出多款改变世界的互联网产品,旗下也汇聚了一大批优质的工程师与科学家。与此同时,因其崇尚自由开放,不作恶的互联网理念,也受到了许多互联网优秀人才的认可,Google 也成为了他们最想去的互联网企业之一。

来自西雅图的工程师 John Washam 便是其中一员。

John Washam 是一名软件工程师,目前定居于美国西雅图。2016 时,因其在 GitHub 上发布了一个名为「Google 面试大学」的项目而名声大噪,引发技术圈内诸多人的关注。



John 在中学时代便开始接触编程,后面上大学的时候,主修的确是经济学专业。原因是他认为在他大学毕业后,计算机专业的人才将会供过于求。后面事实证明,他错了。

几年后,John 毕业,他选择了参军,军队驻扎于韩国,因此他自学了两年韩语。

从军队退伍后,他又开始重拾编程,经过一年的学习,他掌握了 Perl、HTML、CSS、JavaScript 和 SQL 等相关知识,这些知识让他成功在西雅图找到了一份编程相关的工作。

随后 15 年,John 一直在 Web 开发领域深耕,期间创立了 3 家公司,当中有 2 家还成功盈利了。在这个过程中,他还掌握了团队管理、市场营销等其它非计算机专业的基础知识,使其成为不折不扣的全栈工程师。



正常情况下,普通人能走到这一步,已经算是人生赢家了。但是,John 并不满足于此,他想完成另一个新身份转变:从 Web 工程师变为软件工程师。

许多人看到这里,估计会心里犯嘀咕,这两个岗位区别有那么大吗?但 John 认为,相较于前者,后者需要掌握数据结构、算法、编译语言、内存优化等更深层次的编程知识。

之后,John 便开始投入精力学习,并将进入 Google 工作视为其成功掌握这项技能的判定标准。

在学习的过程中,他开始接触大量与编程相关的知识与教学资源,秉着前人栽树后人乘凉的精神,John 在 GitHub 上开源了这份学习指南,并将其命名为「Google Interview University」(现已更名「Coding Interview University」)。



github.com/jwasham/codi

在 John 放出这个项目后没几天,GitHub Star 便如火箭般快速飙升,短短三四天内便突破 10000 Star,成功霸榜 GitHub Trending!

项目历史增长曲线:



这份指南里面包含 Google 相关的介绍视频、面试过程、教学资源,同时也有数据结构、算法、密码学等计算机专业的知识讲解。

同时该指南也有中文版翻译:

github.com/jwasham/codi

不过由于这份译文未跟原文保持同步更新,因此内容难免会有缺失。英文阅读能力尚可的同学,还是建议直接看 README 原文。

下面我简单挑选了几张项目截图,让大家感受一下这份资料里面都有什么干货:







可以看到,这份指南资料整理得还是非常齐全的。

尽管 John 最后没去成谷歌(去了亚马逊),但他留下的这份指南,还是让诸多后来者受益无穷,在此也对作者表示下感谢。

如果你也有一颗想进入大企工作的心,不妨提前先查阅下这份资料,看看是否对你有所帮助。

推荐阅读:

GitHub 标星 5000+!学生党学编程,有这份资料就够了!


欢迎关注公众号:GitHubDaily,每日分享 GitHub 优质开源项目、学习资源、开发技巧。

020-88888888

平台注册入口