从车辆工程转行程序员两年,我是这样走过来的

news2024/11/17 17:36:31

毕业已经两年,这意味着从车辆工程转行做程序员已经两年。

这两年来,我从一个C语言都用不熟悉的菜鸟,一步步到现在负责软件多个模块的开发和维护。我走过很多弯路,也踩过很多坑,当然也从中不停地学习和成长。

这篇文章把我这两年走过的路,以及做出的选择回顾一下。一方面是系统的梳理一下过去,另一方面希望为纠结转行的朋友提供一些参考。

转行第一年

转行第一年也是我参加工作的第一年,从学校踏入社会,最大的感受就是车规级ECU开发的流程和步骤竟如此复杂。

在学校时,我单纯的以为ECU的开发就是在单片机上写写代码,实现想要的功能即可。然而,进入公司接触到真正车规级ECU的开发,我才知道自己的想法有多么的天真和幼稚。

目前行业内,汽车ECU的开发遵循“V”模型开发,这是在学校很难接触到的。此外,代码写完、功能实现并不算是完成工作,接下来还要进行静态代码检查和动态代码检查,一是确保代码符合MISR C开发规范,二是规避单片机运行过程中因为中断和共享变量导致意想不到的bug。

很巧的是,我刚进入公司时团队有个项目正在处理静态代码和动态代码检查的问题。leader认为这种事情非常简单和低级,就分配我处理这个事情。当接到这个任务时,我内存压力巨大,毕竟我的C语言水平很差劲,甚至有些代码我都看不懂是什么意思。

任务在身,我只能顶着压力往前冲,为了在工作中好好表现,我花一个月的时间阅读了几本C语言的书籍,并且系统的学习了两个网课,至此我的C语言才算不拖工作后腿。当然,这份任务也让我提前结束了试用期,算是小小的意外之喜。

结束试用期后,我偶然听说团队中另一个项目中功能安全模块人员不足。凭着一贯的敏感,我上网搜索了功能安全的相关信息。在了解功能安全后,我唯一的想法是伴随未来汽车电气化和智能化的趋势,功能安全在开发中所占的比重将会越来越大,从中我看到了这个职业光明的发展前景。因此,我积极向leader争取希望能够承担一部分功能安全的工作。

之后我就跟着老师傅们一起负责功能安全模块,直到项目最终SOP。做功能安全的大半年,我参加了一些ISO26262的相关培训,并且通过实战和培训的结合学到了很多功能安全方面的知识。

目前,就我接受的教育和接触的朋友来说,不论是本科、硕士甚至博士朋友接触功能安全方面的人都很少。然而,整车厂现在越来越重视功能安全,这绝对是一个极好的发展方向。如果不信,去招聘网站搜索“功能安全”,看看各公司开出的薪资就能明白我的意思了。

转行第二年

但好景不长,项目SOP后,团队并没有接新的项目。为了缓解人力资源过剩的问题,leader问我是否有意向转向车联网部门做开发。

当时leader给我两个选择:

(1)基于AutoSAR架构做MCU开发;

(2)基于高通平台做linux C开发。

由于我刚进公司参与的项目就是基于AutoSAR架构的MCU软件开发,我很熟悉AutoSAR架构。然而,MCU开发与硬件耦合度太高,需要软件开发人员具备扎实的硬件知识,这是我非常不喜欢的一点。

考虑到这方面,我找车联网部门的leader咨询了基于高通平台的linux C的开发情况,并且着重问了linux C开发中是否涉及很多硬件知识。

当得知车联网部门中linux C开发主要涉及计算机网络方面知识,并且涉及多线程和多进程开发,同时不需要太多硬件开发知识时,我很不争气的心动了...

此外,我自己也上网搜索了linux在嵌入式开发中的应用。linux广泛应用于消费电子产品中,而且AutoSAR也推出了新型的Adaptive AutoSAR架构,兼容linux内核。种种证据能够说明,linux系统在未来汽车电子设备中占据的比例将会越来越大。

从此,我开始了漫长的linux学习之路。由于在此之前我从未接触过linux系统,也并不懂计算机网络的知识,仅仅是一个会用C语言写代码的码农。为了能够快速,我买了书和网课,也从B站找了一些学习视频。每天在地铁上、午休、下班回家都一直在恶补工作中需要用到的知识。

