前言:
分享在博班毕业前夕同时准备毕业和面试的过程,贡献一个data point供大家参考。如果
有问题,欢迎来信询问,如果能回答的小弟会尽量回答。在疫情期间获得这个面试机会纯
属意外,当下也不确定自己何时可以毕业,所以搞到最后整个找工作期间只面试了一家,
也非常幸运通过面试,并赶在上工前夕毕业。趁毕业和上工这段空挡,把这个过程记录下
来,希望能帮助大家。
背景:
PhD in ECE @ 美国中西部某大学
Undergraduate in Engineering @ NTU
来美国念博班之前没修过算法,但大学修过资料结构,没有实际开发Project经验。演
算法苦手。
博班期间 Google Intern * 1 (No return offer)
刷题准备:
第一次Intern前: 断断续续大概200题,刷的很松散,确定拿到面试之后才密集刷了快100
题。
确定拿到Google正职面试 - 面试当天共三个月密集刷: 大概 300题。
Summary:
LeetCode 共刷512题 162 Easy, 287 Medium, 63 Hard.
学习资源:
这边我就不赘述,现在网络上资源太多了,也有很多大神分享过。每个人学习方式不同,
仅列出我常使用的,供大家参考。我觉得最有效的方式是多看不同种解法,想办法让自己
看懂。但这就因人而异了,有些人光看文字就可以知道为什么要这么解,有些人要看影片
从头到尾一步一步讲解才有办法完全理解解法的逻辑。小弟就是属于后者,所以刚开始刷
题时十分之崩溃,光一题recursion或是dp就可以耗上一整天但仍然看不懂。就算看懂了
,数日之后又遇到相似的题目却又解不出来,常常忙了一整天却一无所获的感觉。同时又
有研究上的压力,真的是刷到怀疑人生,觉得自己的脑袋是不是哪里出了问题。
算法相关:LeetCode、MIT Algorithm 线上影片、对岸Github刷题教学 (ex:
https://labuladong.gitbook.io/algo/)、Back To Back SWE
面试过程相关:一亩三分地、 Ex-Googler YTer(Clément Mihailescu)
面试过程:
五轮面试 一天面完
每轮 45分钟,back to back
早上两轮 下午三轮
前四轮coding 最后一轮Behavioral
面试过程不详细赘述,寒喧之后不囉唆直接开始面,前三轮原始题目和follow-up都有解
出来,第四轮小炸,但还是有把题目解完,所有题目难度落在Medium~Hard之间。
Behavioral 遇到的面试官感觉很菜,照着他手上的题库一题一题问,没有来回对话过程
。
Timeline:
2020 10月recruiter 联系
2021 1月面试
2021 2月过Hiring Committee开始Team Match
2021 2月- 6月 Team Match
共配对到3组
2021 3月
1. Youtube Engineering Productivity Team (失败,要求即刻上工,时间无法配合,继
续 Match)
2. Google Search Ads Experiments and Analytics(失败,原因同上)
2021 4月 - 6月
人资决定暂停Match,先把我抽离Candidate Pool 一个多月后再继续。中间完全无声卡,
直到我寄信问,人资才想起来,并把我放回Pool。期间又发生原本负责我的人资跳槽,换
人资。
2021 6月
3. Google Search Knowledge Engineering Team (成功)
签约 9月上工
因为没有Competing offer,所以没有任何谈薪空间,这点G踩得很死。
结语:
一直知道G家以慢闻名,之前实习面试的时候也有体会过。不过就算有心理准备,过程仍
是十分煎熬,太多不确定性可以让自己胡思乱想搞得整天心神不宁,再加上在博班最后阶
段,随便一个信箱通知都可以搞得我心惊胆颤。感谢天,还好最后结果是好的。在这边就
不分享自己刷题方式,板上已经有太多神人分享,我就不献丑了。这边主要讲的是刷题时
的心态,个人认为刷题是时间的累积,有些一开始看不懂的解法,如果当下有花时间去努
力搞懂他,时间久了,大脑会神奇的理解这些东西。个人反而认为很多时候要克服自己的
情绪,要努力抑制觉得“自己很笨很废”的这个想法,才有办法静下心来好好的把这些知
识烙印到脑子里并融会贯通。整个准备过程太多眉眉角角,很难在一篇文中把所有东西写
出来,如果有任何问题,欢迎来信询问,我会尽量回答。最后,祝大家找工作顺利!