[其他] 希望去谷歌工作,应该怎样规划?

[复制链接]
Sprite 发表于 2023-10-20 20:58:47|来自:湖北 | 显示全部楼层 |阅读模式
现在大三学的信息与计算科学,准备考计算机研究生,非常希望去谷歌工作,但是基础不是特别好(由于学的都是数学,计算机方面基础薄弱),想知道要去谷歌工作要哪些要求,大概要怎么规划,只求建议
全部回复5 显示全部楼层
WAITWIND 发表于 2023-10-20 20:59:17|来自:湖北 | 显示全部楼层
说白了就是怎么应对Google面试呗~

首要的肯定还是摸清楚流程,搞明白Google面试最看重什么




和楼主一样,谷歌也一直是我的dream company,为了进入谷歌我做了很多努力,贴一下我的面试时间线以及总结的学习经验

6月25日 投简历  →7月18日  第一轮Online Assessment→7月19日 第二轮Online Assessment →7月26日 Virtual Onsite→8月11日 HC review→加面 or Team Match → Offer Review




1、Online Assessment
谷歌的OA 题目每年都比较固定,多去看点面经基本没啥问题。

2、Virtual Onsite
一般会考coding+系统设计,大部分人都被卡在这一关,因为coding难度最大,考原题几率不高,通常会出变形题或新题。这里我疯狂安利给大家资深算法工程师令狐冲的“算法小抄”,这是他根据多年比赛和工作经验总结出来的常考算法类型、代码模板、最优解题套路,提前背熟,面试套用能直接秒题!HR当时看到我的代码也是眼前一亮,还夸我思路很流畅~




3、HC review→加面or Team Match
Onsite结束到HC出结果加面一般是2-3周,匹配合适的Team双向选择,这个时候沟通一定要自信!

总体面试下来感觉Google最看重的还是做题的思路,面试官也更看重根据题目的条件不断进行优化的那个过程,和楼主一样算法底子弱的话我觉得可以去听一下《面试官揭秘算法面试速成技巧 - 怎样做到 Bug Free》的线上免费讲座,由令狐老师主讲,分析了大厂筛人的细节以及算法面试速成技巧,给出了明确的知识体系,省去了自己规划学习路径这一步。




配合视频资源锻炼coding思维的话,我觉得唯一的捷径就是脚踏实地,多动手去刷题,多刷题。从最简单的《新手必刷编程50题》刷起,如果不会写,就在抄的时候debug一遍,等刷完以后再开始针对性的刷Google的真题,总之,多做准备多刷题,甩几道高频题,从现在就开始吧~

最后放上我的题单:

二叉搜索树中最接近的值
把二叉搜索树转化成更大的树
二叉搜索树的最近公共祖先
最少费用的爬台阶方法
不同的路径
爬楼梯
最高频的K个单词
排序矩阵中的从小到大第k个数
合并k个排序链表

有部分题集是需要VIP的,我这边找到了:
LintCode 炼码 7天尽情刷兑换页面直接白赚¥99!
ztl1981 发表于 2023-10-20 21:00:00|来自:湖北 | 显示全部楼层
说实话,如果你想去国内的Google,难如登天,国内Google号称为10轮面试,学历也会卡,难度太大了。
最好的方式就是:留学美国去Google
先把GRE,托福考了,申请美国大学,申请哪个看这个:
计算机科学与技术专业出国留学的话有什么院校推荐啊?如果拿到了offer,那么最好的安排:
1,北美8月入学之前,从5月开始,5~8月刷题,把题刷明白,因为9月就已经招聘开始找实习了
2,八月入学肯定需要适应一个月,9月各大学校的Career Fair开始,所有大厂全部投一遍,准备面试,200家公司是底线
3,9~12月,疯狂面试,争取找到Summer Intern
4,如果找不到,那么第二年1~3月春招继续找,但春招坑少了太多,尽量秋招搞定
5,学校课程,没必要那么认真学了,能毕业就行了,毕业了没人问你GPA多少,都会问你去哪工作了,所以分清孰轻孰重。能选水课选水课,能抱大腿抱大腿,学校课程帮你找不到工作,刷题可以
6,Project如果学校的有含金量就好好做,但大多数比较水,尽量自己找项目做。不要参加什么LeetCode Contest,或者任何算法比赛,自己水平能不能面试多看几道面经题自己想不想的出来,自己门清
7,第二年5~8月实习,没找到,感觉自己学不明白的,该报班报班,没啥可耻的,学了两个学期如果还学不明白,花钱学也要搞明白,因为没有退路,死要面子最后还没学明白的话,到9月找全职再失败就回国了,赌不起
8,九月,New Grad找全职开始,这个是你最后的机会了,大多数人都是12月或者5月毕业,无论哪个时间毕业,这个秋招都是你最后的机会,找不到就可能要回国了,所以还是所有公司投起来,这个时候,你Project 和 刷题 必须没有任何短板了,找到好的工作,上岸,才是最终目的
最后,找到了就上岸,找不到,就需要想怎么解决身份的问题,留在美国继续找,那就是另一个问题了。
e中人 发表于 2023-10-20 21:00:06|来自:湖北 | 显示全部楼层
我目前在微软担任主力面试官,也是目前我们部门的算法面试出题人,同时也向技术社区输出了不少改编题,也通过组织求职群帮在过去的五年中帮助了三千多位同学成功进入FLAG等顶尖科技公司。
关于我们的求职群,大家可以加管理员Andy的微信进群:MSBZ1019


