放弃谷歌实习转投ICC,我是如何曲线上岸G家的?

我们经常可以在各大论坛或社区看到某某某靠刷题上岸谷歌的例子。在广大求职者的印象里,谷歌似乎是少有的只看刷题的大厂。

很多人对这种单纯刷题的行为嗤之以鼻,也有人为了上岸孜孜不倦地埋头刷题。老程是我知道的一位大龄转码者,靠刷题1000道上岸了谷歌。

谷歌实习or ICC全职?CPT的我选择后者

老程国内top20本科毕业,留美读了MIS硕士,毕业工作一年后决定转码,随后挂靠加州一不知名学校拿了CS硕士。

CPT期间老程仅靠刷题拿到了谷歌intern,出乎意料的是,转眼他入职了一家ICC公司做全职。ICC干了近一年,老程最终入职了Google,达成了最初的目标。

放弃谷歌实习转投ICC,我是如何曲线上岸G家的?_第1张图片

当我问到为什么放弃谷歌实习转投ICC时,老程是这样说的:

当时遇到一位朋友,说实习划不来,他刚好认识一位ICC老板,不如去做全职。还有一个原因是,我那时候是CPT,之前的OPT早就用完了。会比较担心毕业后的身份问题,ICC的话可以帮我搞定H1b。
这其实很大程度上改变了我的认知,如果那时候我去谷歌实习的话,可能到现在也不会有H1b,后面也就很难找到职谷歌全职岗位了。

2020新课《面试软技能指导 - BQ / Resume / Project》

免费试听内容:

  • 手把手带你通过题目中的关键词快速锁定答案
  • 用一道真题实例解析如何识别关键词并快速解题
  • 用一道真题全真模拟代码面试中的九个步骤
  • 一维数组和二维数组前缀和

戳我随时报名随时试听

放弃谷歌实习转投ICC,我是如何曲线上岸G家的?_第2张图片


谷歌一面靠一道简单题获得Strong Hire

谷歌的面试特点一般L5以上会有系统设计,L4会加面domain tech,L3只考算法。所以面谷歌L3的话,确实有可能只靠做题拿到offer,当然前提是简历能过关。

老程的谷歌一面,上来是一道简单题:

请找出两个BST中的Common Elements。BST中的value都是int。

看到这题,很多人会以为是面试官的warm up,随便聊一聊就好,然后等着面试官上“硬菜”。众所周知,谷歌喜欢出hard题。

然而老程没有这么做,他整轮面试就靠这一道题拿到了“Strong Hire”。

我跟面试官说:这道题看起来很简单,从时间复杂度来说它的最优解肯定是O(n),但里面会有很多种情况。既然是两个BST,我们可以分析下两个BST可能是什么样的……

这其实相当于一种自我follow up。有人可能担心这样会不会不好,其实如果面试官不想讨论,他会直接说出来或者给你暗示。

经过讨论,最后我们聚焦在一种情况:两个差不多大的BST,且在十亿以上的规模。这时候很多算法就没用了,所以这道题的关键在于空间复杂度。

解题阶段老程提出用Morris算法遍历,面试官表示这个算法有点难,自己以前想学不过最后没搞出来。

放弃谷歌实习转投ICC,我是如何曲线上岸G家的?_第3张图片

老程就向面试官讲述了自己对Morris算法的理解。面试官很有兴趣,于是一起来写这个算法。

写完代码,跑了测试,时间也到了。结束后,面试官当场表示:impressive!

谷歌面试如果面得很好的话,面试官不会吝啬对你的评价。

没做出题照样能过,3天拿谷歌offer

老程的二面并没有一面顺利,遇到的是新题,最后没有写完代码,但依旧通过了面试。

原因是在整个过程中,虽然会有卡壳的时候,但面试官每出一个线索,老程就能想到下一步。和面试官的讨论持续了20分钟左右。

最后我基本已经有了解法,只是没时间写完代码了。

很多人觉得谷歌面试难就难在新题频出,但在老程看来,真正的新题其实不多,所谓的“新题”可能只是在你看来是新的。

对于新题,关键在于面试官给到你提示或线索后,能不能move fast。如果一直是没思路的状态,那么面试结果肯定不会好。

放弃谷歌实习转投ICC,我是如何曲线上岸G家的?_第4张图片


接下来两轮面试,没有什么波折,老程都顺利做出了题,最后一轮甚至完成了3道题。在收集完所有feedback后,每天一个approve,3天就拿到了offer,而这个过程通常需要3-6周。所以面试评价高的话,结果出得也快。

老程压箱底的刷题经验

谈到自己的转码历程,老程总说自己除了刷题真的啥也不会。从决定转码以来,老程刷题将近1000道,LC前300道至少刷了3遍。

我也是踩了无数的坑,刷题量不是重点,重点是要有 抽象总结的能力。其实就是做完一道题后, 不断地follow up自己:替换题干的关键词,就变了个问题,这时候应该怎么做?

老程对于算法面试,也有自己的一些经验和心得。很多同学面试过不了算法面试,其实一般存在以下3个问题:

1.会做题,也知道最优解,但是表述不清。即没能跟面试官说清楚自己的思考过程以及如何得到最优解。那么在面试官看来,你可能是背的答案。

2.Follow up问题,能答出来,但是反应慢或者出错。有些同学在面试中遇到原题或者类似题,快速秒掉后,被面试官follow up一下就不会或者需要想很久。这种情况,面试官可能会认为你只是做过这道题,但没有理解透彻。

3.新题,做不出来。这个前面已经提过了,其实只要把做过的题抽象总结到位,从解法到题目能够做到一举反三,所谓的“新”题数量就会大幅减少。

只靠刷题就上岸谷歌吗?老程在转码这条路上走了很多弯路,但唯一不变的就是坚持刷题。

单纯刷题肯定是不够的,刷题的同时要不断抽象总结。只有真正理解一道题以及它所能延伸出的变化,并能提供对应的解法,那才算吃透了一道题。
来到湾区后,感觉机会真的很多,虽然现在没有以前那么好找工作,但机会最大的还是CS。人在努力天在看,我能做的就是刷题。

你可能感兴趣的:(放弃谷歌实习转投ICC,我是如何曲线上岸G家的?)