来美找工作一年总结

申入学年度:
相关工作经验范围: 1-3年
你目前的专业: ME
工作类型: 全职
公司名称: Linkedin
其他公司名称:
目前最高学历: 硕士
找工年度: 2019
找工季节: 4-6月
工作职位类别: MobileEng
工作类别: 全职
工作来源: 内推
应届or在职跳槽: 其他
毕业学校:
地区: Greater Seattle Area
相关工作经验年数: 2

最近签了linkedin的offer,总算是上岸了,为期一年的找工作也尘埃落定,心中颇多感慨,感觉有必要总结一下。找工作过程中在论坛里看了很多面经,得到了很多宝贵的建议,也交了一些朋友,我也分享一下自己的经历,希望可以帮助到和我有类似经历的人。

先简单介绍一下我的情况,我是在国内读的本科和硕士,专业都是ME。我读书时期做的实习都是在车企搞工艺啊什么的,不过在读研期间导师做了个项目,分配我开发了一个简单的安卓app。我来美国主要原因是我老婆在这边读书然后毕业留在了这里,我们异地恋了七年,后来觉得老这样不是办法,最终决定我过来这边,为了这个目标我大概三年半前就开始筹备。我们大概是16年我研究生快毕业的时候决定我来这边,那时候觉得ME来这边找工作太困难了,就直接让我转码了。那时候我花了一个暑假看《Thinking in Java》,又花了两个月刷leetcode,我记得刷了一百道吧。研究生毕业去面试,面挂了BAT、网易、美团等等各种大厂的安卓开发,后面终于拿到一个自己还比较满意的offer,去了国内一家独角兽创业公司做安卓开发,然后在那儿做了两年。两年的主要工作就是开发app的新feature,也开发了两个library。

大概17年十月份,我第一次尝试来这边找工作,当时的想法是直接找工作,然后让公司帮我办H1b,不过后面咨询了律师,我的学历和工作经验,根本没有办法帮我申请码农的H1b,那时候我老婆绿卡申请快过了第一阶段了,所以我们只能盼着等她过了第一阶段后我用H4ead来工作。去年五月份,她的绿卡申请过了第一阶段,我也就H4身份来了美国,开始申请ead,当时没有办加急,没想到这一申请就花了半年,直到10月底我的ead才下来。在这期间,我主要就是刷题,效率一般,大概刷了350道题,然后在coursera上了三个关于machine learning的课,拿了三个证书,后来证明这课对于找工作没有任何帮助,另外相当一部分时间用来提高英语,因为我没有准备过托福,GRE什么的,英语比较一般,每天都花很久来听英文,熟悉软件面试相关的英文词汇,后来才发现我这点准备在印度哥哥面前不堪一击。11月份我开始大量投简历找内推,到了六月份终于拿到了自己想要的offer,历时七个月,可以说是非常煎熬,也收获满满。我将这个过程分为以下几个阶段:

1.拿到ead前
去年九十月份,我那会刷了两百多道题,觉得很无聊,想要面点小公司攒点面试经验,然后就开始投一些简历,看能不能混点面试。然而结局是残酷的,小公司hr第一句话就是问你有没有ead,甚至直接问你要ssn,所以没有拿到任何面试机会。我感觉这种情况下唯一拿到面试的方法就是骗hr说你已经有ead了,面试经验特别重要,尤其是对于刚来美国没在这边工作过的人,可以极大的提升面试的感觉,英语交流也会突飞猛进,所以我现在回想起来那时候应该尽可能多混点面试,而不是被动等待ead。

