汽车人Java转行知识地图

汽车电子与软件 2022-12-31 20:47


围绕汽车人职业生涯的讨论,比以往时候来得更猛烈些。有精耕细作、精益求精的传统荣光坚守派;有从头再来,回炉重造的风口浪尖追逐派;有左顾右盼、瞻前顾后的十字路口犹豫派。汽车人群体正在经历青春叛逆期,但其实无论如何选择,绝大多数人共同走向的还是“不如狗”的中年。

风口浪尖追逐派支持者的汽车人,选择的转型之路五花八门,转码便是其中的一个火热方向。对于汽车人而言,转岗热门赛道的产品、项目、测试等岗位门槛稍低,这也成为了绝大部分人转行的首选。而对于代码开发这一领域,由于绝大部分汽车人毕业于机械、车辆、材料等专业,大学期间一般只水过一个C语言,导致计算机领域的系统知识比较薄弱。隔行如隔山,代码开发对于大部分汽车人一直披着神秘的面纱,有一种秦淮河上朦胧的美感。

而在代码开发的细分领域,Java开发需求较大,薪水天花板较高,在互联网公司处于非常重要的地位。同时伴随着主机厂数字化转型的高涨热情,一大批数字化新平台的建设也被纳入主机厂的下一个五年规划,随之而来的便是急剧增长的主机厂服务平台端或TSP平台的开发需求。可以预见的是,Java开发在收割了互联网红利之后,必将在主机厂收割第二波韭菜。

本文作者是汽车人中风口浪尖追逐派的一位实践者,但是支持、尊重任何一派的观点、见解,看好任何一派的前途,“钱”途。本文作者通过总结自己零基础转码车联网项目平台端Java开发过程中的经验教训,为有相似想法的同道中人提供一条可借鉴的学习之路。故在职业转型规划第二期,作者就围绕Java开发职位概况、薪资水平、知识地图等方面来做相关分享。

职位概况
2022


Java这个词应该铭刻在绝大多数80后的脑海中,在那个塞班系统一统江湖的年代,当你打开诺基亚手机上自带的小游戏,游戏启动过程的第一个界面就是Java语言的logo。


随着塞班系统的没落,Java语言却没有一起销声匿迹,反而由于自身的诸多优势,逐渐在面向对象的编程语言中站稳脚跟。与其它同类编程语言相比,Java语言由于JVM(JavaVirtual Machine,Java虚拟机)的存在,具有更加良好的跨平台可移植性。同时独特的内存管理机制(去掉了头文件、指针、结构、联合等内容),还可以极大减少错误发生的几率。加之非常简单易学的特点,使其成长为非常适合大型软件设计和开发的一门语言。

Java语言目前在网站,游戏,安卓应用等开发领域有着广泛的应用。且随着智能手机以及物联网设备的大面积普及,我们每个人的生活也都与Java息息相关。促销季你在某宝,某东上的纵情下单;上班摸鱼时在股票金融市场的高抛低吸;认真工作时在各类管理系统的肆意点击,背后往往都是一条条Java代码的辛勤忙碌。

Java语言应用最广泛的领域还是企业级应用的开发,即很多人理解的服务端开发,包括当下热度高涨的大数据工程。Java语言的企业级应用,称为JavaEE,是一个由JVM+API+大规模+多层的+可扩展的+可靠+安全+网络组成的应用程序。对于没有计算机经验的人而言,这个解释可能不太容易理解,下面以一个简单的例子说明。

在互联网电商的管理系统中,一个典型的B/S(Browser/Server,浏览器/服务器)架构系统可以用下图简单表示。我们每个用户都需要通过电脑浏览器/APP等方式访问电商网站,实现在该电商平台商品搜索、下单、支付、退货等功能。浏览器/APP是以网页或APP的形式展示内容,这一块称为表示层。表示层通过接口将用户请求传递至服务器,由业务服务器进行运算处理。业务服务器针对表示层传来的指令进行判断,如对用户下单这一操作,业务服务器需要判断支付是否成功,从而进行后续订单数据的流转等操作,这部分内容属于应用层。应用层的服务通过指令操作数据层的数据库,查询或修改各类数据,如新增用户的订单信息,商品库存的增减等。

