21-22(后)秋招理工科PhD硬转码总结

avatar 108657
Alecia
8281
36
个人背景:物理phd,研究方向computational neuroscience (biophysical). 研究方向和software没有任何关系,hence 刷题硬转码。

求职总结如下:
  • 毫无回音:投了后超过一个月石沉大海的包括巨硬,paypal,tiktok,etc
  • 简历拒:买它,uber,Flexport, Jane street, 空气桌,Bloomburg,etc
  • OA拒:无
  • 做了OA但是没有回音的:高盛(它家Hirevue之后两个月了时不时发邮件告诉我还在鱼塘里……),ebay(申sde结果转到applied scientist),Cisco,etc
  • VO且拿到offer:snap,亚麻


刷题部分:
个人准备时间线:
  • 20年底正式打开LC。用python开始刷题。在那之前博士期间research用的Matlab,python c++都是接触过一些但没怎么用过。算法、数据结构之类的完全没接触过。
  • 21年刷到2月左右,因毕业科研压力停止。此时大约200题左右。
  • 21年10月底,完成毕业要求后开始复健刷题。
  • 完成最后一场VO时(22年一月),LC题数为450左右。


个人刷题经验(按刷题数量):
  1. 0-100:在完全没有基础的情况下,我购买了LC会员,一边看labuladong的算法书一知半解的体会,一边开始用leetcode.com里面的学习卡分类刷。我个人觉得这个形式是很好的,每个分类会有一定的讲解配题。顺序我个人大概是按:arrays101--> binary tree --> linked list --> recursion 1/2 --> binary search. 这个阶段大概能觉得对于刷题有一点感觉了(像学语言时候的预感)
  2. 100-200 继续在explore里刷。刷完了queue&stack, hashtable等主流知识点。此时的感觉是做medium开始觉得自己有时候能独立做出来了
  3. 200-300 这部分有一些是自己做medium高频,有一部分是后期复健。复健时我因为有大半年没刷题,已经手生,因此选择了leetcode.com 。里面分三档,我自己刷了前两档。它会每天解禁2-3题,每天一个topic的安排。当然为了快速复健此时我也有按tag刷。
  4. 300-400 同上,继续刷medium高频。同时因为在准备VO,所以也按公司tag(我是没碰到我刷的公司的原题lol)和我觉得自己薄弱的tag刷。此时慢慢感觉手感回来了。对于数据结构,算法,时间复杂度的认知也比之前更清晰。可以比较自在的mock面试,一边讲解一边写。对于没见过的medium题也更有自信能做出来了。开始涉及hard。
  5. 400- 刷公司tag,刷周赛,刷专题,etc。对于hard题也从一开始的畏难到有时候能独立做出来。
总结
  1. LC会员还是值得买的。
  2. 如果没有基础的话,从LC的专题开始刷是很好的起点。
  3. 不必过度畏难,我当时开始的时候也真的什么都不会,2sum都一脸懵,坚持吧。
  4. 复健也推荐14 Days Study Plan to Crack Algo。缺点是它就很按部就班,一天只放两题,不太能自己调控。好处就是你可以按照它列的tag自己找题做。
  5. 善用各种专题,想做高频题可以frequency排序。
  6. 想不通的时候可以看答案,看评论,看discussion,以及(重点)去中文站看帖子的讲解。只要能帮助我理解的,就是好的解说,试着从不同角度看或许就会恍然大悟。中文站是直接原网址加-cn 。

申请工作+面试总结:
投哪家?关于这个问题我觉得我不是很有经验,因为我当时准备的极其仓促。可以分享的一些心得也仅限于对应届毕业生有用。
  1. 有应届毕业生岗位的就投这些,这样起码你知道:1,同一个pool里的candidates也大多没经验;2. 这些JD里面不会要求工作经验,因此不会有像社招一样可能会被YOE卡掉。关于如何查找哪些公司提供此类岗位,我找到两个有这种信息的 github.com github.com 当然秋招季之后大多岗位信息没有更新或者已经关闭,因此这个办法对我没什么大用处,但是春招、秋招季应该会很有用吧。
  2. 看看地里求职经验贴,可以总结一下别人投了什么,把名字记下来。
  3. 最好用一个excel表格记录公司名,链接,时间线,etc,这样后面复盘不会忘记。
