2019年终总结
查看话题 >转行之路 | 国企5年裸辞,留学0基础转码,拿到Google 微软Offer
从上海到硅谷,从汽车工程师到Google 微软码农,记录下这一路的经验和教训~
我和老公在上海的车企工作5年以上,事业算顺利,生活挺安稳,连学区房都买好了。表面看上去平静美好,但内心深处一直有小小的不安分在跳动。一是身处夕阳行业,未来不看好;二则想换个环境,体会不一样的生活。然而障碍也结结实实的摆在面前:GPA低(均分80左右)、英文荒废、编程小白、经济负担、沉没成本等等。
经历了一系列的折腾,考GT、申请学校、回归校园、实习找工作。在辞职的一年半后,两人幸运地拿到曾经梦想中公司的offer(Google, Microsoft, Amazon等)。
之前分享我们的经历后,收到很多豆邮: “已经XX岁,还来得及吗?” “GPA低,能申请到学校吗?” “文科怎么转CS?” 。这里记录下我们大跨度转行的经历、经验和教训,附上用到的资源链接,希望能帮到有类似想法的朋友。

我们有出国的念头时已是8月份,要想赶上次年的申请和秋季入学,时间非常紧张。我还在犹犹豫豫时,老公果断决定先报名3个月后的GT考试,交完巨额报名费后,好像也没退路了,硬着头皮上吧!
后来回想起来,报名考试真的是我们迈出的最最重要的第一步!如果当时不果断逼自己一把的话,我们可能到现在还在纠结权衡各方利弊。
1. 考英语
8月开始备考,11月一战GRE, 12月一战托福。我又在次年2月二战托福, 4月二战GRE。
老公:GRE: 334 + 4.0, 托福: 103
我: GRE: 326 + 3.0, 托福: 103
由于我们是在职备考,时间比较少,所以只能挑最薄弱、最关键的地方去攻克,时间充足的话应该更系统的准备。先专攻GRE,GRE的阅读和写作都难于托福,所以GRE结束后,只准备托福的口语,听力和综合写作就行。
1.1 GRE
对于我们来说,最大的薄弱项就是词汇量。上学时英语基础尚可,但几年荒废,单词已经忘得差不多了。怎么办?没有捷径,就背吧!我们用的是考满分3000 APP, 按照“17天搞定GRE单词” 排个计划表。上班间隙见缝插针,上下班路上,晚上回家后,大量地重复地背。刚开始真的挺崩溃,完全记不住,但当重复的次数足够多时,慢慢发现单词变得熟悉起来。有一个小窍门,对于难记的单词,我会查merriam-webster看英文解释、近义词反义词,再去有道词典看童理民的词根解释,这样印象会深刻些。
大概花了一个多月把词汇量提升上去后,同时开始做填空阅读和数学的机经。我们用的Peakgmt,这个网站有大量的题库,模拟考试界面。做题时严格按照考试的时间计时,Verbal 20题30分钟,Quantitative 20题35分钟。
1.2 托福
有了GRE的基础,再准备托福会轻松一些。口语就是多说多练,我还背了一些托福口语君的语料。听力用TPO练习,平时没事时多听科学美国人。写作是我的最弱项,一战才22,二战考前一周抱佛脚买了一个写作视频课,居然有奇效,综合写作碰到原题,独立写作也老老实实按逻辑展开法写,最终提高到了27。
2. 申请学校
整个申请过程从1月~4月,我们全部DIY,没有找中介。每天泡一亩三分地,别人的经验看得多了,心里也就有了数,再根据自己的情况灵活变通。
2.1 PS
申请材料中,Personal Statement是最头疼的。很多人问,以往的经历和要申的专业完全不搭边怎么写?我觉得重要的是: 通过以前的经历表现出你的学习能力,通过对未来的展望表达对申请专业的热情,用严密的逻辑和强大的说服力去打动招聘官。我们大概花了一个月写PS,一版版不断地修改、润色,每申请一个学校还要根据学校的不同要求再修改。
2.2 选校
选择学校就像鱼和熊掌,要看你更看中什么,更适合什么。对我们来说,找工作是第一要务,所以像综排、课程质量相对就没那么重要,可以妥协。
我们以前的GPA较低,又是跨专业申请,参考地里往年的情况,找了7、8所乐于接受转专业,并且偏好工作经验的学校。大部分都被拒了,同时被录取的有: NEU 和 UVa,老公还录了Duke。一番权衡后,选择了综排一般,课程质量一般,但就业政策友好,性价比高的NEU CS。
现在一年半读下来,我觉得NEU最大的优势在于学制灵活,可以找多次实习和Coop延期毕业,也可以一年半提前毕业,压力会小很多;其次,课业负担不大,有充分的时间刷题和找工作;最后,亲历下来NEU的招牌不会拖后腿,过简历关大差不差,剩下的就看你搞定面试官的能力了。我们班30多人,可能有一半都是转专业,文科、商科都有。目前身边了解到的都上岸了(实习/全职),大概一多半都是大厂。
3. 打基础
3.1 自学CS
18年4月敲定学校后,开始在上班之余自学编程。在这之前老公基本0基础,只在多年前本科上过一门C语言;我算0.5基础,工作中写过一些简单的VBA。
先看《Head First Java》学习Java和OOD的基本知识,图文并茂很有趣。然后跟着视频上CS61b, 这是UCBerkeley的一门算法和数据结构的公开课,强烈推荐!Josh Hug大神老师翩翩君子风,讲解清晰,课程设置对0基础很友好,10个Homework和3大projects建议都做一遍,会有质的提升。其他比较有用的课,包括Operating Systems、Database等,如果有时间的话也可以刷一刷,这些基础性的东西,对于转行的同学是早晚都得去学习了解的。
同时,我们在Udemy上了web的bootcamp, 一些热门前端框架课包括Angular,React,还有大数据spark等。把这些跟着Udemy和油管做的全栈项目放简历上,对于我们这些没有行业经验的人来说,是个丰富简历内容的好办法。
书籍推荐:Algorithms, 4th Edition,Cracking the coding interview , Introduction to Algorithms
3.2 刷题
18年6月辞职,基础课程差不多上完,7月正式开始刷题。刚开始按照频率刷,并辅助上某刷题培训班,以熟悉基本情况。最开始每天都很煎熬,经常一两道题能研究一整天,讨论区的答案绞尽脑汁也看不懂,一度严重自我怀疑,觉得选错了路。
9月 ~ 12月开学第一学期,这是压力最大最黑暗的一段时期,要上课赶due保证GPA,还要找内推投简历找实习,由于CS经历基本空白,还要自己找项目做以充实简历。从早到晚,每天的生活就是刷题写作业赶due做项目。
此时刷题按照类别刷,Linked List, Tree, DFS & BFS, Binary Search, Graph, Trie等等,保证广度和深度。对于每道题,我都尽量找出2种以上的解法,并分析时间、空间复杂度和trade-off,比如对于Tree的题目,适合哪种traversal, iteration和recursion分别该怎么写。等到300题时,量变到质变,明显做题速度提升很多,遇到一些medium也能不看答案写出来。
拿到面试后开始有针对性地按照公司Tag刷,配合地里的面经。做题时重点模拟面试的情景,限时30分钟,最开始阐明问题,然后分析edge cases,暴力解,进一步优化,训练自己边写码边絮叨,面试时的沟通很重要。
其实对于刷题这件事,应该说各人各法,八仙过海,很难说有什么宇宙通用的策略。比如我和老公的刷题模式都不尽相同,我专注于精刷,老公更广撒网一些。但是有两点应该是对所有人都有效的。
1. 一定要重视Leetcode讨论区,那些高票的做法和讨论,不仅仅非常能打开思路,也能很好的提供“跟面试官讨论”的范式;
2. 每周的竞赛尽量去参加,在限时压力下做出题目的能力,能很大程度上模拟面试的情景。
19年找到全职时,我共刷了582题,老公700+,其中高频题2~3遍。
3.3 系统设计
老公面Google时被要求系统设计,多亏他上学期修过一门分布式系统的课,多少打下些基础。除此之外,看的资料包括Grokking the System Design Interview, Github 系统设计入门,和油管Tushar Roy。
书籍推荐Designing Data-Intensive Applications
4. 找工
4.1 实习
9月入学,一开学马上要开始找实习,一定一定要早投简历,密切关注各大厂招聘官网,最好8月岗位一开马上投!千万不要像我们一样,总害怕没准备好,硬生生拖到10月底才开始广撒网,黄花菜都凉了,教训深刻啊!由于投的晚+背景太弱,我俩整个秋招都没有面试,Linkedin招满,Facebook简历据。看着周围的同学每天各种讨论面试心得,我们真是压力巨大。
19年初春招才有转机,好不容易拿到些面试机会,格外珍惜。在挂掉Google电面后,我把所有的希望都寄托在了Amazon上。VO前一星期,没日没夜狂刷题准备BQ,其他事情全部推到一边。VO当天碰到一位国人大哥,一个小时的面试里共出了1道Medium算法,1个OOD设计,一些Linux基础知识,最后5分钟还让我写个Max Stack。看着地里一堆20分钟一道Top K就过了的面经我也是欲哭无泪,不过觉得算法题都做出来了多少还抱些希望吧。无比煎熬的2天后,清晨等来一封冷冰冰的拒信。一直强撑起来的信心、坚持此刻全部被打碎,哭了很久。第二天起床告诉自己"What doesn't kill you makes you stronger", 重新开始投简历。
其实现在回头看,当时应该站高一些把目光放远,找工作的过程本是条长河,没必要为了一时的失利而一蹶不振。后来幸运的通过了PayPal的三轮面试,拿到了offer。
老公拿到的面试更少。他的亚麻面试错把ood当成算法题挂,最后去了Indeed。Indeed实习面试和全职一样的流程,onsite 4轮,题库不大。
3个月的暑期实习,完成了规定的项目并得到好评。我所在的组里虽然90%都是印度人,但都挺友好,mentor特别负责,很感谢他们。
我们组全职一般9点半~10点半来,下午5点半~6点走,不加班不oncall,经常wfh,实习生辛苦一些但也在合理范围内,我赶进度时下班回家后还会继续写project,老公有几次下班晚了,HR还专门打电话让他早点走。。。公司给Intern提供免费的apartment,各种swag,组织大家看球赛,包车去Santa Cruz海边玩,旧金山Food Trip,老公他们还有观鲸活动(羡慕!)。总之实习体验很棒!
加州的一成不变的艳阳下仿佛一切都熠熠生辉,我们也都顺利拿到了return offer。
4.2 全职
有保底offer后,全职我们只投了一些大厂/独角兽。这里说下简历的投递问题,很多人说内推一定最高效,我觉得还是要看具体公司的情况,多多收集信息,比如今年的亚麻,海投就比内推处理速度快很多,我和老公都是8月岗位一出来就投,他海投我内推,他10月初就拿到offer,我直到12月才收到vo ,然后没几天亚麻就宣布招满了,即使vo通过也进waitlist。
我10月跑去奥兰多参加了GHC。GHC是美国的女程序员招聘大会,旨在鼓励女性加入科技行业,特别推荐找工作的女生参加!规模很大,基本各大公司和中小型公司都会去摆摊儿。我提前把简历扔进GHC简历库,会前收到了很多公司的联系,有的直接就给现场的面试(Bloomberg),有的还需要一轮oa/电面。现场面试的流程一般比正常流程简化,比如微软正常4轮,现场就2轮。除了招聘会,GHC还有很多讲座和好玩的活动,这届有李飞飞的演讲,各大公司都会举办party,有的还会组织去环球影城玩!后来问了一圈,周围同学通过GHC找到实习或全职的真的不少!
按公司说下面试的经历吧:
Google:1轮算法电面,5轮onsite:包括3轮算法 + 1轮系统设计 + 1轮bq。算法轮45分钟需要白板写出1道medium-hard题,和1~2个follow-up。onsite结果送Hiring Committee(这一轮挂人应该最多),通过HC后team match, 老公一周聊了4个组选了1个,match上后还要再过SVP审批(这里被挂几率较低,但仍有可能)。这一路斩关过将足足耗了3个多月,每过一关都心惊胆战。
微软:GHC简历库中被选出,1轮电面通过后,GHC现场直接2轮Manager面。算法题medium,很多五花八门的bq问题,聊得比较愉快。
亚麻:3轮oa后收到了3轮VO(运气好的只有1轮VO讲oa2),题目包括算法和ood设计。
收到offer时没有想象中的狂喜,长长的舒了口气。想起那些奋笔写码的日日夜夜,偶尔绝望崩溃大哭的情绪,无数个两人互相打气的时刻,感谢一直没有放弃的自己,爸妈的理解和支持,还有坚定的陪我走这一路的老公。
世上本就有无数种生活方式,大多数人走的路不一定适合你,不去尝试,怎知未来会怎样。有时勇敢点,跳出舒适圈,会惊喜地发现世界其实很大呢。