Java语言开发工程师的工作,主要便是完成类似需求,实现上文所述的企业级应用,或是对已有的系统二次开发。工作涉及需求评审、PRD评审、技术方案评审、测试用例评审等等,并根据产品给出的方案完成后续服务端的开发。

薪资水平
2022


如不局限于某一业务领域,下图为某招聘网站上海互联网中厂(500-1000人)1-3年经验Java工程师的薪资水平。相较于汽车传统业务工程师而言,这个薪资水平具有较大的优势。


下图为职友集上2021年Java开发工程师的薪酬统计。根据此数据,平均工资在20K,75%的Java开发工程师月薪在15K以上,50%的工程师月薪在20K以上。根据笔者与同事和同行们的私底下交流情况来看,这个统计数据可信度还是比较高。


而在汽车行业,尤其是新四化方向,Java开发方向的工作机会和薪酬也在持续增长,新势力们对于Java开发的需求相较于传统主机厂更大。下图为头部新势力对Java开发岗位的一个薪资情况。


知识地图
2022


Java开发,不仅需要掌握编程语言本身,还需要对计算机领域的系统知识有一定程度的掌握。这些系统知识可以帮助你从一个Java初级开发工程师快速升级为Java高级开发工程师,同时有助于建立你在代码开发领域再次转岗的能力。车辆,机械,生化等专业的汽车工程师,一般会缺乏计算机软硬件和算法的基础知识,转行Java开发所需的努力相较其它专业势必需要付出更大的努力。

Java开发的知识地图在网络论坛上层出不穷,作者转行之初也是看的云里雾里,网上课程更是眼花缭乱让人无法挑选。通过上图招聘需求中我们可以了解到汽车行业对于Java开发工程师的关键技能需求,涉及到Spring、Linux、数据库、容器等内容。笔者根据自己的转行经验整理了如下的学习路径,并推荐了相关自己已经摸烂的书籍。当然,一个好的网课或者线下课程会对技术能力的提高起到事半功倍的作用。

Step 1:计算机基础

学习内容:计算机组成原理、操作系统、计算机网络、数据结构+算法、密码学

时间:3M-6M

不夸张的说这几门学科在CS(Computer Science,计算机科学)的作用就好像张无忌修炼的《九阳神功》,是提升内功心法的独门秘籍。

计算机组成原理:主要用于了解计算机的硬件部分。作为Java开发,你虽然不用知道CPU每一个电路是怎么运行的。但当懂得寄存器、缓存、内存、外存这些概念时,代码的书写思维将有很大提升。在设计大型软件或系统时,经常应用到空间换时间,时间换空间,这些都需要强大的计算机硬件基础来支撑。可以说,只有懂计算机组成原理,才能设计出更稳健、响应速度更快的软件系统。

操作系统:主要用于了解计算机的软件部分。操作系统介绍的是资源的调度和分配。如果对操作系统调度原理、时间片等概念没有足够深刻的理解,是不可能做好服务端开发的。尤其遇到高并发、多线程造成的bug时,如果对操作系统没有深入理解,很难解决。

计算机网络:当前软件开发基本都是 B/S,C/S,P2P的架构,构建这些系统的一大基础就是计算机网络,需要理解各网络协议的OSI分层,以及各层的协议和实现方式。

数据结构+算法:正如 N.Wirth 教授所说“数据结构+算法=程序”。遇到一个实际问题,需要充分利用所学的数据结构,将数据及其之间的关系有效地存储在计算机之中,然后选择合适的算法策略,并用程序高效实现。对于企业级应用而言,大量指数级时间复杂度的查询语句会是一个噩梦。对于其它偏向底层和实时性的应用来说,数据结构和算法更为重要。

