毕业七年,一位嵌入式er分享自己的开发经验和想法
扫描二维码
随时随地手机看文章
本人从毕业到现在一直在嵌入式软件这个行业发展,已七年有余,也曾经迷茫无助过,也骄傲自满过,到现在算是趋于一个比较稳定的状态,嵌入式软件开发的项目本身代码量不会太大,除了一些特殊的方面外,基本难度都不是太大,曾经认为只要有人带着,什么样的人都可以从事这个行业,从这两年的经验来看,以前想的可能有点太乐观了,这两年在用心带几个人,发现有些东西确实需要一定的积累才能做好,毕竟人和人的思维方式不同,考虑问题的角度千差万别。
本人对于技术的积累很少在一些网站或者论坛之类的做过交流,遇到问题时,我一般更希望尽自己的努力来解决,空闲的时间也希望自己看一些书籍,来提升一下内功。
转入正题,从事嵌入式软件开发需要哪些基础知识呢?
首先得学过单片机原理,对于底层的一些运作有个大致了解,最不济也得明白数字电路是怎么回事吧!之前和一些新入行的工程师交流发现,分不清什么十进制数,十六进制和BCD,什么bit位,不清楚十进制数和十六进制数在机器上存储有什么区别。对底层的基本原理压根就没接触过,分析问题伏在问题表面现象上,有些问题扎着头搞了两个星期都没有进展,到最后就是一个数的bit位除了一点问题,在面试时曾经遇到过这样的问题,有个面试者在回答问题时,使用RS485总线,波特率9600,协议通讯有响应数据,每个通讯周期的数据量都会超出10个字节,问其通讯周期时,坚定的回答,10ms一个周期,每个周期都会有十几个字节的数据,在反复暗示后一直坚持自己的说法,对于嵌入式软件开发,从事一两年后,一定要问问自己uart,spi和i2c这些总线我们是不是都已经很熟悉了,对定时器和中断我们是否都掌握了。
从事嵌入式软件行业是否需要经验呢?
经验这种东西是个很微妙的东西,有些事情经验能起到促进作用,有些事情有经验反而不太好。个人理解经验应该是帮助我们更快更好的完成我们要做的事情,从这一点出发经验肯定是好的,但是在我们入行的开始阶段,我们的经验往往不成形,而且分不清哪些是好的经验哪些是不好的经验。
经验会在工作不断碰壁的情况下逐步积累起来,我也一直坚持一个观点,做项目如果研发阶段非常顺利,这样注定后期要有忙不完的事情,反而做项目过程中问题不断,所有的问题都迎刃而解,对于个人来说是宝贵的财富,对于一些平淡的事情我们可能过阵子就没印象了,反而是项目中哪些折腾的我们多少个夜晚无眠的,会给人留下深刻的印象,使我们在下次在遇到这样的问题时能够快速的反应。还有就是做项目的经验,从项目立项开始就介入,一直坚持项目做完会给人很大的提升,相反在项目中后期进入项目的,项目的架构和流程已经基本成型,只能沿着项目的路子走下去,会使后期介入的人员缺乏对项目的总体认识,风险相对也比较少。项目早期介入的相当于没路走,自己趟出一条路来走,项目后期介入的相当于选择走哪条路,路已经有了,只是做个选择。
再有一个项目经验就是,做项目时,项目使用的工程文件的来处,基于老项目改造的话会有很多的细节问题无法体会,如果以后有相同的项目更换硬件MCU平台时,可能会带来一些不必要的风险;加入新项目的工程是自己创建的或者接手的项目在时间允许的情况下,自己创建工程,这样在有新项目来时,会让我们能够得心应手。