OA
我个人没有很看面经,都是硬做的。主要还是弄清题意别做错了,然后熟悉一下不同平台。比如hackerrank有些package是要自己import的,可以提前自己建个账号写几题熟悉一下。
面试
待更

先更到这里,如果有人有什么想问的可以留言。接下来的更新计划有申请工作的总结和心得,面试体会以及一些心态调整的过程。

上岸有很多感慨,我其实在地里潜水也学到了很多。先祝愿还在求职的各位早日上岸,工作的各位早日升职加薪,跳槽的各位早日拿更大包!

补充内容 (2022-02-09 07:53 +8:00):
第一次发帖没想到不能原贴编辑了LOL(主要是补充的话编辑功能很简陋的样子)。我在这里更新一下面试相关。因为我其实完整的面试只有snap和亚麻两家,所以我的经验单纯的based on我在这两家面试的经验。
Snap我投的是ng general SDE, 亚麻投的是一个组走的社招。
Snap:一轮电面加五轮VO(其中一轮说是不计分单纯问问题)。
亚麻:OA+电面+四轮VO
我回头来总结的话,整个流程要注意keep the convo flow。要注意和面试官share你的想法,包括但不限于,你怎么理解题意的,确认Input/output/boundary,如果是个hard题你觉得这个题应该break down成几步来做,你觉得这个应该用什么解决,你为什么觉得这个问题应该用这个方法解决,如果有几个option的话优劣是什么。哪怕你对这个想法能否走到最后并无把握。有了交流的过程才好往下写。
Snap的话是用hackerrank,所以是要现场跑通的,所以对bug-free要求更高。至于亚麻是白板,因此更考验你的解释。建议锻炼白板写码(边写边解释)以及run一些example的能力。
另外分享一个我看过的建议,虽然后面我并没有很有意识地用它,但是前期紧张的时候想想这些步骤挺有用的。缩写是REACTO:
REPEAT
EXAMPLES
APPROACHES
CODE
TEST
OPTIMIZATION AND COMPLEXITY (BIG-O)
就是整个面试的流程了。(fullstackacademy.com 可以看个解释)

然后关于定级:snap L3,亚麻L5。

补充内容 (2022-02-09 15:13 +8:00):
关于BQ:
这一部分我分享下我的做法,大家看了酌情参考,毕竟我也不确定这么做是不是对的。
我的resume包含了research内容,并且BQ时基本上都是用research里的事来回答的。(Again, 我的research和SDE没有关系……)
之所以选择这么做是因为我认为面试官更想要看的是分析问题,解决问题的能力,dive deep嘛,技术在其次,这个当然是针对像我这样本来背景就弱的毕业生来讲。我拿一个可能沾边的course project,follow up大概也是不能讲很细的,毕竟没有钻很深。但是在我念phd期间很多事可以答,比如tight deadline,difficult situation,options trade off,等等。
当然我认为这样做你需要时刻牢记的是,专业术语的background要稍微讲一点,但是要记住目的是为了让面试官理解你的选择而不是讲课讲清楚你的research。要往“我想在这个故事里展现的个人品质”上靠。

然后着重讲一下亚麻,熟读军规不用说了,要多准备点故事。这个多是说你可能总共会被问15-20个故事。脑子里把具体的事情重温一遍,然后看一下亚麻BQ常考题,至少要知道每题你想用什么例子,避免想半天想不出的尴尬情况。对于没有什么故事可讲这一点我个人的做法是我想到的一个比较长的事情拆分成几步,然后拿其中一步比较具体的去回答一个问题而不是讲一个比较大比较长的故事,一来有点“浪费”,二来可能解释事情花的时间会长过总结展示自己的选择和做法的时间。
  • 92
36条回复