密码学:密码学是网络安全、信息安全、区块链等产品的基础,常见的非对称加密、对称加密、散列函数等都属于密码学范畴。当今随着信息安全在各领域都受到了前所未有的重视,作为服务端的开发,方案中的信息安全部分同样是系统设计的重点。

推荐书籍

图解系列:除了各大学出版的教材之外,推荐图解系列丛书,由浅入深,以幽默诙谐的方式教授网络协议、硬件、密码学等技术,比较适合本职工作本就忙碌的汽车人。


算法:非常经典,但对于时间并不充裕的小伙伴可暂不作要求。


Step 2:Linux、C/C++、数据库


时间:6M

Linux:服务端使用的Linux发行版本一般为CentOS,Java开发需要了解Linux系统的文件结构,权限,基本操作,主要用来部署开发环境,查看日志,验证bug等工作。

C/C++:Java本身也是从C++衍生而得,通过学习C/C++,对面向过程的语言和面向对象的语言有一个初步的了解。

数据库:非常重要,互联网最具价值的是数据,任何编程语言都需要解决数据存储问题,而数据存储的关键技术是数据库。MySQL和Oracle都是广受企业欢迎的数据库管理系统。Java程序和数据库通信的最常见技术是JDBC、Druid和C3P0。学习这些数据库技术后,可以掌握复杂业务表结构设计规范、SQL语句的编写。同时针对高并发查询的场景,Java开发工程师们还需要了解数据库的分库分表。

推荐书籍

鸟哥的 Linux 私房菜:一本非常畅销的Linux 入门书籍,由台湾的VBird大侠编写,作者也并非计算机科班而是环境专业出身,比较适合零基础的同学。这本书的第一章会从电脑结构开始讲起,不需要了解任何编程语言也能读完整本书。Shell编程对于运维要求更高,Jave开发工程师仅需要能够看懂即可。


C++ Primer Plus:笔者在刚立下转行flag时,初学C语言和C++用的是本科旧书堆里找出的谭浩强系列,比较晦涩,不好理解。C++ PrimerPlus书籍同时包括了C和C++的内容,配套练习完善,对各技术细节写得比较透彻。学透需要花费不少时间,但还是值得的。


数据库系统概念:数据库系统方面的经典教材之一,其内容由浅入深,主要介绍数据库系统的基本概念,包括数据库设计、数据库语言和系统实现。


MySQL 8 Cookbook &高性能MySQL:在拥有数据库基础之后,直奔当今最流行的关系型数据库MySQL的学习。MySQL 8 Cookbook偏向于应用,对于SQL的DML和DDL、性能调优、日志等讲解深入浅出。而高性能MySQL内容涵盖MySQL的架构和历史,基准测试和性能剖析,数据库软硬件性能优化,复制、备份和恢复,高可用与高可扩展性,以及云端的MySQL和MySQL相关工具等方面的内容。每一章都是相对独立的主题,读者可以有选择性地单独阅读。


Redis:Redis作为非关系型数据库的一个代表,需要熟练应用并掌握核心原理。


Step 3:Java,Spring,前端

时间:3M-6M

Java重点知识:jdk,数据类型、流程控制,面向对象、多态,数组、集合、异常处理,IO流、String/StringBuffer/StringBuilder、线程、并发、反射、泛型。

Spring重点:SpringMVC,SpringBoot+Mybatis和SpringCloud。理解Spring框架,涉及AOP 和 IOC 、 bean 的作用域与生命周期、SpringMVC 工作原理等。着重学习SpringBoot的使用和内部原理,包含微服务概念、配置文件、日志框架的使用、web开发等。Mybatis主要学习配置文件编写、动态SQL、MyBatis缓存机制、MyBatis-Spring整合等。Springcloud各组件中服务发现注册、消息队列、分布式管理等。

前端基础知识:HTML、CSS、JS、jQuery框架、Servlet程序、Filter过滤器、Listener监听器、JSP页面、EL表达式、JSTL标签库、Cookie技术、Session会话、JSON使用、Ajax请求等等......当前的技术架构是前后端分离的方式,只有懂前后端的交互方式的,才能更顺利和前端工程师沟通,同时也能够更好的把握整体的技术架构。

