Overseas Rabbit | 海外兔

从汽车工程师转变为软件工程师

家好,我是 Xiaosong,之前在 DLR 担任汽车工程师,最近入职了甲骨文云计算的基础架构部门。从读研究生到工作这段时间,我在美国待了三年时间。


“你当初为什么来到美国的?这里的哪些方面吸引你从德国过来?”

我本科在上海科学技术大学就读机械专业,通过学校的交流项目后来在德国埃斯林根应用技术大学获得汽车工程的硕士学位。刚开始我在德国 DLR 公司负责车辆传感器和组件的评估工作,那时候感觉德国实在太无聊,我已经在考虑回国了,后来因为家人的因素来到了美国。由于美国制造业形势和薪资待遇都不太好,而且刚来的时候没有身份,所以我在这里攻读软件工程硕士,毕业后就在这里工作了。美国吸引我的是它像中国一样比较注重公平,有多少能耐就赚多少钱,虽然同样缴纳快 40% 的个人所得税,但是工资的绝对值要高得多。相反的话西欧的国家更倡导平等,大家赚的钱也都差不多。

“你是如何选择合适的学校的?”

我在美国就读的是加州州立大学富尔顿分校,这个学校在本地的口碑还不错。我选择这里的主要原因是价格便宜,其他学校一年可能就要5万美元,但是这里学费,住宿费,停车费和保险费全加起来也就3万3美元左右,加上18个月就能毕业,三年的 OPT 签证,而且作业都是一些简单的就业项目。

“你本身不是计算机专业,那么是如何从零学习编程,弥补简历以及项目经验的劣势?”

学习编程的过程中,我最感谢的是一位同班同学,他之前在国内已经工作了三年,最近入职了亚马逊。他在我们学校里算经验比较丰富,所以基本他做什么我就做什么。他带着我刷题,上论坛,上 Leetcode 注册会员,要是我准备去哪个公司面试,他会先去面试然后再和我讲面试面了什么,有这样的一位同学或者学校有这种氛围,能省下许多时间。简历方面,虽然我现在只有一年的工程师经验,但是拿到面试的概率还是挺大的。根据我的经验,美国的 HR 虽然对技术细节都不太了解,不过他们在脑海中大致会有一个模版或者参照的例子,如果这个人的简历写成这样,那么大概率面试会过,如果写成其他样子,那么通过面试的概率不大。改进简历有几个方法,第一,一亩三分地上有人会把自己的简历放上去请大家给建议,你一眼就能看出来哪些写得不错,哪些写得不行,可以学习那些写得好的人。第二,我一开始写简历的时候,也是用一些花花绿绿的模版,写得比较花哨,所以也没人理我。后来我在 Overlaf 找了一个朴实无华的 Latex 模版,把内容往里面填上去,再把关键词写上,拿到面试的概率也高了很多。项目经验方面,我报了一个项目培训班,不过在实际面试中我基本没遇到问项目细节的,仅有几次是因为我之前做过的东西跟他们做的差不多所以面试官问了一下。还有因为我考了 AWS 助理架构师的证书,面试官问了我一些架构设计方面的问题。所以我觉得项目经验是可以有一些水分的,把关键词以及比较时髦的技术写在简历上会比较加分,实际面试中很少面试官会去问,因为每个人的做法不一样,也没法去验证。

“你上过哪些培训课程?从里面推荐一个课程的话,你会推荐哪个?”

我上过九章算法和来 offer 的编程班,九章算法的班挺便宜,也就一两百块,来 offer 不差钱的话也可以考虑报名。你问我值不值呢?我觉得不是特别值。但是有没有帮助呢?肯定是有帮助。如果有一位朋友之前上过了,他/她知道这些套路给我讲一遍的话,那么不去上这些班也没什么影响。不过如果是一个刚毕业什么也不懂的学生,找一个九章算法或者来 offer 的项目班去听一听可以节省许多时间。对于一些有算法能力,例如 Leetcode 已经刷了 200 道题,简历也没有什么问题的同学,我推荐上一门叫 Leetcode 算法题型总结的课,这个课对面谷歌这类的公司应该会很有帮助。如果只想面亚马逊,甲骨文这种对算法没那么重视的公司,或者简历还不太行的话,可以报一个九章的项目班或者系统设计的班。几百块就可以学习到很多内容。

“转专业的过程中,你遇到最大的困难是什么?”

我最大的困难就是不知道学什么,以及哪个东西学到什么程度就够了。因为找工作的话,你需要比较全面的技能,如果没有一个有工作经验的人带你的话,你不知道你最欠缺的是什么,我比较幸运,我有三个同学都是在国内工作过的,在学校中算技术比较好的。他们会告诉我需要学什么,需要补哪方面的知识,这点很重要,可以节约很多时间。而且学校的氛围也很重要,如果你所有的同学都是搞学术的,那就不太适合找工作。因为他们不懂就业市场喜欢什么。比如现在 docker 没有那么火了,但是学校里面还是把这东西当成非常热门非常新的技术。其实不一定很多人在用这些东西。所以除了学校的东西还需要去自学。


