自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (3)
  • 收藏
  • 关注

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

前言:写完这篇文章后,我觉得本文对于想跳槽和转行的”汽车人“是具备参考价值的,希望大家能够耐心读完。上篇文章《乘着汽车智能化的浪潮,“汽车人”的职业方向选择(一)》介绍了汽车软件方向中MCU开发和嵌入式软件开发的工作内容和技术栈。今天,我们继续谈谈汽车软件开发中的系统工程师的工作方向和技术栈。系统工程师(system engineer)。这个岗位在我眼里是极有发展前途的。按照V开发模型,系统工程师是软件开发中的第一个岗位,他需要与OEM反复沟通系统需求,并形成系统需求文档。接着,根据系统需求文档,系

2021-10-10 21:01:52 308 2

原创 2021-09-29

上篇文章介绍了我那些传统汽车行业的朋友,文中三个例子均是从传统行业跳槽转换了职业方向,观点可能有些片面,但也能代表汽车行业一部分朋友的现状。今天,我想结合自身对于汽车软件的了解,谈谈汽车智能化浪潮下,“汽车人”的职业方向选择。在开始今天的话题之前,先声明一下:由于本人经验和职业方向的限制,该文章的讨论范围基本限于汽车电子软件方面。对于汽车电子软件,可以进行以下分类:按照开发主体分为:嵌入式开发和单片机(MCU)开发;按照底层平台分为:Linux、QNX、Andorid、OSEK(AutoS

2021-09-29 13:55:06 173 1

原创 谈谈跳槽后的收获与反思

上篇文章讨论了我为什么跳槽,文中提到促使我跳槽的三方面的原因。其中,职业的成长性是让我下决心的重要因素。如今跳槽也有四个月,对于新环境和新工作也都逐渐熟悉了,今天来和大家聊聊我跳槽后的收获与反思。对于跳槽,我认为应该用辩证的眼光来看待。并非每次跳槽都让人满意,但每段经历都能给人带来一些成长。今天,我们从技术层面和心理层面来聊聊跳槽后的收获与反思。(一)技术层面。记得初入公司刚接触智能座舱类产品时,我感觉新世界的大门打开了。全新的底层硬件、全新的技术栈和全新的工具链,一切都充满了神秘和新鲜感。这完全与先前

2021-09-23 12:39:21 270

原创 聊聊汽车ECU中单片机开发

当今汽车的电子化程度越来越高,最明显的就是车载ECU越来越多,汽车绝大部分功能都需要ECU的参与。如果从功能来看,不同功能的ECU看似没有任何联系。那么,这是否意味着不同的ECU开发完全没有共性呢?答案当然是否定的,今天从技术角度来聊聊汽车ECU开发。从个人观点出发, 我将ECU开发简单分为单片机开发和嵌入式开发。单片机也就是常说的MCU,汽车行业多使用瑞萨的芯片进行开发,比如RH850芯片。MCU上一般运行RTOS,对于汽车行业来说,OSEK OS是最为常见的操作系统。OSEK OS属于实时操作系统

2021-09-21 23:01:53 1101

原创 汽车行业程序员跳槽四个月后,出来蹦跶一下

很长时间没有更新文章,一方面是由于个人事情的确很多,另一方面是由于自己的懒惰,今天出来捞一下。4个月前,我离开工作了三年的公司,从汽车电子行业进入到互联网行业。说是互联网行业,但也是从事汽车智能座舱开发的公司。这次跳槽最大的变化是从普通工程师升级为了高级工程师,薪资相比之前提升了将近一倍,产品方向换到了智能座舱,但不变的是工作内容依旧是软件开发。回首工作这三年,职位从菜鸟升到高级工程师,工作方向从MCU开发、到功能安全、又到嵌入式linux开发,工作角色从最初的打杂到现在的项目核心开发人员。我也从最开始

2021-09-03 14:31:38 407

原创 通过这件事,我逐渐明白了软件工程师和程序员的区别

文章目录背景介绍发现问题问题描述问题确认解决问题反思总结自身问题外部干扰改进措施背景介绍前段时间,我司产品的硬件平台更新了CPU和flash,底层软件平台紧接着发布了适配新硬件平台的SDK包。为保证产品各项功能不受影响,软件开发团队将迁移到新平台的软件的各项功能重新测试一遍。在测试过程中,我所负责的GPS定位功能出现了问题。今天这边文章就是讲述我解决GPS问题的心路历程,并由此引发的关于工程师和程序员的思考。发现问题问题描述在测试新产品的GPS功能时,我将新硬件拿到外界环境进行测试,并通过CAN

2021-02-17 22:45:12 892 1

原创 # 汽车ECU开发达到ASPICE L1到底有多困难

文章目录背景介绍什么是ASPICE为了实现ASPICE L1,我做了什么总结背景介绍最近大半年没有更新文章,主要有两方面的原因:一方面是由于自己太懒,没有更新的动力;一方面是为了让项目达到公司规定的ASPICE L1的标准,这半年来花费大量时间写各种文档;这半年每个工作日都在写文档,周末时整个人都虚脱在床上,极不愿意盯着电脑屏幕。目前,公司对于项目ASPICE的评审已经结束,坏消息是评审没通过,但好消息是暂时可以松口气修整一下。今天有空写篇文章总结下这半年来为ASPICE评审所做的努力。

2021-02-06 14:15:45 1325

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

文章目录转行第一年转行第二年总结毕业已经两年,这意味着从车辆工程转行做程序员已经两年。这两年来,我从一个C语言都用不熟悉的菜鸟,一步步到现在负责软件多个模块的开发和维护。我走过很多弯路,也踩过很多坑,当然也从中不停地学习和成长。这篇文章把我这两年走过的路,以及做出的选择回顾一下。一方面是系统的梳理一下过去,另一方面希望为纠结转行的朋友提供一些参考。关注我公众号以及加我微信咨询转行的朋友,大多都是车辆工程专业的在读学生,他们期望从传统的汽车行业转行做自动驾驶、车联网等前沿方向。然而,这些技术与传统的车

2020-06-14 18:28:36 1616 5

原创 转行程序员浅谈进程间的socket通信

我在之前的文章中曾说过,我现在开始负责车辆以太网应用层协议栈的开发和维护。以太网通信说白了也属于计算机通信的范畴,因此网络通信的5层模型仍然适用于车辆通信领域。既然设计到ECU间的网络通信,那么socket网络编程的知识一定是必不可少的。今天这篇文章就总结我这周学习的socket网络编程的知识。Socket编程常用的函数首先,下图是client与server之间的通信流程图。根据上面的socket通信流程图,socket编程常用的函数如下:客户端使用socket(), connect()

2020-05-31 11:21:56 322

原创 转行程序员浅谈Linux下的多线程编程

文章目录什么是多线程多线程编程的基本步骤线程同步总结多线程编程作为程序员无法绕过去的一个话题,同时也是面试必考题目,是每个程序员必会的基本技能之一。由于工作后基本每天都是写业务代码,我很少涉及到多线程编程。虽说之前学过相关知识,但没有实战经验,导致我对多线程的理解一直处于学习和遗忘的循环之中。这不最近接手了以太网应用层协议栈的维护和开发,才得以有机会接触到多线程的相关技术。因此,我花了一个星期的时间对着项目代码和书本一点点啃多线程编程及其相关技术。通过一周的学习,我算是基本掌握了多线程编程,今天写文

2020-05-24 16:26:16 335

原创 浅谈我从修复bug的过程中学到了什么

文章目录引述bug的描述bug的分析与修复bug修复之后的测试总结Note引述前天和系统工程师讨论一个新的需求,需求描述很简单就是定时向TSP发送车辆的位置信息。由于需求描述很简单,我也没有过多的考虑多种场景,三下五除二就完成了设计并coding完成,之后简单测试一下就提交了代码。bug的描述内测版软件发布后,MCU团队测试该功能时发现了问题。由于我设计的是两分钟的定时器,即接收到MCU...

2020-03-24 22:20:11 437

原创 程序员必备技能之 多种场景下的Git操作

文章目录Git学习的动力和重点常用的git命令Git构建workflow总结本文默认读者使用过git,并且知道简单的git命令。本篇文章介绍git学习中的重点,以及利用git构建自己的workflowGit学习的动力和重点1 兴趣驱动。很多朋友能在网上看到各种各样git教程,但是这些文章仅仅是写出git各种命令的操作。当看到这种文章时,我们往往只是找到需要的命令就直接离开,这导致每次使用gi...

2020-03-08 22:29:03 239

原创 菜鸟程序员利用消息队列实现进程间通信

之前介绍了进程间通信的PIPE通信、FIFO通信和共享内存,三种通信方式各有其适用范围。今天介绍第四种进程通信方式—消息队列。消息队列的概念消息队列从字面理解就是消息组成的列表。进程能够从消息队列添加消息和读取消息。乍一看消息队列类似于FIFO通信,但消息队列能够实现消息的随机查询,有些读者会疑惑这是什么意思呢?FIFO中的信息必须按照信息的先后顺序进行读取,而消息队列能够指定读取某条消...

2019-06-12 21:44:06 850

原创 菜鸟程序员利用共享内存实现进程间通信

上篇文章介绍了进程间的FIFO通信,FIFO通信属于有名管道通信,其能够用于任何进程间的数据通信。今天介绍第三种进程通信方式—共享内存。共享内存的概念共享内存(share memory)是一种最为高效的进程间通信方式,是因为进程能够直接对内存进行读写,且不需要进行数据的保存与复制。为了实现在多个进程间高效的数据通信,linux内核特地留下一块内存区,该内存区能够被需要的进程映射到自身的内存...

2019-06-10 21:43:27 906

原创 转行程序员成长史#7 | 菜鸟和你浅谈进程

学习linux三周,越深入学越能体会到它的美妙。说句一些人可能无法理解的话,玩linux带给我的感觉就像高中去网吧玩《穿越火线》一样着迷。进程我之前学习《计算机操作系统》(汤子瀛版)时,学习了一些关于进程的理论知识。但这本书写的太理论,初学者很难读懂,不建议看这本书,我之前看的内容就基本全部忘记了。但自从转向linux开发后,参与的项目采用多进程编程,通过linux和项目代码逐渐掌握的进...

2019-05-24 23:45:34 208

原创 说说嵌入式软件发布的流程有多复杂

首先,声明一下本文不代表所有嵌入式软件的发布流程都一样,该文主要是针对汽车电子行业。软件发布新版本软件的发布是公司非常重要的事情,一般只有团队Leader才有权限发布软件。幸运的是,我们团队的leader去国外,我才能够获得这来之不易的机会,虽说中途出了一点小意外,但总体比较顺利。有些读者可能不理解软件发布有什么复杂的,认为我小题大做。但是,很负责的告诉大家,汽车行业中软件发布就是这么复杂...

2019-04-14 20:35:17 938

原创 想转行程序员,我劝你慎重

师弟前两天向我咨询校招的事情,在和他聊天的过程中有些小感慨,于是就有了这篇文章。本文主要针对想转行做程序员的朋友,希望我的经历和感悟给想转行的你们一些建议和帮助。公众号读者应该都知道我是转行程序员,本科学车辆工程,研究生转向汽车电子,主要是做汽车软件的开发工作。通过校招进入汽车电子行业,从事嵌入式软件开发,成为一名职业程序员。在读本科期间,我其实非常不喜欢计算机课程,C语言和VB均是划水而过...

2019-04-11 22:25:41 8478

原创 软件开发都需要哪些岗位参与?

最近一直在学习软件工程的相关知识,通过看书和网络课程在脑中搭建了软件工程的基本架构。同时,在工作中留心观察,发现软件工程在工作中真的是无处不在。今天介绍一下关于软件开发过程中涉及的岗位及各岗位的职责。由于参照汽车ECU软件开发的各个岗位职责,这与互联网行业/软件行业的分工还是有些区别,但大体岗位一致,供大家参考。角色介绍根据岗位划分,软件开发的需要项目经理、系统工程师、硬件工程师、软件开发工...

2019-04-08 20:21:33 13321 1

原创 瀑布模型与“V”模式开发模型有何异同?

在做软件开发时,程序员们肯定接触过各式各样的软件开发模型,例如:写了再改模型、瀑布模型、增量模型等。其实,很多开发模型是在瀑布模型基础上衍生出来的。然而,了解“V”模式开发模型的程序员应该不多。“V”模式开发模型是汽车电子行业在瀑布模型的基础上做了改进,以符合汽车ECU开发需要的模型。今天来讲讲瀑布模型与“V”模式开发模型的异同。瀑布模型瀑布模型产生的历史背景是20世界70年代出现的软件危...

2019-04-08 20:18:30 12015

原创 程序员为什么要学习软件工程

按照惯例,先回顾一下这周完成的工作:(1)练习英语听力240分钟(2)完成了三个Test Case的自动化测试实现(3)修复5个bug(4)发布小版本,做回归测试(5)读完《构建之法》自从结束了CPA分析后,工作又回归了日常学英语、解bug、做测试的节奏。自动化测试自动化测试开发节奏略慢,因为这周大部分时间在研究subprocess模块,网上资料太过杂乱,拉慢了开发进度。这周实现了...

2019-03-26 22:39:03 2693 2

原创 转行程序员成长史(一)—《构建之法》学习笔记

眨眼又是一周,这周完成了以下工作:与国外同事合作,完成了CPA分析完成自动化测试系统框架的开发进行了为期两天的公司价值观培训练习英语听力200分钟阅读了《构建之法》的前四章这周做了很多事情,但让我收获最多的是阅读《构建之法》。在介绍学习《构建之法》的心得前,先简短总结一下其他的事情。完成CPA分析CPA(Critical Path Analysis)分析即软件关键路径分析。简...

2019-03-17 22:41:18 190

原创 转行程序员的臭毛病,你遇到了吗

一周又过去了,先把这周做的事情总结一下:(1)解了两个bug(2)完成了软件的关键路径分析(3)利用python写了自动化测试脚本这一周过的手忙脚乱,一边是项目如火如荼进行,另一边是测试妹子乐此不疲的提交bug。而我作为团队的程序员,当然一边写代码,一边解bug。本周解了两个bug,而这两个bug均是我在上个版本添加的新功能。它们都很简单,但我在上个版本中并未将它们彻底解决。当测试组提...

2019-03-11 22:19:44 195

原创 2019 Week 01 - 确定Function Safety作为今后的发展方向

年后上班第一周,新项目上马。花了两天调整工作状态,解了两个bug,参加了一个培训,与team leader讨论了工作安排,并确定function safety作为今后的发展方向。Function Safety解答了国外负责软件function safety的同事进行code review时提出的各种问题。目前,公司设立的有Hardware function safety engineer 和...

2019-02-18 19:31:22 1380

原创 鼓吹用Python的我,被C程序员的一个问题轰成渣

熟悉我的老铁们都知道,我现在做嵌入式软件开发,日常用C语言来写BUG(皮一下)。由于今年公司今年业绩不好,部分项目处于停摆阶段,我参与的一个项目也被叫停。之后,我在公司比较闲散。但年轻人闲不住,精力很旺盛,我就把python拿来玩一玩。背景今天,在公司用python写一个从几百个文件夹中提取特定 .c 文件的脚本。我们Team的同事 文 在做测试,看到我用python写的代码,...

2019-01-18 21:25:13 1471

原创 从车辆工程转行做程序员,我的经历可以给纠结的你一些建议

由于现在ADAS/智能驾驶/无人驾驶领域炒的火热,汽车行业对程序员的需求越来越大已是不争的事实。想必很多车辆工程专业的在读学生也渴望进入这些领域。目前,我在汽车行业的某知名外企从事嵌入式软件开发。工作内容与这些领域相关性较大,希望我的经历能够对想要转行的你有些许帮助。背景我算是正统的车辆专业出身,本硕专业均是车辆工程。我本科就读于东北某普通一本的车辆工程专业,研究生在车辆工程全...

2019-01-16 22:06:40 6528 3

原创 Leader安排的三小时工作量,我如何用python十秒完成

作为刚入职的小菜鸡,领导一般都会安排你处理各种文档,美其名曰:熟悉项目、熟悉流程。随后,你上班的时间充斥着Ctrl+c/Ctrl+v,做那些毫无意义的复制粘贴工作,不用动脑,感觉自己变成了一头驴子(参考书籍《职场动物进化手册》)。作为程序员的我拒绝接受低效和毫无创意的工作,拒绝变成呆傻的驴子。我开动小脑瓜想解决办法。(1)甩锅给别人甩锅给别人当然是最快速,最轻松的方法。但这种逃避责任的事情...

2019-01-12 22:07:38 264

原创 从小白成为大牛的路上,必须经历的初始阶段

本文首发于微信公众号:汽车电子程序猿从小白成为大牛的路上,必须经历的初始阶段之前在我的微信公众号发布了文章《2019年伊始,我被Team Leader叫去谈话了》。自从与Team Leader谈话过后,我斗志更加昂扬,为成为大牛程序员继续努力。下班回家,照例打开《计算机操作系统》这本书,准备按照原定计划读书学习。其实,这本书我学习了很久,但学习它总是很不舒服。我思索很久希望寻找到原因,最终我想明...

2019-01-08 22:54:31 225 1

原创 2019年伊始,我被Team Leader叫去谈话了

这篇文章不属于编程语言/计算机基础/好玩的技术,只是一种复盘,对工作半年来的一种复盘。2018年是我离开校园正式踏入社会的第一年,有太多新鲜的事情扑面而来,日子过得非常充实。7月入职后,我在公司接受各种软件开发的流程和工具培训,每天上班都充满干劲。每天在公司看代码、做白盒测试、写测试文档、解Bug,做小菜鸡该做的事,当然也做小菜鸡会做的关于未来的梦。但好景不长,由于身处汽车行业,对汽车行业的...

2019-01-05 22:00:50 274 4

原创 vs code中的git配置问题

上学期间使用visual studio写代码,VS过于庞大,后来逐渐转向git bash和NotPad++。日常使用clone/add/commit/add命令,代码编辑则用NotPad++进行编辑。一个偶然的机会,看到了vs code的界面,被超酷的背景所吸引。之后,上网搜索该软件的介绍,立即决定上手玩一玩。但在配置vscode的git功能时遇到一些问题,现将解决办法列出来,供大家参考:安...

2018-12-22 23:12:42 4193 1

原创 python学习之基础篇

作为一名嵌入式程序员,每天利用C语言写代码,难免会感觉枯燥和乏味。由于看好AI的未来,下班之后开始自学python,希望能够进入AI领域。学习python已经一周,为了更好的理解python,分章节对python进行总结。Note:我的python学习资料全部来自廖雪峰老师的官方网站。链接:https://www.liaoxuefeng.com/wiki/0014316089557264a6b...

2018-12-16 20:02:22 135

原创 第11周总结

接下来一周将会跟踪管理测试组所提出的bug

2018-09-22 09:46:51 122

原创 有点乱的小节

工作三个月完成了从校园到社会的转变,第一个月参加各种培训接收公司文化洗脑;第二个月去工厂参加实习;第三个月才跟着导师做了一些与软件开发的杂活。接触汽车行业后,才明白软件开发与互联网行业有着很大的不同,它最重要的目标是安全而不是功能,其软件开发周期长、流程极其复杂、审查非常严格。这段时间利用QAC软件帮助师傅完成了一个将要SOP项目的代码检查。QAC是一个静态代码检测工具,能够检查软件开发人...

2018-09-16 11:23:02 269 1

原创 公开课小结

马上要毕业找工作了,作为小弱鸡的我心里不停再说:好慌啊好慌啊!So,跑到网易云课堂学习《玩转无领导小组》的课程,来这里写个总结,问我为什么来csdn写,因为我只有这一个博客啊企业来招聘必会采用一种叫做无领导小组讨论的方式选拔人才。无领导小组讨论(leaderless group discussion)是将应聘者随机分组,一般5~6人一组,在规定时间内,讨论给定问题并给出决策,花费时间在40分钟

2017-02-19 18:55:05 910

原创 《数据结构与算法分析》--二叉查找树

二叉查找树的结构:struct TreeNode{ ElementType element; TreeNode* left; TreeNode* right;};typedef TreeNode* SearchTree;typedef TreeNode* position;二叉查找树的操作声明://清空树SearchTree MakeEmpty(SearchTree

2017-01-17 20:39:45 273

原创 数据结构—链表的复习

ADT(abtract data type)链表:(1)链表的指针实现:链表结构体类型://链表结构体typedef struct Node{ ElementType Element;//数据域 Node* position;//指针域}*position,*List;链表操作的相关函数://判断链表是否为空int IsEmpty(List l){ return (

2017-01-12 19:08:54 254

原创 2017/1/5号 c++ 编码总结

类的成员函数后面具有const,例如void show()const;,这种函数具有两种特性。 1、该成员函数能够访问数据成员,但是不允许改动数据成员; 2、如果对象被声明为常量,例如const String a;那么该对象只能调用const成员函数,形如const String a; a.show();。类的静态成员函数,形如static function();。类实例化的对象无法调用该函数,

2017-01-05 19:18:48 310

转载 c语言和c++中的struct和typedef struct的异同

转载的文章地址::http://www.cnblogs.com/qyaizs/articles/2039101.htmlstruct和typedef struct分三块来讲述:  1 首先://注意在C和C++里不同    在C中定义一个结构体类型要用typedef:    typedef struct Student    {    int a;   

2016-12-24 10:03:57 303

原创 总结

新学的内容:1、$_POST和$_GET的不同:表单将数据提交到php脚本中,$_POST接受表单内的数据而$_GET接收表单属性action中的内容,这就是为什么有些php脚本中即出现$_POST数组又出现$_GET数组。2、array['key']和array["key"]的不同:array['key']默认key是常量,直接将key作为键值使用;array["key"]则会判定key

2016-10-22 18:51:08 195

原创 vs2005打开文件注释乱码的问题

用vs2005下载了一个rs232串口应用程序,但是注释显示乱码,在网上搜了很多方法,大部分都是采用:工具-----文本编辑器---------选中“自动检测不带签名的UTF-8编码”的方法,但改完之后还是没什么用,摸索了半天终于找到了方法。新方法:step1:工具-----文本编辑器---------选中“自动检测不带签名的UTF-8编码”step2:属性-----配置属性-----

2016-10-21 17:09:42 1849

原创 学习总结

前几天导师安排我建网站和数据库,苍天啊!!我一个学车辆的研究生,读研期间从来没有接触过和汽车相关的任何项目一直在编程,现在就是一个标准的码农。研究生开学,老师就安排学C语言和c++说是以后要做变速器台架试验需要编程, 好吧学咯,可是等研一结束开始做项目的时候,变速器的项目做完了。。完了。。了,当时我特么就懵逼了,这可怎么毕业,我还怎么进梦寐以求的车企。后来,老师突发奇想说要web开发,我勒个擦擦,

2016-07-31 08:35:46 276

mfc80d.dll

mfc80d.dll一个小文件,便于debug调试

2016-10-21

在vc6.0环境下完美运行的rs232串口应用程序

这是能在vc6.0程序运行的rs232串口应用程序

2016-10-21

vs2005环境下能完美运行的rs232串口程序

下载别人的rs232串口应用,但程序只能在vc6.0的环境下进行编译,修改了很久才能在vs2005环境下流畅运行,现在没有任何错误可以完美运行

2016-10-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除