2019 Fall学习找工总结

这几天RSS feed上几乎被各种年终总结刷屏了,不过我没有写年终总结的习惯,就写写这半年在美国学习和找工的总结吧。

学习

我们专业的课程安排是每个人都是有相同的四门必修课(Data Structure & Algorithm, SoC Design, Object Oriented Design, Computer Architecture),在此基础上可以自由选择选修课,整个项目一共是30学分,也就是10门课。

国际学生在第一学期能且仅能选三门课,其中有两门(Data Structure & Algorithm, SoC Design)是被学校安排的。开学前我们曾经去问过SoC Design这门课能不能drop掉,等之后再选,被告知不行。最终我选的三门课是Data Structure & Algorithm, SoC Design, 和Database。

Roger Chen的Data Structure & Algorithm被往届学生评价为“值回票价的课程”。这门课确实很有用,尤其是对于我这样本科的数据结构基础打得并不扎实的学生来说,这门课覆盖了很多面试中高频但是之前没有深入了解过的内容,比如堆,树,等等。

不过这门课的load也确实大。这门课程一共六个作业,内容分别是链表merge sort,堆优化的prim和dijkstra,DFS/BFS,AVL,红黑树。前四个作业如果顺利的话平均能在3-5小时内搞定,最后两个作业基本上没有十几甚至20+小时是搞不定的。