我会上学第一天就开始刷题,然后学习系统设计。

“如果能够重来一遍,你会做哪些不一样的东西呢?”

我会上学第一天就开始刷题,然后学习系统设计。刷题需要熟能生巧,不一定是算法理解地非常好才会做。我一开始上了一些算法课,发现还是不懂。后来有人告诉我背就好了,我背了五十道题之后,就习惯成自然了,理解地更深刻一点。到现在为止,我 Leetcode 也就刷了两百多题,不过面试还没遇过做不出来的题。我现在最大的瓶颈就是系统设计。我面亚马逊以及甲骨文的时候,五轮面试里面四轮都是设计题。系统设计不会就是不会,关键是你工作了之后也不会,因为上班也只是个拧螺丝的,也不知道别的组是怎么做的,所以还要自己去学,不是上班多少年就会的。这个我觉得挺关键的。

“你对于转专业有什么看法吗?你会劝其他专业的人转软件工程吗?”

我原本是强烈建议转软件工程师的,不过现在不太建议了。第一是疫情的原因,我认识很多 USC,UCI 这些不错的学校今年毕业的学生,他们的 CS 就业没有受到太大影响,不过电子工程专业转软件工程师的就业率很低,在 10% 到 30% 左右。而去年之前都能达到百分之七八十。第二是转专业的窗口在慢慢缩减,机会越来越少了。这个行业一开始实在人才紧缺,所以才会开一个窗口给其他专业的人转过来,但是如果供求比差不多的话,那么就会开始良币驱逐劣币。第三是个人因素,差不多是一年以前吧,我在一亩三分地发了个转专业的贴子,主动来找我的大概 50多个人,真正入学的大概十个,到最后就业成功的也就几个同学。就像学数学一样,有的人学很多很多遍,也不会这个数学题。如果有身份的话其实不一定要转软件工程师,有许多其他选择,比如做柜台,做一些商业推广,商业分析这些都可以。


靠谱的内推是很重要的。

“你是如何找到自己的第一份工作的?为什么离开上一家公司然后加入甲骨文?”

我找工作的过程比较顺利,经过朋友的内推进入了一家中型的电商公司 iHerb,一开始我的岗位是全栈工程师,因为研究生的时候比较忙,也没学习到太多东西,所以什么也不懂,压力非常大,不过同事都挺好的,所以不懂就问问同事,一边上班一边学。后来感觉软件工程做起来也没什么太大压力。每天工作真正工作的时间为六个小时,其他时间就在跟同事聊聊天吃顿饭,每天有两小时写代码的时间就很多了。最近由于公司重组,我的组长和几位同事都离职了,正好一位同事的堂哥在甲骨文做经理,所以内推我去面试,最后给的薪资也不错,所以我就加入了甲骨文,现在入职了两个月的时间还在培训的阶段,靠谱的内推是很重要的。

“你如何看待印度人在公司抱团这样的说法?你有遇过这样的情况吗?”

我没有遇过印度人抱团影响我的事情,我觉得每一个人你如果你想在一个新环境混下去的话,你肯定得找个组织吧。像我也一直找组织,找亚洲人比较多的公司以及亚洲人比较多的组,在亚洲人比较多的组里面,大家压力都没那么大,也比较好交流。我感觉我们组的印度人我觉得都蛮好的,我上学时候的印度朋友也不错。虽然沟通交流上面有一些小问题,但是总体来说都挺好的。

“你未来有什么打算吗?”

新公司先做着,看一看有没有更好的机会吧。现在公司看起来还不错。选的组还不错。如果以后如果薪资方面会有在百分之五十的增幅。公司和未来前景都不错的地方,我觉得我还可以再试试别的公司,未来的职业发展,我原来想走管理方向的,后来我发现管理实在太累了,所以以后应该会向纯技术发展。纯技术虽然薪资的瓶颈来得比较早一点,但是投入产出比会比较高。

“最后,对于要到美国留学或者工作的读者,还有什么其他建议吗?”

如果转专业在美国的话在美国的话,目前来看比较稳妥的方式还是转软件工程,但是在国内很多的中介,他可能把数据分析工程师,数据科学家,机器学习等吹捧得过高。实际上在我们公司和我认识了一些在其他公司的情况来讲的话,对数据工程师的需要量是远少于软件工程师的,我认识几个人,实力也挺强的,但是找工作和薪资待遇各方面并不是特别好。如果是想在美国留下来过工作生活平衡的生活,就不要考虑兴趣方面,还是随波逐流比较好,不要太标新立异。还有一个误区就是不不要把太多时间放在一些网课上。如果想就业的话,你应该去真正的了解一下实际上工业项目是怎么做的。