毕业已经两年,这意味着从车辆工程转行做程序员已经两年。
这两年来,我从一个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%免费
】