2.疯狂投小公司
拿到ead之后,在找朋友帮忙内推大厂的同时,11月我开始疯狂投简历,各种类型的都投,每天都接几个hr的电话,然而电面很少,更别说onsite,事实上我那个月投了至少200个职位吧,只拿到了一个onsite。联系我的基本上都是安卓岗,那时候我开始感觉到我那两年安卓的工作经验是多么宝贵,虽然我那时候主要目标是找general的sde1的职位。我老婆觉得这种工作岗位很多,面试也会比较简单。然后其中80%都是外包公司,我是在西雅图,有很多微软和t-mobile的外包联系我,80%都是印度哥哥或者姐姐,那时候我基本听不懂他们说啥,交流很成问题,所以大部分电话联系后都没了下文。我唯一拿到的那个onsite是一个微软的外包,也是安卓开发,面试只有两轮,都很简单,面完三十分钟就通知我过了。但因为那时候我手里有三个大厂的onsite都约在了1月份,所以我很快拒了这个offer,没想到下一个offer等了半年才来。关于外包我的想法是,如果没有两年的工作经验,像我这样刚到美国找工作,其实外包是个很不错的过渡机会,还可以攒工作经验,正规的外包公司是很完备的,保险,401k那些全都有,工资也没有很低,有些还可以帮你办工作签。一般像微软那样的大公司都有几个固定的外包公司和他们合作,会源源不断的放出外包岗位,比如给我offer的BeyondSoft就是西雅图微软主要的外包公司之一,后面他们又联系过我几次问我对一些岗位感不感兴趣。但是如果你有两年以上的工作经验而且刷了不少的题,我觉得可以更耐心,会有更好的offer在前面等你。而且如果一开始你可以通过外包的面试,面完大厂之后肯定更加没问题,所以花几个月试水大厂是完全值得的。两年经验很重要,是个槛,因为我发现几乎所有的小公司和大部分大公司在社招时都要求至少两年的工作经验,很多时候如果工作经验不到两年,朋友都没法内推你。

3.面大厂的general岗位
这可以算是这次面试过程中走的弯路吧,我最初把目标的target定位在general的sde1,是因为我老婆和身边的朋友都觉得general的sde1面试比较简单,只要刷好题,准备下bq就好了,不会有system design,最多oo design。可等我开始onsite的时候发现根本不是这回事儿,社招大厂基本很少有面向sde1的面试,大部分都是面sde2,如果面得不好把你降级成sde1,所以面试里肯定有一轮是system design,如果你不好好准备design是肯定面不过的。我第一个大厂面的是snapchat,我面得很差,第一次面五轮的这种onsite有点紧张,强度也超高,表达也很不流畅,而且我根本没准备system design,所以自然挂了。面完之后我知道design是必须要准备的,然后又开始着手准备design,但我没有任何后端开发的经验,本身基础也很薄弱,所以准备起来非常费劲。过了一个多星期又挂了亚麻的onsite,这次design到没有很难,设计餐馆,偏向oo design,然而coding却没面好。两轮coding都是印度哥哥面我,我交流的都不是很好,而且还是有点紧张,有一轮一道刷过的tree的medium题都没写好。这次面完之后我知道我准备的还远远不够,一是刷题还不够,好多题刷过但没复习,写白板还是不流畅,而是英文交流尤其是印度口音需要好好提高,在美国面试,印度口音真是没法避免的一个环节。两周后又挂了Airbnb的onsite,这次内推的是安卓岗。我进行了很多天的训练,持续稳定的训练带来的进步极大。我清楚记得面亚麻前我老婆在家帮我mock,给我出了一道题是Median of two sorted array,要求复杂度log(n),我挂白板了,写了一个多小时也没写出来,然后我躺在地毯上很久都快哭了,在想这也太难了,我啥时候才能在白板写出这题啊。但其实两个月后我可以轻松在白板上写出比这题更复杂的题。
3.工作经验很重要,哪怕是半年的,我们一定要利用好自己的工作经验,面试的岗位如果有相关工作经验,拿到面试和offer的概率都会大大提高。
4.面试不能停,有个面试等着你会极大提高你的准备效率,没有面试的时候我的效率一般都会降低,面完试之后最好能要到feedback,如果是全力准备的面试,每面一个onsite都能发现很多问题。
4.交流极其关键,在找工作时能找到和你目标一致的人一起交流,两个人都会取得极大进步,更容易拿到offer。前人失败或者成功的经验都弥足珍贵,对于安卓岗位来说,基本上只需要接触五六个人你就可以拿到很多大厂的onsite经验。