下面是我这位学员第一视角的自述:
我是在美国Top30的大学读的本科,伯克利硕,计算机专业,之前也在群里分享过一篇面经,可能大家对我有印象。(右一是我)


我喜欢打MOBA游戏而且自己性格相对比较内向重度社恐,所以后来为了逃避工作,选择继续读研,申了自己学校的CS专业,也成功拿了offer。在研二的时候报了微软Justin老师的算法课,和职业咨询四节课,拿了Google的offer至于为什么选择了算法班和职业咨询而没有选择保offer,一方面的话是本校算是machine learning的强校,在进入项目之前,先是找Justin老师报名了四节课,给我审查并修改了简历。Justin老师认为简历上面的项目够用,所以保offer里面的项目补充对我来说就有点多余,另外就是,自己算法不算特别薄弱,当然我和算法大神比不了,我当时刷了五百多道,属于medium有概率做出来一半,老师给我的意见是,在算法班里会给我针对性的设计八讲的个性化学习课,再加上六讲基础知识的巩固课之后就应该就可以搞定.
算法班和保offer里的算法训练不同之处在于,保offer的算法班是有三轮的重复训练,老师认为我一轮就可以了,所以最后敲定的是职业咨询四节课+算法班的组合,当然如果简历上的项目不多需要补,且算法投入时间少的的同学还是走保offer吧,毕竟更瓷实。
搞AI的老贾:北美求职Timeline以及保offer项目介绍搞AI的老贾:关于职业规划四节课搞AI的老贾:关于算法突击班与算法面试的常见问题
报课先是在知乎上看到了微软大神Justin 的一些帖子

刷完 LeetCode 是什么水平?能拿到什么水平的 offer?
加了微信群也有非常多的干货,也欢迎大家加入我们的群聊,里面的互动很精彩,加管理员Andy的微信进群:MSBZ1019




