如何成为一个优秀的嵌入式软件工程师

做这个公众号的目的和原因

1.网上资料多,但也仅仅是多而已:

  • 在自己的嵌入式道路中走了很多的坎,网上的资料多如牛毛,但是实际教人怎么做一个完整的项目的很少,很多人在海量的资料中入门到放弃,所以一直有一个想法,用一个实际的量产项目教会刚入门的小伙伴,学会嵌入式在实际的工作中需要到那些知识,在过去多年的工作中,做过很多项目,有很多项目前期不规范,没有对应的顶层设计,人员离职,新人顶替,他不规范我不规范,最后的代码不断的累加,不断的累加,最后形成一锅粥,不断的打补丁,解bug,可以说是剪不断理还乱,最后不得不放弃一个项目,重头来过。

2.工作经验多的工程师就是合格的工程师么?

  • 本人刚刚出去的工作的时候也看到很多代码,里面的不规范很难阅读性真的不堪回首,虽然这些工程师已经有很多年工作经验,但是由于没有经过好的项目积累,不经常阅读优秀的项目,所以在自己写的代码中也是想到那里写到那里,或许这个代码也就他自己能看的懂吧,函数命名不规范,或者函数命名和实现的功能不是一个意思,比如写了个函数名字,然后实际上实现的功能并不是和函数命名相关的就是想到那些到那,或者本来是想按照这个函数的名字写这样功能的,但是实际上在写了一段代码后,发现要加上新的功能,但是太懒,功能加上去后,名字并不更新,又有甚者,写了注释,但是发现功能更变,但是注释没有修改过来,导致后面的人形成误解,这里推荐《华为的代码规范》不知道是不是这个名字,大家可以从这个公众号拿到这个pdf,所以有机会我打算给大家展示一些实际在公司中好的代码和“坏”的代码,让大家都写出“优秀的”代码,我这里说的"优秀",不是说我是什么大神,我认为我并不是大神,我只能算是一个合格的嵌入式软件工程师,但是实际上很多有多年甚者十年的嵌入式软件工程师都不能算的上合格,这也有可能是国情决定的,以前在国内做的东西比较简单,可能全公司就他一个软件工程师,代码可能就一两千行,最多可能不超过一万行,自己写自己看,最后自己改bug,所以就养成了不规范的习惯,代码也就他自己看的懂。所以说,代码不规范,项目成员两行泪啊;看着那么难看的懂的代码怎么能不脱发,所以程序员有时候脱发并不是你造成的,可能是你不规范的同事导致你脑细胞死太多造成的。

3.我们不制造轮子,我们是轮子的搬运工

  • 在嵌入式开发当中有很多功能可能并不需要我们自己去制造,我们可以从github上去搜索,或者中伟大的linux内核中拿过来用,或者是优秀的开源项目中拿到,或者是优秀的华为项目中拿到,华为这种大公司,也会开源很多优秀的项目,我们可以在上面拿到我们想要的东西,所以有时候多去阅读别人的项目项目,我说的是优秀的项目,这样才能更好的学习和前进,修炼内功C语言必不可少,指针结构体一定要懂,或者说不是懂是要熟练,一些常用的数据结构,比如链表等也要懂,这些在学校上C语言课的时候老师也应该说过的,没有学过怎么办?现在学呀,当然我们也可以从实际的项目中去学习,如果我讲到,就会在项目中提出来,让不懂得小伙伴,现场学现场看懂我们写的代码。

4.对于0基础的同学怎么办?

  • 我觉得还是先修炼好C语言,万丈高楼平地起,如果嵌入式大牛是我们的高楼,那么C语言就是制造高楼的砖瓦,所以还是先要学会C语言。我们要先学汇编还是C语言,毫无疑问学C语言,这里可能就会有很多人抬杠了,说汇编多么多么重要,但是我打个比喻大家就明白了,如果把C语言比喻成砖头,那么汇编就是制造砖头的泥土,所以我们建立一栋大厦有必要自己去把泥土弄成砖头么?没有必要了吧,如果啥都自己弄可能你都老了,所以我们直接来学C语言,到时候如果用到汇编我们告诉大家那些汇编的作用,其实大家学习嵌入式都是为了以后的像“钱”看,我们没有必要说的自己很伟大,为祖国建设什么的,学好企业要求的东西,然后快速的开发出产品就好了,所以我们当然是学习在企业中最常用的知识咯。我说过我不是一个喜欢制造轮子的人,所以学习C语言基础的课程我应该也不会出,我可能会在网上找一个合适的课程推荐给大家,然后大家学好内功后就可以学习我们这个嵌入式项目。

5.我们要做什么?

  • 我想做的是,通过一个项目让大家快速积累一个真正的开发项目,在开发当中遇到的东西我们都会遇到,然后怎么解决,怎么调优,最后达到一个可以量产的软件,就和你实际在真正的工作当中一模一样,或者这个项目跑在LINUX上或者这个项目跑在STM32上,或者使用RTOS,现在还没有定,我这几天也会想这个项目如何实现和构成,在这个项目当中你能学会什么?当然是丰满自己的简历,和面试的时候大胆的说我是一个合格的嵌入式软件工程师,我能干活,我能解决问题,但是我薪资也会要的比别人高,达到我们向“钱”看的目的。

6.关于开发板

  • 由于现在还没有确定用什么平台,做什么项目,所以现在还没有确定用什么板子,但是我希望项目是能支持多平台的,或者简单修改可以在不同的平台上跑,所以可能到时候这个教程可能不会特别依赖平台,或者如果依赖平台,我们把这部分理出来,简单修改就可以跑在不同平台上,可能会使用STM32,也可能是网上买的别的厂商的开发板,NXP等,或者别的厂家的一块linux板子,如果我手上有这个板子我们教大家如何在板子上搭建出来,没有的或就只能自己去尝试了,当然这个过程中你也能学到更多的知识。

7.时间周期,和目的

  • 本人由于也在企业上班,所以也只能在闲余时间去弄这个教程,如果遇到企业项目周期赶,这个教学可能是周期相对会比较长,当然这个教学是免费,免费,免费,会在这个公众号进行连载,或许会出视频,但是我会先备课,制作ppt,(ps:想想好难啊,希望不会放弃,哈哈哈)同时也是想通过这件事让自己成为一个自律的人,更有做这个也是为了和大家一起学习共同进步,如果遇到更牛逼的大神,互相学习那是再好不过了,我呢不是大神,我只能说是一个合格的嵌入式软件工程师,但是有一个美好的愿景,带更多的人进入这个行业,带更多的人成为一个合格的软件工程师。
    在这里插入图片描述

​​​​​​

猜你喜欢

转载自blog.csdn.net/qq_27809619/article/details/114867000