推荐书籍

疯狂Java讲义:对于Java基础语法、知识点讲解细致,但AWT、Swing、Java GUI等过时内容的篇幅也不少。

 


Effective Java:神作,涉及Java的设计原则,Java 进阶必备,强烈推荐。

 


Spring:这三本是笔者学习Spring和微服务的书籍,有原理讲解,通俗易懂。



Step4:云原生

时间:1M

当前的云服务流行云原生(CloudNative),意为生于云,长于云,一款应用在设计之初就考虑到如何在云上以最佳方式运行,能以最短路径上云,充分发挥云的优势。技术主要由微服务 + DevOps + 持续交付 + 容器化组成。

持续集成:当前主要工具为Jenkins,实现了CI/CD的一个工作模式,作为开发需要了解Gitlab+Jenkins的过程。

容器化:Docker+K8S。需要掌握传统服务和微服务都适用的Docker化思路;学会Docker私有仓库的搭建和镜像管理;了解K8S对象及资源规范,API基础及基本应用,容器集群的状态管理,日志监控等。

推荐书籍

在SpringCloud的相关书籍中,已有docker的相关知识和实践。对于本阶段的学习可以按需进行。


Step4:项目实践,编写简历,面试

最关键的一步,对于汽车转行人而言,最匮乏的就是项目实践经历,以致很难通过简历关,更不用谈面试了。
 
因此,无论是找相关岗位的同事、网上培训班还是其它方式,尽早在指导下独立完成一个实战项目,并能够说清其中所用的架构、技术细节,同时具备一定的编码能力,很多公司还是愿意给机会的。

推荐书籍

相关的Java面试书籍大同小异。此阶段推荐Java服务端研发知识图谱以及阿里的Java编码规范,作为整体知识体系的巩固和编码规范的建立。


职业发展
2022


在各种技术论坛上,Java开发常会戏称自己为CRUD(Create、Retrieve、Update、Delete,增加、检索、更新、删除)工程师。的确,目前的软件框架已经把开发工作变得十分清爽,Java开发的日常工作更多是SpringBoot开发,写写Controller、Service、SQL等。但对于不随波逐流的Java开发来说,做好本职工作的同时,还可以紧跟当今服务端技术的迭代和变革,深挖框架背后原理,深究技术方案细节,消化、吸收、创新,不断点亮自己的技能树、构筑牢固的竞争壁垒。

不过,需要提醒的是,互联网行业Java初级开发工程师基本处在一个饱和的状态,“上岸”门槛已不如五六年前轻松。但随着主机厂数字化转型的深入,智能网联技术的发展,Java开发需求势必在主机厂迎来一波高潮。同时,汽车人对主机厂PDM、BOM等系统的数据模型和流程更加熟悉,对整车开发流程和主机厂内部的生存法则也深谙于心。如有Java加持,业务能力上会有一种如虎添翼的感觉。

格局有大小、人品有好坏,但岗位无高低,追求无对错。重要的是选择一条路,一条自己钟爱、认可的路,坚持走下去,有规划的勤奋者终将有回报。


作者 | 18号线不到安研路
初心 | 记录生而为人的证据,分享工农阶层原创作品,聚焦智能网联与人情冷暖。
声明 | 本文部分文字及图片资料取自网络,如有侵权,请联系平台进行修改或删除;文章属于作者本人,仅代表个人观点,不代表平台立场,如有不妥,也请联系平台修改或删除;本文不作任何商业用途。