话说回我的求职过程,其实我的成绩一直不拔尖,就只是中上等的水平,自己也没有什么职业规划,上研二前也从来没想过进大厂工作。我平时就比较喜欢打游戏,同校有一个学长跟我特别投缘,经常一起开黑,我以为他成绩挺差的,结果毕业以后去了谷歌,当时我就震惊了。某次打完游戏跟他聊天,他就开始给我安利,跟我说大厂如何如何好,又是大包裹又是美食又是高颜值的同事,让我一定要有自己的职业规划,尽早开始准备。我一边感叹大厂的好一边夸他深藏不露,结果他跟我说之前也没想过自己能进大厂,后来跟了Justin导师的保offer课上算法课、做项目才成功拿了offer。
首先心态方面我认为,我认为千万不要过分神化谷歌!大公司的招聘难度未见得就很高!想要在谷歌工作,只有一个硬性指标:通过谷歌的4-6轮面试并匹配团队,才能得到offer。这与性别、年龄和学历无关。谷歌的面试流程:一般有4-6轮面试,根据考试类型可以简单分为算法、设计和行为问题(BQ)
编码轮(50%-80%):简单来说,就是考算法问题。除了要解决面试官出的问题,还需要应对面试官的追问。如果能顺利完成问题并与面试官进行流畅的沟通,这一轮基本就稳了。
设计轮(20%-30%):根据类型可以简单分为系统设计和面向对象设计。面向对象设计(OOD)主要面向应届生和1-3年的程序员,而系统设计则主要面向有3年以上工作经验的资深工程师。
行为问题轮(10%-30%):也就是职场软技能面试问题,主要考察你的沟通、协作、解决问题等能力,而不是技术相关知识。接下来,我们将具体介绍谷歌的面试形式以及如何做好准备。算法轮:重点是动态规划(DP),可以复习近1个月的面试题目。
谷歌公司的算法考察范围很广,尤其是喜欢考察动态规划(DP)、红黑树(Red-black Tree)和线段树(Segment Tree)等。在谷歌的算法面试中,通常会有两轮以上的算法轮,甚至有四轮全是算法轮的情况。因此,我以一个通过面试的过来人的身份可以传授给大家一个秘密:如果想要通过谷歌的算法面试,刷近一个月的面经题就够了。虽然谷歌的算法题难度非常之高,但这并不是因为题目本身难度就大,而是因为谷歌公司爱出新题。所以这个时候我上过的Justin老师的算法班就起到了非常关键的作用,在里面讲解了很多改编题:
老贾:关于算法突击班与算法面试的常见问题
所以,很多人都认为看谷歌面经没有用,但我也不介意分享我自己的面经,大家可以左转自取,上面有原题和代码实现:
性格内向,不善交际,当程序员有问题吗?但实际上,每个公司都有标准化的题库,谷歌也不例外。只不过,谷歌公司ban掉题目的速度更快一些。由于ban掉的题目越多,谷歌公司的题库就越小。所以,与Facebook等公司不同,谷歌公司的题目数量相对较少,每个时间段可能也就只有几十到一百道题目。换句话说,只要在面试前刷一遍谷歌最近的面经题目,大多数情况下都可以遇到原题。最近,我也整理了一些新的题目,包括:最长回文子串、字符串解码、员工的重要度、最长字符串链、小行星的碰撞、等差切片 II - 子序列、最短的唯一单词缩写、统计全为 1 的正方形子矩阵、满足要求的子串个数、基础计算器、会议室和合并区间等。需要的话,大家可以到算法班自取。
除了算法之外,还需要重点准备系统设计。系统设计通常有两种形式:一种是设计某个系统,另一种是设计某个系统中的某个功能。由于设计整个系统需要考虑的方面比较广泛,目前公司更倾向于考察设计某个系统中的某个功能。

例如:


  • 设计微博,可以考虑设计微博的发布、转发、评论等功能。
  • 设计人人,可以考虑设计人人的用户管理、好友关系、分享等功能。
  • 设计滴滴,可以考虑设计滴滴的订单管理、车辆调度、支付等功能。
  • 设计微信,可以考虑设计微信的聊天、朋友圈、支付等功能。
  • 设计点评平台 Design Yelp
  • 设计短链接系统 Design Tiny URL
  • 设计 NoSQL 数据库 Design NoSQL
  • 设计一个功能,实现对用户访问频率的限制
  • 设计一个功能,实现统计某个具体事件的历史发生次数
  • 设计删除一条推文的功能
  • 设计邮件系统中将所有邮件标记为已读的功能

补充:
• 如果你要设计 Google 的网络索引数据库,你会怎么设计?
• 如果你要设计 Google Docs,你会怎么设计?
• 如果你要设计 Google Home(语音助手),你会怎么设计?
• 如果你要设计亚马逊的图书预览,你会怎么设计?
• 如果你要设计一个社交网络,你会怎么设计?
• 如果你要设计一个任务调度系统,你会怎么设计?
• 如果你要设计一个售票平台,你会怎么设计?
• 如果你要设计一个计算 YouTube 视频点击次数的系统,你会怎么设计?
• 如果你要设计一个可以显示 1000 万以上用户状态的网页,包括姓名、照片、徽章和积分,你会怎么设计?
• 假设每个作业需要不同数量的 CPU 和 RAM,而每台机器具有不同数量的 CPU 和 RAM,你将如何设计一个在机器机架上调度作业的函数?可以在同一台机器上调度多个作业,只要它可以支持。

