上一篇文章 木城:听说你想做一个
汽车软件工程师?(上) 阅读量挺好,于是我打算趁热打铁,加一个番外篇。在本篇文章里,我们来探讨一下一位汽车软件工程师的成长过程。还是那句话:一家之言,姑妄听之!想当年还在校园的时候,我们都被安排好了固定的课程和培养方案,一年一年只要按部就班地选课,最后总能拿到那张毕业证、开始人生的下个阶段。即便是研究生时写论文,也总归有大老板/中老板/小老板们给出方向。等走出了校园才暮然发现,自己再也没有“培养方案”了,每个人的路都是那么的不同,瞬间就被卷在了滚滚红尘之中,零落成泥呀。不过呢少年,既然已经阴错阳差地选择成为了一名汽车软件工程师,那成长道路终归还是有那么一些轨迹可循的。下面我们就来仔细品一品。由于自动驾驶技术
的兴起,汽车软件行业最近正处于一个几十年未见的巨变之中,将来发展的方向仍未可知。但是就未来几年而言,无论你具体从事汽车哪个系统的软件开发,软件的基本构成并不会有太大差异。具体而言可以分成以下几个最重要的模块:
- 传感器软件
- ECU底层驱动
- BootLoader
- 内存管理/内存分配 (Memory Layout)
- 操作系统调度
- 通信模块/通信协议
- 诊断模块/失效管理
- 应用层软件
基于这种软件模块的划分,根据自己的经验,想成为一个优秀的软工程师,我认为需要经历三个阶段:
- 某一模块的专才
- 在擅长某一模块的基础上,对软件整体比较熟悉
- 技术管理人才
某一模块的专才:这是汽车软件工程师的第一阶段。初出校园的时候,我们总是从接触某一个具体模块开始职业旅程的。比如通信/诊断工程师
,自然就开始接触通信、诊断模块。而应用层工程师
会从应用层中的某个具体功能入手。即便是需求工程师
或
测试工程师,也会先负责某个具体模块的需求或者测试工作。在这一阶段,小白们需要做的是迅速掌握自己的模块。对于通信/诊断工程师而言,这个过程比较轻松,半年到一年足够了。所以我在上篇文章里说这个职位很好上手;但是对于应用层软件
的工程师而言就比较蛋疼了,真正上手某个功能模块可能会持续一年以上,甚至两到三年。因为应用层软件耦合性很强,往往要对整个应用层都有了解,才能做好其中某个模块的开发。测试工程师也是同样道理,上手会比较慢一些。总而言之,这一阶段一般是职业生涯的第一到三年,也是每个工程师都要经历的阶段。在擅长某一子系统的基础上,对软件整体比较熟悉 :职业的成长在这一阶段发生分化了。在熟悉了自己的模块以后,我的建议是一定要抓住各种机会,对汽车软件的所有关键模块都有了解。只有这样才能进一步提升自己综合解决问题的能力,使自己的价值获得进一步提升,为以后成为架构师
或者技术管理人才做准备。测试/诊断工程师和驱动工程师
第一个死在这一关。因为他们没有什么好的机会去深入了解别的模块。如果企业比较开放的话,可以多去读别的模块的需求和代码, 然后多向其他工程师请教,这就看少年你自己的技巧了。如果可能的话,这个时候也可以考虑转岗。需求工程师和
测试工程师情况稍微好点,也赶紧开始行动吧。对于应用层软件工程师而言,此时就可以堂而皇之地熟悉各个部分的功能和代码,梳理整个软件的内在关联。你们有足够多的机会对整体软件都有了解。所以我说
应用层软件工程师
的成长性和灵活性是最好的。除了对软件本身的了解,在这个阶段也要尽量熟悉功能安全。说功能安全是现在全行业最热的话题也不为过,一定不要觉得自己不是安全工程师就不需要去了解它。熟悉功能安全也能显著地提升软件工程师的竞争力。如果顺利的话,这个成长的第二阶段会是你职业生涯的第二到五年。有的同学会说,我就想做个螺丝钉,干好自己的本职工作,也不想做管理,熟悉好自己的模块不就完了吗!这个说法我觉得没毛病,但是呢,如果对整体软件都熟悉,第一是可以显著提升你自己在就业市场上的竞争力,同时肯定能够反哺你自己的模块,让你做得更优秀。我始终觉得这是职业成长必不可少的。职业成长的第三个阶段是技术管理人才
在经历了第二阶段以后,一小部分工程师会进入职业生涯的第三阶段,也就是成为项目主管。可以说,这是一个全新的职业阶段,除了
软件工程师本身的工作以外,项目主管还要肩负很多新的挑战,包括并不限于:
- 软硬件选型
- 客户沟通
- 招投标/报价/谈判
- 项目管理
- 团队管理
- 功能安全
- 信息安全
- 质量管理
- 法务、合规
可以说至此已经不再工作在软件开发的第一线了。如何从第二阶段进入第三阶段是个玄学问题。常见的方法有祈祷公司开展新业务、祈祷原项目主管跳槽/高升(大雾.....)、换去新部门、换公司等等,总之就是可遇而不可求了。前些年中国的汽车软件行业发展蓬勃,从无到有、从弱到强,只要有心,跨入第三阶段也是不难的。现在行业整体不景气,加上
汽车软件行业的从业人员越来越多,确实要麻烦了些,但比起国外还是容易的。如果一直没机会或者自己不想成为项目管理人才,在工作四到五年以后可以考虑换一条产品线,来丰富自己的简历。至于选择怎样的部件,可以看看我的下一篇文章。