那段时间很累,但在学习linux的过程中,我顺带把操作系统、计算机组成原理和计算机网络全部学习了一遍。由于长时间的积累,某一天在工作中突然顿悟了,编程语言带给我的困难不复存在了。虽说现在在工作中也时常遇到困难,但不会再像无头苍蝇一样不知所措。

学习linux一年多,我的心得是linux才是真正适合程序员学习的操作系统。学习linux的过程中,你会学到计算机原理、操作系统、编译原理和多线程多进程通信等知识。这些知识能够协助日常软件开发,同时使你能够从更高的层级来看待软件开发。

总结

如果你现在有志于转向汽车电子,并从事软件开发工作。那么我有以下建议:

  • 考取研究生(至少211)

  • 利用空闲时间,学习C语言和python(python作为工具语言,能够提升工作效率)

  • 争取找到研究方向前沿的导师,并参与到相关项目中(这决定你第一份工作的方向,重要)

  • 锻炼自己快速学习和处理问题的能力(重中之重)

  • 对软件开发有兴趣(最最重要)

最后免费分享给大家一份Python全套学习资料,包含视频、源码,课件,希望能帮到那些不满现状,想提升自己却又没有方向的朋友。 

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。 在这里插入图片描述在这里插入图片描述

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。 在这里插入图片描述

五、Python练习题

检查学习结果。 在这里插入图片描述

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。 在这里插入图片描述在这里插入图片描述

这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/111532.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Vant相关知识】

目录 1 什么是Vant 2 Vant的优势 3 Vant特性 4 第一个Vant程序 4.1 创建Vue项目 4.2 安装Vant支持 4.3 添加Vant引用 5 按钮组件 6 表单页面 7 area省市区选择 8 商品列表 1 什么是Vant Vant是一个轻量,可靠的移动端组件库,2017开源 目前 Va…

〖产品思维训练白宝书 - 产品思维认知篇④〗- 产品思维的核心要素

大家好,我是 哈士奇 ,一位工作了十年的"技术混子", 致力于为开发者赋能的UP主, 目前正在运营着 TFS_CLUB社区。 💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬 &#x1f4e…

Word控件Spire.Doc 【评论】教程(1):在 C#、VB.NET 中插入 Word 注释

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转…

Web入门开发【二】- 网站设计

欢迎来到霍大侠的小院,我们来学习Web入门开发的系列课程。 首先我们来了解下这个课程能学到什么? 1、你将可以掌握Web网站的开发全过程。 2、了解基础的HTML,CSS,JavaScript语言。 3、开发自己的第一个网站。 4、认识很多对编…

06---SpringBoot整合MybatisPlus 实现增删改查和分页

1、Mybatis-plus简介 为什么要用MP? MyBatisPlus可以节省我们大量工作时间,所有的CRUD代码都可以自动化完成偷懒用的~如果是对sql语言不太熟练的建议先用mybatis,熟练后再用mybatis-plus 简述 官网https://baomidou.com/为简化开发而生My…

【并发】深入理解JMM并发三大特性(一)

【并发】深入理解JMM&并发三大特性(一) 今天是2022.11.16,在此之前我已经学习完了图灵课堂MySQL的课程,也是想这篇文章一样用CSDN博客的形式来记录这些知识点。 在并发中,JMM在大多数人眼中,它是整个…

Zookeeper 2 Zookeeper 安装与配置 2.1 Zookeeper 安装与配置

Zookeeper 【黑马程序员Zookeeper视频教程,快速入门zookeeper技术】 文章目录Zookeeper2 Zookeeper 安装与配置2.1 Zookeeper 安装与配置2.1.1 Zookeeper 下载安装2 Zookeeper 安装与配置 2.1 Zookeeper 安装与配置 2.1.1 Zookeeper 下载安装 【其实这块内容 学…

搜狗趁势而来,输入法江湖风云再起

在2022腾讯数字生态大会上,搜狗输入法正式推出面向B端的开放平台,这是自去年9月完成退市、并入腾讯以来,这家输入法C端王者第一个大动作,宣告着其进军B端的野心。几乎与此同时,如今已是自家兄弟的微信,悄然…