系统设计:
1. 场景:需要设计哪些功能,设计得多厉害。
2. 服务:将大系统拆分为小服务。
3. 存储:数据如何存储与访问。
4. 升级:解决缺陷,处理可能遇到的问题。

包括还有一些具体一些的问题:

  • 系统设计中常说的Tradeoff是什么?
  • 什么是面向服务的架构(SOA)?
  • 什么是Pull Model和Push Model?
  • 数据存储系统有哪些?
  • 哪种数据适合存储在不同的数据存储系统中?
  • 什么是异步任务和消息队列?
  • 什么是数据的可持久化?
  • 什么是去标准化?
  • 什么是惊群效应?
  • 与News Feed类似的系统设计问题有哪些?

<hr/>
BQ(行为面试,一般出一些开放性问题)轮面试题目是在技术面试之外,考察求职者的软技能。面试官会花费20-40分钟的时间考察求职者的沟通能力、问题处理和解决能力以及与公司文化的契合程度。
谷歌提出的面试问题包括:
为什么你认为自己适合谷歌?
请分享你最近参与的一个有趣的项目。
请描述你必须解决团队冲突的经历。
你最喜欢的谷歌产品是什么?
BQ问题通常没有标准答案,相关资料也不是很多,所以最好还是听有行业经验的人来解读和引导。

好了,以上我就是我拿到Google offer的全部新路历程和感悟,感谢无所不能的Justin老师带我飞 @老贾
<hr/>我目前在微软担任主力面试官,也是目前我们部门的算法面试出题人,同时也向技术社区输出了不少改编题,也通过组织求职群帮在过去的五年中帮助了三千多位同学成功进入FLAG等顶尖科技公司。


























关于我们的干货分享群:大家可以加助教Andy的微信进群:MSBZ1019,也可以加我的个人微信:MSFT_Justin






在我们群里吸收干货的同学,即便是在Hiring Freeze的去年和大裁员的今年,也有不少上岸了大厂。我们的求职群帮在过去的五年中帮助了三千多位同学成功进入FLAG等顶尖科技公司。更多内容可以访问我们大牛学院的网站:

大牛学院
Microsoft AI Education

https://www.microsoft.com/en-us/research/project/ai-education-hub/​www.microsoft.com/en-us/research/project/ai-education-hub/
关于我们的课程和项目指导:
关于职业规划四节课 - 老贾的文章 - 知乎

老贾:关于职业规划四节课
关于算法突击班与算法面试的常见问题 - 老贾的文章 - 知乎

老贾:关于算法突击班与算法面试的常见问题
北美求职Timeline以及保offer项目介绍 - 老贾的文章 - 知乎

老贾:北美求职Timeline以及保offer项目介绍













yilaipan 发表于 2023-10-20 21:00:55|来自:湖北 | 显示全部楼层
如果你梦想进入Google,那么以下建议或许可以帮到你:
1.定个具体目标你需要缩小你的目标范围,把目标落实到具体的工作岗位,也就是说,你需要通过对Google的深入了解,知道自己想从事具体哪个方面的工作。比如,你需要在一开始就给自己定个小目标——“我想从事Google Android网络方面工作”,而不是很笼统的“我想进入Google”。
2.确定所需技能 如果你想从事分布式基础架构的工作,你可能需要掌握C/C++和分布沟通式系统。 如果你想从事移动视频会议软件开发,你可能需要掌握Android,Java和WebRTC。 如果Google有这些方面的开源代码,你可以试着去读代码,那样能更好的去了解这些。
3.选择 Google 招聘率高的大学如果你还没有进入大学,你需要在申请的时候做足功课,选择那些Google招聘率高的大学,攻读CS或者相关专业。通常,通过校招更容易获得实习机会或者全职工作机会。当然,如果你已经即将毕业,或已经毕业,你也不用纠结于名校情结。好好准备下面的内容,放心大胆地区面试。
4.不断积累代码量你不需要去读形形色色的书或者上各种各样的视频课程,你真正需要做的,是不断地编码以积累代码量。你需要把编码当成一种乐趣。你可以做一些 Android app,big data 数据分析、机器学习项目等等,把花费的每一分钟都当成是在实现快乐和提升经验。学习了解你所使用的语言的标准库和扩展库/包,并且更深入的了解这门语言,使得你能写出更好的代码。
5.了解算法基础对于刚毕业的人来说,算法的面试常常占据超过60%的比例。一般来说,建议通过分门别类地刷题,来学习和巩固算法基础。通过刷 lintcode,你可以在实战做题中,学习数据结构和算法,比如排序、哈希、队列、数据是如何组织的等等。如果你不知道从哪里开始刷题,推荐做这个练习:北美大公司面试精选题库

