转码惊险上岸总结

avatar 272862
lizzielee
25907
49
毕业将近一个月后终于找到了工作,不是大厂,但我已经满意了。签好正式offer的当天就开始大病,或许真的是上岸前提心吊胆的日子耗尽了元气,现在终于不用绷着那根弦,于是瞬间爆发。其实如果自己以前更成熟、更有规划一些,本来应该不至于如此艰难,正好趁着入职前最后的假期把留学找工这一整段经历做个反思、总结,给正在努力或该开始努力的朋友一个参考。
本帖大概分为两个部分,第一部分按时间顺序对这段经历进行回顾,第二部分集中针对几个求职常见问题分享我的经验和体会。所有观点都来自我自己的经历和印象,可能会和其他人说的不一样,大家根据自己的情况取舍。

第一部分
1. 申请
陆本EE,本科期间只上过C/C++、计算机网络和一门叫软件技术基础的融合了数据结构、数据库、操作系统但都是浅尝辄止的“神课”,对写代码只能说是有个概念。非计算机专业的C++课大家懂的,考试连链表都没有考。
申请期间(2017下半年)仍然没有下决心转码,申请方向还是以EE为主,混着申了一点点CS37或者CE之类的项目,另一方面也是担心直接申CS背景不够没学上。
这是有转码念头之后第一个决策失误的地方,导致出结果之后发现拿到手的EE或者ECE项目自己已经都不想去了,可选范围变得很小。最后去了一个CE和CS学生有同等选课优先权的CE项目,算是曲线救国。
2. 入学前暑假
第二个失误是暑假决定不找实习,回家和爸妈呆在一起。和他们在一起当然是幸福的,不过我猜他们也宁可我少在家呆这两个月,多一段拿得出手的实习,后面少受些找工作的煎熬。
开始试着刷leetcode,发现什么也不会只能看答案,于是改变策略先上CS61B,但只上到一小半。现在想想,像我这种没什么基础的应该先找点常用数据结构和算法的总结,把皮毛都了解了,再去深入学,可能效率会高一些。不过也是因为跟了这个课,我选定了Java作为刷题语言。
3. 第一学期
这个阶段简历基本是白纸一张,题也没怎么刷,硬着头皮去career fair。到现在我还是感觉career fair对我这样简历不值一提又不太会侃的人只有一个作用,就是练胆量。
这学期选了机器学习和算法,加上两门毕业要求的ECE课,每周完成学习任务就觉得自己很累。算法课过于侧重理论证明,以至于我学完还是对应用和实现一无所知。实际上当时没必要对分数上的一点点得失那么计较,应该多分些精力来做sde相关的项目或者刷题,要不就是自学基础。
投了一学期简历找实习,偶尔有小公司发来面试邀请,虽然有准备,也几乎都是bq阶段就挂了,可能因为当时也不太懂怎么揣摩bq问题背后的潜台词,不会答,口语也不是特别好。面头几家的时候我甚至还不知道bq这个概念。
寒假发生了第三个重大失误。当时leetcode提交了200题左右,实际上大部分都是看答案写的,但莫名觉得自己进步很大,再加上寒假期间公司大部分都放假,没有面试也就没有动力,所以每天只做两三题,有时候甚至一题都没写完。也依然没有系统地自学数据结构和算法。
4. 第二学期
开学后又为了GPA把重心放在作业和考试上,但选的课其实只有Database Systems对找工作有点帮助。到了二月,美国实习依然没什么进展,开始考虑回国实习,投了Unity上海和微软苏州以及若干乱七八糟的小公司。Unity上海和微软苏州都给了面试,微软苏州撑到了最终面,但最后都挂了。这个时候才发现自己做题水平其实还是非常菜,数据结构和算法基础知识也一团糟。
第四个失误可能不那么严重,但换成现在我肯定不会做相同的决定。有一家附近的公司发了take home test,全是SQL和Python数据分析,花了一整个周末好不容易写完拿到了onsite,结果最后在还没有其他offer的情况下竟然决定不去,理由:Glassdoor对这家公司的氛围评价很差,公司不报销onsite的交通费,以及来回车程差不多要五小时,太累。实在是太心大了。
侥幸遇到一家小公司,所有做题环节都是不计时OA的形式,可以自己慢慢想慢慢查,电面也没有技术问题,甚至没有刁钻的bq,全程如同聊天,终于在4月初混到一个实习offer。当时本来和国内的阿里约了一面,但最后还是决定去这家小公司(之前写过介绍贴),虽然地理位置也很不好,但考虑到好歹是美国本土的实习,可能找全职的时候认可度会高一些。后来想想真不一定,hr筛简历或许还是以公司本身在业界的影响力为第一标准,毕竟我内推狗家被秒简历拒,而同校的人暑假在国内字节实习最后拿到了狗的offer。
5. 暑期实习
由于一开始就不打算在这个小公司全职工作,我下班回住的地方就开始刷题。诚实地说,我实习期间并没有百分百认真对待工作,当时的想法是怕有了return会让自己找全职的时候松懈,现在看来又是一个莫名其妙的心大决定。虽然最后的return offer开始时间太晚,OPT接不上,但我想说的是能给自己留后路还是尽量留。
实习后半段开始和另一个实习生一起刷题。他是UW Seattle CS本科,刷题水平比我好一点点,我们会一起讨论,这个过程让题目和相关的知识点给我留下的印象更深。实习结束之后我和来看我的爸妈一起回到学校,租了个Airbnb,我每天负责专心刷题,爸妈做饭。到了暑假快结束的时候,提交了400多题,其中一些题是二刷,这个时候才开始摸到点门道,可以独立做出没见过的正常难度的medium了。也是这个时期,终于开始认真学数据结构和算法。
6. 第三学期
全心找工作,选课以workload小为第一要义。开学前就开始投full time的简历,本来建了个表格想track每家投过的公司的状态,后来发现根本没必要。给了面试的公司肯定会记得,发过拒信的公司或者一直没有动静的公司隔段时间我又会再投。
这个时候感觉不管是bq面还是coding面都顺手了很多,第一轮hr面基本上都能过,或许实习天天和人英文交流还是有帮助。但最大的问题是有效面试太少,收到的大部分是公认的白嫖OA,正经面试屈指可数。
10月去了Palantir的onsite,debug和design题做得不太好,挂了。Unity技术面的面试官是本科校友,确认我是中国人之后直接开始用中文面试,给的题也不难,面完几天后又说要加面一轮。加面的面试官也是中国人,但全程很严肃,问的基础知识问题我也恰好都不太熟,让我特别紧张。给的题是n queens,交流也不太好,没写完,自己也感觉得到肯定挂了。还有一个加州超级小公司,连官网都还没建好,给了一个take home project,最后挂了也没说是哪里不符合预期。11月27号收到亚麻的OA pass,邮件里却明确说不知道什么时候能给我约VO,我也没报什么希望,果然直到现在都没收到VO survey。
这个时候看着周围认识的找SDE工作的大部分都上岸了,而且基本都是那几家大厂,心态非常崩。认真思考了去icc、找unpaid实习、做volunteer等各种方案的可行性,看了不少icc经验帖。
7. 毕业后
处理完学校的事情,马上飞去了西雅图,希望能多拿点当地小公司的面试。在生日当天收到一家湾区公司的远程onsite邀请,正好快放圣诞了,就约在一月初。整个圣诞和新年假期我都不敢完全放松,一直见缝插针找机会刷题、复习。地里这家公司面经不是很多,leetcode好像也没有他家tag,不过可以确认他们很重视Java基础,于是就一边刷亚麻的tag题一边把Java知识过了一遍。当时的打算是如果这家也挂了就开始和icc联系,尽量不浪费失业期,也好早点上项目。
面试感觉不错,hr最后wrap up说我表现很好,表示下周再跟VP of Engineering面一轮就可以敲定offer。同时另一家湾区的公司也发来面试邀请,稳妥起见我还是先约上了,并且认真地研究了官网和面经。
最后终于上岸的时候并没有如释重负的感觉,只是觉得短时间内暂时不需要刷题了,也不用去icc面对各种已知和未知的麻烦了。回想起来实在是惊险。甚至在签好offer之前我都不敢告诉朋友,只和爸妈说了进展。
本帖隐藏内容需要登录后才能查看。
没想到写了这么长…最后给转专业的朋友打个气~我挣扎上岸了,跟我一起刷题的UW CS本科生还是只拿到我们实习那个小公司的return offer,而且我们都收到面试的公司我都走得比他远…出身不是CS,不代表就一定比科班CS的人差,努力和运气都很重要。
最后提前祝大家新年快乐,希望没上岸的朋友都能早日上岸!
  • 226
49条回复