vue调用百度api时跨域的解决方案

今天在开发一个项目中发现vue前端调用百度ocr识别接口出现了跨域问题! 百度api 的接口: https://aip.baidubce.com/oauth/2.0/token 和百度开发工程师沟通一个多小时,未找到解决方案,忽然想到了是不是nginx配置的问题&#xff0…

TCManager——中药房管理系统大作业

简介 由于最近一个月世界变化有点大,所以一直在同步自己的大脑,没有写博客。 上个月花了5天(3天后端2天前端)写了个经典的springbootvue2的中药房管理系统大作业——TCManager。项目已在gitee上(校园网差,…

vscode自动添加头注释和函数注释

下载koroFileHeader插件 然后点它的wiki文档 会跳到它的github 配置字段 OBKoro1/koro1FileHeader Wiki GitHub 先找到vscdoe的setting文件,两种方法: 1, 然后点这里: 或者去搜索框搜索:FileHeader 出现如下&…

你的团队是王者还是青铜(下)

我们接着上篇继续聊。 问题4:谁动了团队的时间?如果重来一个迭代,你有7*40个小时的投资,你要如何决策团队的工作安排? “小溪,一会约开卡;小溪,我这有个问题;小溪&#…

SpringBoot+Vue物流仓储管理系统

项目背景 在信息化的时代,效率和速度就变得尤为重要了,具有高效率和速度就具有更好的竞争力,更受客户欢迎。与此同时,网购与人们的生活息息相关,顾客在网上购买的商品需要通过物流公司对这些商品进行管理和配送&#x…

十五、Docker 网络

1、概述 Docker 容器和服务如此强大的原因之一是您可以将它们连接在一起,或将它们连接到非 Docker 工作负载。Docker 容器和服务甚至不需要知道它们部署在 Docker 上,或者它们的对等体是否也是 Docker 工作负载。无论您的 Docker 主机运行 Linux、Window…

Doo Prime 为泰国 SOS 儿童村送温暖,公益有起点爱心无疆界

一年一度的圣诞节即将来临,在这欢乐的时刻, Doo Prime 荣幸地宣布 ,向泰国 SOS 儿童村捐赠了 35 万泰铢 ( 约合 1.23 万美元 ),作为泰国南部城市合艾府 SOS 儿童村的房屋翻修费用。 Doo Prime 希望 SOS 儿童村的孩子们都能在温馨…

【小程序】网络数据请求

目录 1. 小程序中网络数据请求的限制 2. 配置 request 合法域名 3. 发起 GET 请求 4. 发起 POST 请求 5. 在页面刚加载时请求数据 5. 跳过 request 合法域名校验 6. 关于跨域和 Ajax 的说明 1. 小程序中网络数据请求的限制 出于安全性方面的考虑,小程序官方…

【目标检测】Objects as Points

目录概述细节anchor-base vs anchor free网络结构标注损失函数学习资料概述 本文是一个anchor-free的目标检测算法。 【2019】【CenterNet】 研究的问题: 如何更好地将目标检测问题建模为关键点检测问题 提出的方法: 一个简单高效的目标检测方法Cent…

抖音年货节增长秘籍:横向做阵地,纵向定节奏,提前深种草

抖音好物年货节即将到来,对于品牌来说,这将是新一年首次生意爆发的机会。为了更好的融入抖音电商生态,做好数字化经营主阵地,品牌面临多个新挑战: 大促Bigday流量费用高,品牌怎样更高效获取流量&#xff1f…

数据库设计说明书(GB8567——88)基于协同的在线表格forture-sheet

数据库设计说明书(GB8567——88) 1引言 1.1编写目的 数据库的设计是为了以后编码、测试以及维护阶段的后台数据的存储做准备。应用于系统开发前期,为后期数据库设计指引方向。 预期的读者:系统开发人员、系统测试人员和系统维…

瑞昱rtl819x-SDK-v3.4.14b的watchdog分析

watchdog 看门狗,又叫watchdog timer,是一个定时器电路,一般有一个输入,叫喂狗或踢狗;一个输出到MCU 的 RST 端,MCU 正常工作的时候,每隔一段时间输出一个信号到喂狗端,给 WDT 清零…