(一)、分析嵌入式工程师未来发展之前,先看下嵌入式的定义,定义无非分为两种:
第一种:国际上的定义,嵌入式系统是“控制、监控或者辅助设备、机器和车间运行的装置”。
对定义解释:从上面可以看出国际上是从应用上定义的,强调嵌入式系统是软件和硬件的综合体,并且覆盖了机械设计等内容。
第二种:国内的定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能,可靠性,成本,体积,功耗严格要求的专用计算机系统。
对定义解释:国内定义通俗的说,先设计硬件,然后在编写能够在该硬件上运行的程序,并达到满足应用需求的目的。
(二)、在嵌入式未来发展深入了解之前,先来看下嵌入式前沿产品
1、先来看下,华为天才少年开发的智能机械臂,可以用在医疗、精密加工、自动化装配等方面
2、接下来看下无人机,最有名的就属大疆无人机,可以用在高空作业、地图测绘等方面。
3、 嵌入式和人工智能结合也有很多,通过深度学习、神经网络算法实现的AlphaGO,将算法的实现维度提升到了前所未有的高度。
4、自动驾驶也是前言科技,未来一定是自动驾驶的时代。笔者认为,让人去操控汽车的风险要高于自动驾驶。
三)、嵌入式工程师在公司中具体要完成的工作
绝大多数的嵌入式开发指的是嵌入式软件开发,可以分为三类:
第一类:嵌入式驱动工程师:编写和移植各种芯片的驱动代码,包括(51,STM32),大部分是优化硬件设备驱动(如:压力传感器等),并需要精通各种通信协议,USART\IIC\SPI等。驱动工程师还需要掌握操作系统调度,系统内部的通信方式,信号上锁等,整体来说,驱动开发的复杂度较高。
开发者需要必备的条件:驱动开发一般是软硬件综合性人才,目前来看,一般说的驱动工程师指的是Linux驱动工程师,需要精通Linux驱动框架,(如:标准字符模型、IIC子系统框架等),并对芯片操作方法要非常熟悉,然后再去编写驱动,驱动的好坏很大程度上就决定了产品的好坏。按照业界说法驱动人才三年算入门,可知门槛。
第二类:嵌入式系统工程师:主要任务是移植固件,(解释一下什么是固件:例如:Linux操作系统有三大件组成,uboot;kernel;rootfs,这三个就是固件)根据平台的不同完成操作系统的移植,提高系统的稳定性,让驱动和应用能够正常的执行。
开发者需要必备的条件:对操作系统架构非常熟悉,知道操作系统内部的调度方式,对算法能力要求较高。
第三类:嵌入式应用工程师:主要是完成业务逻辑,并会调用驱动工程师提供的接口控制设备,因为客户的业务需求是非常灵活,因此,对应的应用工程师,需要会的语言也比较多,比如经常会涉及到C++、java、python、JavaScript等以及各类语言脚本、数据库、前后端等。
开发者需要必备的条件:有一定的英语基础,有坚持不懈的毅力,年轻爱加班。
相信到这里,大家对嵌入式工程师的工作范围有了一定的认识,但现实中可能没有那么尽如人意。在笔者看来,嵌入式工程师只有两种:
第一种:大公司的嵌入式工程师;
大公司特点:人多! ----->导致的结果是,项目分工非常细,能够遵循“术业有专攻” ,可以深耕一个方面。 对工程师个人来说,工作几年后,很难再调整方向。
第二种:小公司的嵌入式工程师;
小公司特点:人少! ------>导致的结果是,项目分工不明确,什么都得干,可以成为综合性人才,也就是传说中的全栈工程师,对个人也是极大的考验。 对工程师个人来说,胜任工作几年后,可以随时换方向(不建议)。
(四)、嵌入式发展的未来
1、按照目前市场上嵌入式产品普遍都倾向于智能化,也就是说智能硬件,从上面提到的前沿产品可以看到方向是朝着智能化,作为嵌入式产品其实更加倾向于自动化控制和人机交互,而没有过多的强调“算法”。
2、如果要成为一名嵌入式工程师是不需要深入学习“人工智能”、“深度学习”、“神经网络”等算法的,那是博士生应该做的。
3、各位学员可能有个疑惑,现在人工智能,大数据这么火,嵌入式还有未来吗?
在这里可以肯定告诉大家:嵌入式有很好的未来,首先,的确,人工智能和大数据发展迅速会给嵌入式带来冲击,大学生学习python、机器学习等专业,人数会有所下降。但是人数少了不代表需求少了,更不代表薪资下降了。目前,嵌入式技术更倾向于和智能学科结合,发挥出更大的优势。
例如:百度机器人,自动驾驶汽车等,机器人的核心是大脑,也就是“数据和算法”,但是只有大脑没有身躯是不能够,活动自如,行走自如,那么这些问题必须依靠嵌入式来解决。(自动驾驶也一样)。
总结:无论成为哪种嵌入式工程师,语言,程序代码只是完成需求的一个工具,最后真正留下来的原理、协议、框架、思维才是最重要的。