来美找工作一年总结

27149
90
最近签了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,这次内推的是安卓岗,挂在了两轮安卓上,因为大半年都没写安卓,面试的时候写安卓的project手特别生,coding倒是问题不大,毕竟airbnb的题都在题库里,对于我来说有了题库,最不缺的是时间。一个月挂了三个大厂的onsite,那时候我整个人都是懵逼的,觉得自己根本过不了大厂的面试。算法题写的还不够多不够熟,尤其在白板上。英语表达也还没合格,尤其是面对印度口音。System design更是漏洞百出,都不知道从何准备起。那时候最致命的还有信心不足,觉得自己面不过sde2,而又没机会面sde1。

4.修整
2月份因为妈妈做手术我们回国过年,待了一个月,这期间完全没有刷题,好好放松了一把。回国西雅图之后针对上面的问题制定了提高的方案。首先是算法,自己刷的还远远不够,只能继续疯狂刷,而且经历了刷过的题没写好的痛苦,更加明白题目需要刷得很熟才能在面试时游刃有余,所以加强了对以前刷过的题的复习。然后是英文和design,这期间我在youtube看一个印度哥哥讲解design的视频,看了很多期,这两方面的能力都得到了提高,渐渐可以听懂印度口音了。这期间又找人内推了一些大厂general的岗位,结果三家都被表刷了,微软挂了电面,到了三月底,终于拿到了facebook安卓岗的电面,这时候我刷了450道题差不多,而且高频都刷了几遍,而且更注重白板的练习,自信心明显提高了,基本达到了只要有思路,就一定可以在白板上把它写出来。

5.转回Android
内推几家大厂general岗位被表刷让我愈发意识到我的机会还是在安卓岗上,我最终放弃了后端system design的准备,完全回到了安卓的准备上。隔了快一年我又开始每天写Android的project,看起了google文档,了解Android新版本的一些特性。然后去五月初面了fb的E4安卓岗,挂在了安卓的design,题目是设计一个安卓的下载库,我答得很不好,很凌乱,心中很多思路但是组织不好。我意识到Android design是我需要好好提高的部分。后面的一个月我全部都在准备Android,每天基本只复习刷过的题来保持状态,那时候我刷了520道题,我觉得完全够用了。准备安卓主要有三个途径:一是投一些小公司的安卓岗,然后他们会让你写take-home projects,我在上面试验诸如MVVM,Dagger之类可能会被问的东西;二是看一些开源库和自己以前写的代码,仔细准备一些常见的Android design,比如设计首页feed,设计photo upload,设计下载库,设计User Track,设计扫雷游戏等;三就是多和面安卓的然一起交流,这一点极其关键,我在地里认识了好几个也面试安卓的人,一起交流面经,交流面试技巧,交流Android Design的设计要点,在半个月内Android Design取得了很大的进步。然后六月去面了LinkedIn,这次明显准备比较充分,每一轮都面得很顺,拿到了offer。

最后总结一下我的主要收获吧,先要感恩家人的支持,不然我没法脱产这么久安心找工作。
1.心态是最重要的,虽然很难做到不急不躁,但是一定要对自己充满信心,如果自己都觉得自己面不过,那就真的没机会了。
2.对我来说,信心来自于每天的训练,持续稳定的训练带来的进步极大。我清楚记得面亚麻前我老婆在家帮我mock,给我出了一道题是Median of two sorted array,要求复杂度log(n),我挂白板了,写了一个多小时也没写出来,然后我躺在地毯上很久都快哭了,在想这也太难了,我啥时候才能在白板写出这题啊。但其实两个月后我可以轻松在白板上写出比这题更复杂的题。
3.工作经验很重要,哪怕是半年的,我们一定要利用好自己的工作经验,面试的岗位如果有相关工作经验,拿到面试和offer的概率都会大大提高。
4.面试不能停,有个面试等着你会极大提高你的准备效率,没有面试的时候我的效率一般都会降低,面完试之后最好能要到feedback,如果是全力准备的面试,每面一个onsite都能发现很多问题。
4.交流极其关键,在找工作时能找到和你目标一致的人一起交流,两个人都会取得极大进步,更容易拿到offer。前人失败或者成功的经验都弥足珍贵,对于安卓岗位来说,基本上只需要接触五六个人你就可以拿到很多大厂的onsite经验。
  • 197
置顶回复
收起
avatar 1
admin
本文被选为全站置顶。谢谢楼主分享!

请把你自己的账号发给管理员信箱(看签名档)说下你是这个文章的作者。管理员把置顶的100大米加到你的账号里。
如果你的账号没积分 + 没法做考试拿分,就重新注册一个。考试的100+置顶的100,已经有200分了。如果再分享包裹,等等,估计很快就250+了。-- Done。加了100大米。
90条回复