6.演练面试过程最简单的方法,是去参加与Google面试流程相似的公司的面试。另外,你也可以在Google输入关键词“Google 面经” 搜索Google的面试题,试着自己解决这些问题。在解决问题的时候,你需要习惯自言自语,将自己的想法表达出来。你可以列一张问题表格,然后找一个朋友模拟面试,你需要在白板或者文本编辑器上解决问题,同时需要阐述你在做什么以及为什么要这么做。更多专业的 Google面试指导,可以在这里查看:硅谷IT企业工程师面试指导

7.参加公司实习如果可以的话,可以参加一下Google或者其他IT巨头的实习。实习是你学习如何将知识运用到工作中的地方。好的实习,也可能成为进入Google等一流公司的敲门砖。此外,如果你实习表现很好,那么就很有可能获得转正的机会。
当然,你也不要在Google这一棵树上吊死,在申请Google职位的同时,也需要申请其他公司,那样可以获得更多的工作机会,获得更好的offer。

欢迎关注我的微信公众号:九章算法(ninechapter ),带你了解IT前沿技术,帮你通过面试,拿到offer,找到好工作!
kallen 发表于 2023-10-20 21:01:40|来自:湖北 | 显示全部楼层
首先说一下,我也希望去谷歌工作,但是目前看希望不大。
本人还有一年即将研究生毕业,就我了解的情况,去谷歌工作,如果是开发方向的话。还是从大二、大三就开始准备吧:
1. 学习一门Google常用的语言,如C++, Python, Java等,如果时间和精力充足建议学习C/C++。关键是早学习过程中培养良好的习惯——如常作笔记,养成较好的代码风格等;
2. 参加一些开源项目,可以从找bug开始(http://linuxtoy.org/archives/from-bug-reporter-google-summer-code.html);如果有精力,有想法,可以做自己的开源项目;在这个过程中,你可以熟悉开源社区的交流方式以及git等版本管理工具;
3. 找一个比较不错的实习,我的建议是去大公司:一个是体验大公司的工作流程,学习比较规范的工程方法,另外也可以给自己的简历添加色彩;
4. 几乎听所有人都说过,Google比较注重算法和数据机构,这个不是说不注重工程实践能力,而是算法和数据结构对Google来说,就是编程人员的基础能力要求。可惜很多人都死在这一关;
5. 有一个你比较熟悉的知识领域,可以是某门语言,或者某项技术等;这个主要是帮助说明你的学习成长路线;
以上几点,从大二开始的话,天赋不高的人估计要到研究生毕业才能做得好——前提是你没有半途而废。
另外,就跟所有的招聘要求一样,我个人觉得,其中只要有一项,你认为自己是特别出色的,那么进入Google就是有可能的了。
可惜以上几项我都不太行,而我找工作的时间却越来越近了。
update:
今天收到HR的反馈,HC在review了前几轮的反馈以后,最后还是觉得coding不够硬,给拒了。
回顾一下自己一年前写下的答案,觉得自己执行力还是不够:1做的不够,2基本没有建树,3勉勉强强,4在收到Google的面试通知以后突击了一个月刚刚到应届生的平均水平,5我一直没有做到。
这次走了四轮onsite,算是更加了解Google的选人标准了:
1. 较好的,或者是优秀的成绩——Google最后是要寄成绩单的;
2. 过硬的算法功底——逻辑清晰,知识全面,bug free;
3. 优秀的沟通能力,以及优秀的英语口语沟通能力——如果选择北美职位的话;
4. 优秀的RP;
随便补充几句,算是纪念我这次参加Google校招吧;

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则