汽车电子与软件 主要介绍汽车电子软件设计相关内容,每天分享一篇技术文章!
评论
  • By Toradex 秦海1). 简介嵌入式平台设备基于Yocto Linux 在开发后期量产前期,为了安全以及提高启动速度等考虑,希望将 ARM 处理器平台的 Debug Console 输出关闭,本文就基于 NXP i.MX8MP ARM 处理器平台来演示相关流程。 本文所示例的平台来自于 Toradex Verdin i.MX8MP 嵌入式平台。  2. 准备a). Verdin i.MX8MP ARM核心版配合Dahlia载板并
    hai.qin_651820742 2025-01-07 14:52 45浏览
  • 每日可见的315MHz和433MHz遥控模块,你能分清楚吗?众所周知,一套遥控设备主要由发射部分和接收部分组成,发射器可以将控制者的控制按键经过编码,调制到射频信号上面,然后经天线发射出无线信号。而接收器是将天线接收到的无线信号进行解码,从而得到与控制按键相对应的信号,然后再去控制相应的设备工作。当前,常见的遥控设备主要分为红外遥控与无线电遥控两大类,其主要区别为所采用的载波频率及其应用场景不一致。红外遥控设备所采用的射频信号频率一般为38kHz,通常应用在电视、投影仪等设备中;而无线电遥控设备
    华普微HOPERF 2025-01-06 15:29 127浏览
  • 根据环洋市场咨询(Global Info Research)项目团队最新调研,预计2030年全球无人机锂电池产值达到2457百万美元,2024-2030年期间年复合增长率CAGR为9.6%。 无人机锂电池是无人机动力系统中存储并释放能量的部分。无人机使用的动力电池,大多数是锂聚合物电池,相较其他电池,锂聚合物电池具有较高的能量密度,较长寿命,同时也具有良好的放电特性和安全性。 全球无人机锂电池核心厂商有宁德新能源科技、欣旺达、鹏辉能源、深圳格瑞普和EaglePicher等,前五大厂商占有全球
    GIRtina 2025-01-07 11:02 71浏览
  • 村田是目前全球量产硅电容的领先企业,其在2016年收购了法国IPDiA头部硅电容器公司,并于2023年6月宣布投资约100亿日元将硅电容产能提升两倍。以下内容主要来自村田官网信息整理,村田高密度硅电容器采用半导体MOS工艺开发,并使用3D结构来大幅增加电极表面,因此在给定的占位面积内增加了静电容量。村田的硅技术以嵌入非结晶基板的单片结构为基础(单层MIM和多层MIM—MIM是指金属 / 绝缘体/ 金属) 村田硅电容采用先进3D拓扑结构在100um内,使开发的有效静电容量面积相当于80个
    知白 2025-01-07 15:02 75浏览
  • 在智能家居领域中,Wi-Fi、蓝牙、Zigbee、Thread与Z-Wave等无线通信协议是构建短距物联局域网的关键手段,它们常在实际应用中交叉运用,以满足智能家居生态系统多样化的功能需求。然而,这些协议之间并未遵循统一的互通标准,缺乏直接的互操作性,在进行组网时需要引入额外的网关作为“翻译桥梁”,极大地增加了系统的复杂性。 同时,Apple HomeKit、SamSung SmartThings、Amazon Alexa、Google Home等主流智能家居平台为了提升市占率与消费者
    华普微HOPERF 2025-01-06 17:23 145浏览
  • 大模型的赋能是指利用大型机器学习模型(如深度学习模型)来增强或改进各种应用和服务。这种技术在许多领域都显示出了巨大的潜力,包括但不限于以下几个方面: 1. 企业服务:大模型可以用于构建智能客服系统、知识库问答系统等,提升企业的服务质量和运营效率。 2. 教育服务:在教育领域,大模型被应用于个性化学习、智能辅导、作业批改等,帮助教师减轻工作负担,提高教学质量。 3. 工业智能化:大模型有助于解决工业领域的复杂性和不确定性问题,尽管在认知能力方面尚未完全具备专家级的复杂决策能力。 4. 消费
    丙丁先生 2025-01-07 09:25 80浏览
  • PLC组态方式主要有三种,每种都有其独特的特点和适用场景。下面来简单说说: 1. 硬件组态   定义:硬件组态指的是选择适合的PLC型号、I/O模块、通信模块等硬件组件,并按照实际需求进行连接和配置。    灵活性:这种方式允许用户根据项目需求自由搭配硬件组件,具有较高的灵活性。    成本:可能需要额外的硬件购买成本,适用于对系统性能和扩展性有较高要求的场合。 2. 软件组态   定义:软件组态主要是通过PLC
    丙丁先生 2025-01-06 09:23 85浏览
  • 彼得·德鲁克被誉为“现代管理学之父”,他的管理思想影响了无数企业和管理者。然而,关于他的书籍分类,一种流行的说法令人感到困惑:德鲁克一生写了39本书,其中15本是关于管理的,而其中“专门写工商企业或为企业管理者写的”只有两本——《为成果而管理》和《创新与企业家精神》。这样的表述广为流传,但深入探讨后却发现并不完全准确。让我们一起重新审视这一说法,解析其中的矛盾与根源,进而重新认识德鲁克的管理思想及其著作的真正价值。从《创新与企业家精神》看德鲁克的视角《创新与企业家精神》通常被认为是一本专为企业管
    优思学院 2025-01-06 12:03 119浏览
  • 本文介绍Linux系统更换开机logo方法教程,通用RK3566、RK3568、RK3588、RK3576等开发板,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。制作图片开机logo图片制作注意事项(1)图片必须为bmp格式;(2)图片大小不能大于4MB;(3)BMP位深最大是32,建议设置为8;(4)图片名称为logo.bmp和logo_kernel.bmp;开机
    Industio_触觉智能 2025-01-06 10:43 87浏览
  • 根据Global Info Research项目团队最新调研,预计2030年全球封闭式电机产值达到1425百万美元,2024-2030年期间年复合增长率CAGR为3.4%。 封闭式电机是一种电动机,其外壳设计为密闭结构,通常用于要求较高的防护等级的应用场合。封闭式电机可以有效防止外部灰尘、水分和其他污染物进入内部,从而保护电机的内部组件,延长其使用寿命。 环洋市场咨询机构出版的调研分析报告【全球封闭式电机行业总体规模、主要厂商及IPO上市调研报告,2025-2031】研究全球封闭式电机总体规
    GIRtina 2025-01-06 11:10 104浏览
  •     为控制片内设备并且查询其工作状态,MCU内部总是有一组特殊功能寄存器(SFR,Special Function Register)。    使用Eclipse环境调试MCU程序时,可以利用 Peripheral Registers Viewer来查看SFR。这个小工具是怎样知道某个型号的MCU有怎样的寄存器定义呢?它使用一种描述性的文本文件——SVD文件。这个文件存储在下面红色字体的路径下。    例:南京沁恒  &n
    电子知识打边炉 2025-01-04 20:04 100浏览
  • 这篇内容主要讨论三个基本问题,硅电容是什么,为什么要使用硅电容,如何正确使用硅电容?1.  硅电容是什么首先我们需要了解电容是什么?物理学上电容的概念指的是给定电位差下自由电荷的储藏量,记为C,单位是F,指的是容纳电荷的能力,C=εS/d=ε0εrS/4πkd(真空)=Q/U。百度百科上电容器的概念指的是两个相互靠近的导体,中间夹一层不导电的绝缘介质。通过观察电容本身的定义公式中可以看到,在各个变量中比较能够改变的就是εr,S和d,也就是介质的介电常数,金属板有效相对面积以及距离。当前
    知白 2025-01-06 12:04 173浏览
  • 随着市场需求不断的变化,各行各业对CPU的要求越来越高,特别是近几年流行的 AIOT,为了有更好的用户体验,CPU的算力就要求更高了。今天为大家推荐由米尔基于瑞芯微RK3576处理器推出的MYC-LR3576核心板及开发板。关于RK3576处理器国产CPU,是这些年的骄傲,华为手机全国产化,国人一片呼声,再也不用卡脖子了。RK3576处理器,就是一款由国产是厂商瑞芯微,今年第二季推出的全新通用型的高性能SOC芯片,这款CPU到底有多么的高性能,下面看看它的几个特性:8核心6 TOPS超强算力双千
    米尔电子嵌入式 2025-01-03 17:04 55浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