写点什么

乘着汽车智能化的浪潮,“汽车人”职业方向的选择(一)

发布于: 2 小时前

上篇文章介绍了我那些传统汽车行业的朋友,文中三个例子均是从传统行业跳槽转换了职业方向,观点可能有些片面,但也能代表汽车行业一部分人的现状。

 

今天,我想结合朋友和我的跳槽的经历,谈谈汽车智能化浪潮下,“汽车人”的职业方向选择。

 

在开始今天的话题之前,先声明一下:由于本人经验和职业方向的限制,该文章的讨论范围基本限于汽车电子软件方面

 

对于汽车电子软件,可以进行以下分类:

  • 按照开发主体分为:嵌入式开发和单片机(MCU)开发;

  • 按照底层平台分为:Linux、QNX、Andorid、OSEK(AutoSAR Classic)、ROS;

  • 按照岗位分为:系统工程师、软件开发工程师、软件测试工程师、系统测试工程师。

 

为了更明确的选择职业方向,不可不将“汽车人”们的工作方向和技术栈,作一个大概的分析,以便大家更准确的进行参考。

 

那么,“汽车人”的工作方向和技术栈是怎样的呢?

 

软件开发工程师。汽车行业对于程序员的要求相比于互联网/IT 行业低一些,他们只需了解基本的数据结构和算法,其主要编程语言是 C 和 C++。然而,汽车行业的程序员也分为很多种,本文讲讲我最熟悉的 MCU 软件和嵌入式 Linux 软件开发。

 

这两种岗位对于软件开发人员的要求与互联网/IT 企业不同,他们不需要具备深厚的数据结构和算法知识,也不要求掌握设计模式和软件架构等方面的专业知识。

 

然而,他们需要具备对于底层硬件、软件、交叉编译、驱动等方面的知识储备。

 

当然,如果你具备上述非强制要求的知识,固然很好,但我认为你大概不会选择进入汽车行业做程序员。

 

MCU 开发工程师要求熟悉多种芯片,比如瑞萨和英飞凌、熟悉 AutoSAR Classic、熟悉 CAN 与 LIN 通信、熟悉各种硬件,且基本只有传统零部件供应商才有招聘需求,因此很难进入各大 OEM、造车新势力和明星初创公司。

 

由于 AutoSAR Classic 标准很成熟,且工具链供应商提供的符合 AutoSAR 标准的工具已十分成熟,因此 MCU 工程师基本都是 AutoSAR Classic 标准进行上层业务开发。

 

比如,购买了 Vector 的工具后,BSW 和 RTE 层等全是可配置的,开发人员只需要根据需求完成上层业务开发即可。

 

由于 AutoSAR 标准仅适用于汽车行业,因此汽车行业的 MCU 工程师跳槽后就业方向,破圈比较困难。

 

另外一点,由于各零部件厂商使用 MCU 开发的产品基本都是成熟产品,程序员们大都是根据需求小修小改或者解决 bug,从头开始进行正向研发的项目并不会太多。

 

相比于 MCU 开发,嵌入式 Linux 开发工程师不要求熟悉各种硬件设备,但需要熟练使用 Linux、熟悉多线程和多进程、熟悉 IPC 通信、熟悉网络通信。另外,由于 Linux 内部工具众多,因此使用 shell、cmake、python 等做工具和构建软件等也是基本能力要求。

 

上述这些只是最基本的技术栈,根据产品不同,要求掌握的技术细节也会有所不同。比如,以太网通讯就需要熟悉 SOMEIP 和 TCP/IP 协议,4G 通讯则需要熟悉 MQTT 和 OPENSSL 协议,做音频则可能用到 ffmpeg 等等。

 

嵌入式 Linux 开发工程师要求这么多,并非坏事,因为汽车行业对于嵌入式 Linux 的需求来自零部件供应商、传统 OEM、造车新势力、智能和自动驾驶初创企业,可以这么说几乎汽车行业所有环节都有需求。

 

此外,互联网和 IT 企业对于嵌入式 Linux 的需求也很大,比如手机、智能手表等大量智能设备。

 

就我个人看来,汽车智能化的过程中对于 Linux 的使用会越来越多,需求也会越来越大。哪怕以后不想从事汽车行业,嵌入式 Linux 开发工程师跳槽到互联网和 IT 企业也没什么太大的难度。

 

当然,汽车行业程序员还包括功能安全、算法开发和软件架构等岗位,但我除了对功能安全有些经验外,另外两个岗位不太了解,就不在展开了。

 

为什么我不介绍功能安全岗位呢?

 

首先,我认为经验过于浅薄,且功能安全实在过于复杂。这个岗位应该属于 MCU 开发方向,因为它要求工程师不仅具备扎实的软件知识,还要具备丰富的硬件知识,对于软件开发工程师的要求过多,且工作内容极其庞杂。

 

如果你是经验浅薄或者转行做程序员的朋友,我建议这个岗位就不要看了,因为真的无法胜任。哪怕你是经验丰富的工程师,也要经过大量的培训才能慢慢转到这个方向。

 

其次,具备功能安全级别的产品一般都是成熟的产品和平台,目前我还未见过从头开发的功能安全产品,所以我就不深入介绍这个岗位了,以免误导了大家。

 

限于文章篇幅,本文就先介绍汽车行业中软件开发程序员的工作方向和技术栈,至于软件测试和系统相关岗位将放在后续文章中进行介绍。


作者:程序猿司晨

文章来源:上汽零束 SOA 开发者论坛

原文链接:https://bbs.z-onesoft.com/omp/community/front/api/page/mainTz?articleId=7500

用户头像

还未添加个人签名 2021.09.06 加入

还未添加个人简介

评论

发布
暂无评论
乘着汽车智能化的浪潮,“汽车人”职业方向的选择(一)