另外期中和期末的考试也很硬核,期末考试的时候有两个题目分别是AVL和红黑树的操作(插入,删除等等)。我在复习的时候以为考试的时候一棵树最多也就10个节点,然而我看到题目就傻逼了,这两道题给出的树有30+个节点,要求做将近10个操作,我做题的时候光画树就画了好久。考完试之后一度感觉要挂了(核心课得C就要重修并且不能申请CPT),不过最后分数还不错,应该是curve了。但说实话,和学会30+个节点的红黑树操作相比,我宁可用这些时间多刷几道Leetcode(

另一门课必修课是Intro to SoC Design,这门课真的是一言难尽,作为一个纯软件背景的学生,每天上课都像是在听天书。好在有大佬carry加上考试不难,最后成绩还不错。

选修课我选的是Database Management System,当时是觉得已经被学校选了两门硬课了,需要选一个水课中和一下,不然担心第一学期会翻车。这门课虽然确实算是水课,但是收获很大。内容包括各种花式SQL查询,数据库设计,安全,Function,Stored Procedures等等。我之前用Laravel和Django都开发过不少项目,其中数据库的部分几乎都是使用ORM来获取数据,然后用一堆嵌套的for循环来处理数据,有时候就直接用一个text类型的字段来存JSON。上完这门课我才明白我之前使用数据库的方式有多么野蛮。

找工

相比之下找工的情况就要惨的多。目前的进展是海投及内推 100+家公司,其中7OA(白嫖不算在内),4面试,0offer。拿到面试的有下面几家:

Riot Games System Engineer – HR电面挂

最初了解到这家公司是在和朋友聊天,聊到有人投了他家正在做OA,于是回去在Handshake上海投了一下,同时投了SDE和System Engineer。我在投的当天才知道LOL是他家的。

很快来了OA,题目是四道种花题,难度不算太大,但是需要自己处理stdin的输入非常烦人。拳头是知名白嫖OA公司,但是抱着试一试的心态还是做了,testcase全过。

OA交上两周之后收到了HR的邮件,约了一个45分钟的phone screen(职位是System Engineer)。说实话我挺意外的,因为他家OA虽然发了很多,但是有Next Step的寥寥无几。

期间看了地里一些帖子,大家普遍反映拳头比较注重culture fit,也就是说不玩游戏的人可能不太容易被录取。我找到他家的tech blog,读了一些文章之后发现他家使用的运维技术(Jenkins,Docker这些)和我的简历正好匹配上了,我感觉这应该是我能收到面试的原因。

整个电面比较程式化,主要是问玩不玩LOL,介绍上一段实习,和一些比较常规的BQ问题。

整个过程大约持续45分钟左右,结束的时候HR说会在下周一通知我结果,然后周一中午收到拒信。

接下来的一周地里陆续出现了几个和我一样挂在HR电面,并且想不到挂点的帖子。被拒其实并不意外,毕竟他家招人少,bar也很高。复盘整个电面的过程之后我能够想到的挂点只有两个:一是因为我不玩LOL和其他网游,所以culture fit上可能确实有些问题;另一点是HR问到了我上一个实习的公司的情况的时候我卡了壳。

这次面试得到的一个教训是千万不要照稿念,哪怕是电话面试。暂且不讨论对方能不能听出在念稿的问题,回答问题时照稿念容易对稿子形成依赖,同时脑子就停止思考了。如果这是对方问了一个没有准备过的或者意料之外的问题,很容易就卡住了。亚麻VO的时候我有考虑过要不要在墙上贴cheetsheet,考虑了一下觉得还是算了。

Amazon SDE – VO挂

亚麻一直以来都是广大CS的玩家的救命稻草。之前地里一个帖子提到说”亚麻的面试可能是你最接近offer的一次面试,值得全力以赴去准备“。确实是这样的,对于很多像我一样学校和简历都不出彩的学生来说,亚麻甚至可能是整个招聘季中唯一能拿到面试的公司。

亚麻的整个招聘流程体验真的很糟糕。我在9月底让人内推了SDE Intern岗位,然后填了amazon.jobs上的申请。按理说我的申请应该在一周左右被同步到amazonuniversity.jobs的校招系统上,然后收到要求去校招Portal补全信息的邮件。

我等了两周之后依然没有动静,于是我试图在校招Portal上重置密码,第一次根本收不到重置密码的邮件,一周后再试重置成功了,但是里面的申请是空的。地里时不时就会出现询问类似内容的帖子,可见亚麻这个简历系统确实困扰了不少人。

眼看着几乎同一时间内推的朋友已经做完OA等面试了,我开始试着给university hiring的邮箱发邮件,然后在LinkedIn上加了近10个Amazon的recruiter问,但是无一回复。直到10月底,整整一个月之后,我终于收到了校招Portal的补全信息邮件。

补完信息之后很快收到了OA。因为当时只刷了120题出头,感觉面试很虚。所以每天一边疯狂刷题,一边把每个OA都拖到ddl的前一天才做。OA中我遇到的题目都是常规题目,几乎没什么难度,但是这个OA系统实在是太难用了,调试起来很费劲。OA3做完10天之后收到congrats。

之后就是漫长的等待了。11月是整个学期最忙的一个月,各种考试和作业,projects一个接着一个。每天白天上课+刷题和复习考试,晚上mock interview和做作业,就这样在一个月之内从120刷到了200。与此同时胆战心惊地等着VO invitation,既怕它来,又怕他不来。

12月中来了VO survey,约了圣诞节前那周的周二。是面试官是alexa组的manager,口音比较重的印度人。

互相自我介绍之后直接开始coding,题目是Binary Tree Vertical Order Traversal,有一点小改动。

我先讲了DFS+哈希表的方案,对方告诉我说不让用extra space。然后就陷入了江局,思考了一段时间之后没什么进展,期间跟他要hint,给了我两个hint,一个是一边遍历一边打印,另一个是可以找到root左右两侧的最远距离。当时没太理解他的意思,反而更迷惑了。整个过程体验很糟糕,对方口音重+通话质量一般,好多问题要反复确认好几遍。

僵持了近半小时后没有任何进展,最后让我用DFS+哈希表方案写出来了。过了一遍代码,跟我确认了几个语法上的细节,没跑case。

接着是两个BQ,都是常规题目。最后面试官问我有什么想问他的,我问了两个问题,其中一个是如果我被录用了,我应该在开始实习之前学习或者准备些什么。对方回答说Amazon的很多服务使用Java,所以应该练习下Java(

互相道谢后面试结束,全程一小时多一点。

我下来之后翻了下Leetcode讨论区,想了半天还是没明白这题究竟该怎么不用extra space做,一度感觉是不是被黑了。直到地里有人给我回贴说这个题目可以先遍历整棵树获得宽度,然后每次遍历都只打印一列,复杂度为O(n^2)。

我感觉整个人都不好了,我在面试的时候一直在试图想出某种花式遍历能够只用O(n)复杂度得到结果,而完全没有想到O(n^2)的解法。这种解法确实有些违背思维惯性,我们一般都会习惯性地用空间去换时间,而很难想到用时间去换空间。

说遗憾其实也没什么可遗憾的,最遗憾的可能是填VO Survey之前没有先算一卦吧。

Naveego SDE – HR电面在约

Naveego位于MI州的Traverse City,规模比较小,员工大概只有50人左右。这本来只是一家不知名的小公司,然而大约11月的时候地里出现了一个帖子,讲了作者去年在Naveego实习的体验。这是一家做toB数据产品的startup,用的技术都很新,实习生也能有足够impact。我看到之后觉得还不错,就顺手投了一个。

投完一周之后来了OA。这个OA和其他公司都不太一样,要求去codewar(一个类似leetcode)的网站注册,做指定的三道题,然后把自己的用户名回复给HR,题目挺有意思,难度不大。

大约两周之后收到了面试邀请,但是在我点开链接的时候发现几乎所有可约的时间都已经在2020年了,2019年唯一的选项是在12月4日上午,但是当天我有一场考试,就在我犹豫的十几秒期间,这个位置就被抢了,于是只能约在了1月中。希望到时候能顺利吧。

TuSimple General SDE – 技术电面挂

10月底的时候逛一亩三分地了解到了这家公司,看JD感觉不错,于是就不知天高地厚地投了一个,后来和朋友聊到才知道他家的bar比天还高。

投完一个月之后收到了OA,图森的OA比较奇特,需要像约面试那样预约一个时间,在约定时间对方会发来OA链接并打电话过来简单讲述一下这个平台怎么用。

OA的体验并不太好,面试官因为开会耽误了,鸽了50分钟,然后发来了一个类似CoderPad的平台的链接。这个OA比较特殊的一点是需要自己从stdin读取输入的数据。个人觉得使用CoderPad来做OA真的是惨无人道,我从CoderPad上直接运行Python代码,从stdin根本读不到数据,但是手动在虚拟机里运行py文件则是可以的。题目本身并不难,大多时间都花费在处理输入上了。我在结束之后给面试官发了短信说明了这个问题,面试官人很好,说会帮我转达。

我收到图森面试的时间正好在我收到亚麻拒信的半小时后,一封邮件硬生生地把我从躺床上看剧靠Soylent维持生命的自闭生活中拽了出来,然后把面试约在了圣诞节的前一天。

当我把面经题目整理出来之后发现事情并不简单。他家的面试题目几乎全是Hard题,内容大多是树和图。我试着做了几个题之后就被劝退了,一道题做一下午还一直WA的那种,实在太难了。

不过面试体验真的出乎意料的好,面试官全程用中文面的,题目是一个多叉树的题目。我开始先说了两种方法,都因为时间或者空间复杂度太高被否掉了,但是面试官很helpful,全程都在给hint,引导我一步步得出正确的答案。给人的感觉不是面试官出题我来答,而是面试官和我一起讨论和解答问题。整个面试持续了1个小时多一点,其中大约40分钟得出解决方法,剩下20分钟写代码。

面试后的第二天就是圣诞节,不到一周后收到拒信。虽然题目做出来了,但是和他家的bar相比显然是不够的。不过这次面试确实是个不错的体验。

复盘

还是那句话,个人的奋斗固然重要,但是也要考虑到历史的行程。找工不像考试或申学校那样,条件和结果大致成线性关系,但找工有更高的随机性,实力和运气二者缺一不可。

在很多人的找工总结中都提到,在很多人的思维中,我们拥有了条件ABC,就很大概率能拥有结果D。比如一个人有3.x的GPA,T1xx和G3xx,就大概率能拿到TOPxx学校的录取。这在学校中或许是适用的,然而求职的时候,水平一般的人靠着运气上了岸,而刷了800题天天投爆简历也拿不到面试的情况都很常见。除此之外还有很多随机性的因素,比如投简历投早了会当小白鼠,而投晚了就没HC了,能不能卡在最合适的时机上就全看脸。——我说这些并不是想为失败找借口,而是要正视实力之外的其他因素的影响——在付出了很多努力之后却一无所获的时候不要心态爆炸或者怀疑人生,其实可能只是一时的因为运气不在线。

还有令我比较迷惑的一点是学校Career Service的老师在workshop中经常提到的一点是,不要听信学长所说的需要投几百份简历才能找到一个实习,比疯狂投简历更重要的是去networking,和校友交流来寻求内推,或者在LinkedIn上勾搭recruiter。然而我问过周围的朋友,也自己尝试过,大家普遍反应效果并不好,比如在LinkedIn上给recruiter发InMail,十个里面能收到一个回复就已经很不错了。绕了一圈之后又回到了疯狂海投简历上来。

我相信没人愿意一个学期投几百份简历——你花了更多时间去投简历,HR花了更多时间去看简历,其他申请者投的简历沉在了池子里——这是个双输的局面。然而我目前看不到更好的解法,对于我这样条件一般的申请者,恐怕只能持续地努力,用数量来对抗玄学。而且很多时候一些经验只能靠真正的面试来堆,Mock interview的时候大家其实都很缺乏实际的面试经验,以至于很多问题发现不了——我从11月末开始几乎每天都会mock,但是每次真正面试都会发现全新的问题。

之前每到一个新环境之后的第一个学期都过得异常不顺,和高一数学考30分和大一挂两科相比,这次没挂科我已经很知足了。希望2020年能够顺利些吧。

Show CommentsClose Comments

2 Comments

  • Monica
    Posted 2020 年 1 月 8 日 at 上午 3:08 0Likes
    Google Chrome 79.0.3945.88 Google Chrome 79.0.3945.88 macOS   10.13.6 macOS 10.13.6

    谢谢博主对Riot的分享,很有帮助!希望你能在接下来有好运!共同加油!

    • Frank
      Posted 2020 年 1 月 8 日 at 上午 3:39 0Likes
      Safari 13.0.4 Safari 13.0.4 iPhone iOS 13.3 iPhone iOS 13.3

      谢谢,祝找工顺利。

Leave a comment