欢迎关注
微博:方小圆儿_
公众号: 方小圆儿漫游记
PS. 如果对您有帮助的话,不妨帮忙点个赞呀👍,谢谢~
-
momo 转发了这篇日记 2024-12-01 18:15:25
-
Adnarim 转发了这篇日记 2024-06-24 08:56:43
-
N 转发了这篇日记 2024-01-26 05:47:13
-
i维维 转发了这篇日记 2023-05-10 13:26:51
-
Yukii 转发了这篇日记 2023-05-01 15:41:41
-
E/INFP-傻白甜 转发了这篇日记 2023-03-02 11:53:30
-
meeseeks 转发了这篇日记 2023-01-30 13:14:50
-
picnic 转发了这篇日记 2023-01-29 07:06:01
-
momomo 转发了这篇日记 2023-01-26 00:46:06
-
木然乐 转发了这篇日记 2023-01-25 10:44:38
-
momo 转发了这篇日记 2023-01-05 19:27:51
-
DOKOHEIKU 转发了这篇日记 2022-12-20 09:21:59
-
momo 转发了这篇日记 2022-12-08 03:31:15
-
开心快乐最重要 转发了这篇日记 2022-11-29 08:39:33
-
the first 转发了这篇日记 2022-11-07 23:30:01
-
momo 转发了这篇日记 2022-11-02 21:11:53
-
喧和十六序 转发了这篇日记 2022-10-20 13:00:23
-
momo 转发了这篇日记 2022-06-28 17:15:05
-
西里西里西 转发了这篇日记 2022-06-10 09:49:12