大家好,我是 Xiaosong,之前我在 iHerb 担任软件工程师,最近入职了甲骨文的基础设施团队部门。从读研究生到工作这段时间,我在美国待了三年时间。
“你当初为什么来到美国的?之后为什么一直在这里工作?”
我本科在上海科学技术大学就读机械专业,当时学校和德国有交流的项目,交流结束之后我在埃斯林根应用技术大学获得汽车工程的研究生学位。刚开始我在德国的 DLR 公司负责车辆传感器和组件评估,后来因为家人的因素来到了美国。美国在制造业形势和薪资待遇都不是太好,而且我刚来美国的时候没有身份,所以选择在这里读软件工程的硕士,之后就在这里工作了。
“来美国之后,你是如何选择合适自己的学校的?如何从零学习编程的?”
我在美国就读的是加州州立大学富尔顿分校,这个学校在本地的口碑还不错。我选择这里的主要原因是价格便宜,像其他学校的话,一年可能就要五万美元,三年的话十多万了。这里的话学费,住宿费,停车费和保险费全加起来在三万三美元左右。而且十八个月就能毕业,有三年的 OPT 签证,作业都是一些简单的就业项目。学习编程的过程我最感谢的是一位同班同学,他现在入职了亚马逊,他之前在国内已经工作了三年,在学校里算经验丰富的。在学校他带着我刷题,上一亩三分地,上 Leetcode 注册会员,要是我准备去哪个公司面试,他就会先去面试然后再和我讲面试面了什么。有这样的一位同学或者学校有这种氛围,能省下很多时间。
“由于你是转专业的背景,简历以及项目经验方面相对薄弱,你是如何弥补这两点的?”
虽然我现在只有一年的工程师经验,但是投简历拿到面试的概率还是挺大的。我觉得因为我写的简历是 HR 会喜欢的,根据我的经验,在美国这边的 HR 对技术细节都不太了解,不过他们在脑海中大致会有一个模版或者参照的例子。如果这个人的简历写成这样,那么大概率面试会过,或者如果他写成别的样子,那么通过面试的概率不大。简历方面有两个方法可以改进,第一,在一亩三分地上有人会把自己的简历放上去请大家给建议,你一眼就能看出来,有的人简历写得不错,有的就是不行。可以从里面学习那些写得好的人。第二,我报了一些美国华人办的算法班和就业班,他们会提供了一些比较好的简历模版。我一开始写简历写得比较花哨,花花绿绿的,也没人理我。后来我在 Overlaf 找了一个 Latex 的模版,把内容往里面填上去,再把关键词写上,改成这种朴实无华的模版之后,拿到面试的概率也高了很多。项目经验方面,我也报了一个项目班,不过面试中我基本没遇到问项目内容的,唯一一次是我上次面试的时候,因为有东西跟他们做的差不多所以问了一下。还有就是因为我考了 AWS 助理架构师的证书,所以问了我一些架构设计方面的问题。我觉得项目经验其实是可以有一些水分的,把关键词以及比较时髦的技术写上会比较加分,实际面试中很少面试官会去问,因为每个人的做法不一样,也没法去验证。
“除了这个项目班之外,你还参加了其他培训班吗?觉得效果怎么样?”
我上过九章算法和来 offer 的编程班,你问我值不值呢?我觉得不是特别值。但是有没有帮助呢?肯定是有帮助。如果有一位朋友已经上过了,他/她知道这些套路给我讲一次的话,那么不去上这些班也没什么影响。不过如果是一个刚毕业的学生,什么也不懂的话。那么找一个九章算法,来 offer 的项目班去听一听也可以,很节省时间。九章算法的班挺便宜的,一两百块,来 offer 那个比较贵了。我觉得如果不差钱的话,也可以去上。
“如果在里面你只能推荐一个课程的话,你会推荐哪个?”
看个人吧,如果在 Leetcode 已经刷了 200 道题,简历也没有问题的话,我推荐上 Leetcode 算法题型总结的课。上这个课面谷歌这类的公司会很有帮助。如果只想面亚马逊或者甲骨文这种对算法没那么重视的的公司,或者简历还不太行的话,可以报一个九章的项目班或者系统设计的班。几百块就可以学习到很多。
“你第一次参加工作的时候是怎样的?为什么离开上一家公司然后加入甲骨文?”
去年快毕业的时候,我加入了 iHerb 这家中型公司,公司的业务主要是做电商以及卖保健品。一开始我的岗位是全栈工程师,因为研究生的时候比较忙,也没学习到太多东西,所以什么也不懂,压力非常大,不过同事都挺好的,所以不懂就问问同事,一边上班一边学。后来感觉软件工程做起来也没什么太大压力。我现在每天工作真正工作的时间为六个小时,其他时间就在跟同事聊聊天吃顿饭,每天有两小时写代码的时间就很多了。最近由于公司重组,我的组长和几位同事都离职了,正好一位同事的堂哥在甲骨文做经理,所以内推我去面试,给的薪资也不错,所以我就加入了甲骨文。
“转专业的过程中,你觉得遇到最大的困难是什么?”
最大的困难就是不知道学什么,以及哪个东西学到什么程度就够了。因为找工作的话,你需要比较全面的技能,如果没有一个有工作经验的人和你讲的话,你不知道你最欠缺的是什么,我比较幸运,我有三个同学都是在国内工作过的,在学校中算技术比较好的。他们会告诉我需要会什么,需要补哪方面的知识?这点很重要,可以节约很多时间,而且学校的氛围也很重要,如果你所有的同学都是搞学术的,那就不太适合找工作。因为他们不懂就业市场喜欢什么。
“如果你能够重头再来重头再来转专业,你会做哪些不一样的东西呢?”
我上学第一天就开始刷题,然后学一些系统设计,刷题呢,需要熟能生巧。不是那个算法理解地非常好了,你才会去做。我一开始上了一些算法课,发现还是不懂。后来实在没办法,有人告诉我,你就背就好了,我背了五十道题之后,就习惯成自然了,理解地更深刻一点。我现在最大的瓶颈就是系统设计。我面亚马逊以及甲骨文的时候,五轮面试里面四轮都是设计题。算法题到现在就遇到一个难的,其他都是中等或者简单。我 Leetcode 也就刷了两百多题,面试还没遇过做不出来的题。但是系统设计不会就是不会,关键是你工作了之后也不会,因为上班也只是个拧螺丝的,也不知道别的组是怎么做的,所以还要自己去学。不是上班多少年就会的。这个我觉得挺关键的。
“你未来有什么打算吗?”
新公司先做着,看一看有没有更好的机会吧。现在公司看起来还不错。选的组还不错。如果以后如果薪资方面会有在三百多百分之五十的机会来。公司和未来前景都不错的地方,我觉得我还可以再试试别的嗯,未来的职业发展,我原来想走管理方向的,后来我发现管理实在太累了,所以以后应该会向纯技术发展。纯技术虽然薪资的瓶颈来得比较早一点,但是投入产出比会比较高。
“最后,对于要到美国留学或者工作的读者,还有什么其他建议吗?”
如果转专业在美国的话在美国的话,目前来看呃,比较稳妥的方式还是转软件工程,但是在国内很多的中介,他可能把数据分析工程师,数据科学家,机器学习等吹捧得过高。实际上在我们公司和我认识了一些在其他公司的情况来讲的话,对数据工程师的需要量是远少于软件工程师的,我认识几个人,实力也挺强的,但是找工作和薪资待遇各方面并不是特别好。如果是想在美国留下来过工作生活平衡的生活,就不要考虑兴趣方面,还是随波逐流比较好,不要太标新立异。还有一个误区就是不不要把太多时间放在一些网课上。如果想就业的话,你应该去真正的了解一下实际上工业项目是怎么做的。或者他们具体需要怎样的技术。比如现在 docker 没有那么火了,但是学校里面还是把这东西当成非常热门非常新的技术。其实不一定很多人在用这些东西。所以除了学校的东西还需要去自学。