首先,对于标题的问题,我给出一个答案,在大学学习过嵌入式的毕业生是能够成为嵌入式工程师的,但是想成为企业能够认可的嵌入式工程师是很困难的,嵌入式是一个很广泛的概念,而从事嵌入式的也不仅仅是嵌入式工程师这个种类,还有嵌入式软件工程师、嵌入式系统工程师、嵌入式硬件工程师等等。所以想从一个有基础的毕业生成为一个标准的嵌入式工程师,其中还有许多事情要做,很多知识要去学习。只有经过系统性的学习,我们才能从一个刚毕业的大学生,迅速的成为一名合格的嵌入式工程师。那我们先从嵌入式是什么开始了解这门新兴技术。
官方定义:
根据IEEE(国际电气和电子工程师协会)的定义,嵌入式系统是“控制、监控或者辅助设备、机器和车间运行的装置”。这主要是从应用上加以定义的,从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。
目前国内一个普片被认同的定义是:以应用为中心、以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
说白了就是先设计硬件,然后根据需求编写能在该硬件上运行的软件,就成了所谓的“智能硬件”。
我们说一说具体的嵌入式产品有哪些,嵌入式是做什么的:
传统嵌入式产品:空调主控模块、冰箱主控模块、家用遥控器、智能手机、教学投影仪、音响系统、雷达系统、路由器等等
前沿嵌入式产品:无人机、智能音响、机器人控制、城市天眼系统、智能家具、自动驾驶汽车、扫地机器人、小米手环等等
<2>嵌入式工程师在企业工作的真实内容
嵌入式软件开发具体可以分三类:
嵌入式驱动工程师:编写和移植各种芯片驱动(如音频芯片),优化硬件设备驱动(如温湿度传感器),得精通各种硬件接口协议(如I2C协议)、系统调度、信号量、锁机制等等,开发难度最大。该类开发者一般是软硬件综合型人才,一般的嵌入式驱动工程师指Linux上的驱动开发工程师,需要精通Linux驱动框架(platform框架、input子系统框架等),结合芯片本身去编写驱动,驱动的好坏很大程度上决定一个产品的好坏。业界对驱动人才的定义是三年才算入门,可见此门槛之高。
嵌入式系统工程师:主要是编写固件,根据不同平台移植操作系统,根据应用场景来优化系统,需要熟悉整个操作系统组成与调度,对固件的稳定性高求很高,如果系统不稳定,驱动和应用也是白做的。
嵌入式应用工程师:编写业务逻辑程序,调用驱动工程师提供的接口控制设备,软件开发过程所涉内容范围非常广,主要使用C语言开发,但经常会涉及C++、Java、python、JavaScript、PHP等各类语言以及各种脚本语言、数据库、前端后台、各种通讯协议、甚至一些从来没听过的协议或概念,需要很强的学习能力,该职位也是各大公司需量最大的,一般10人的开发小组,驱动开发与系统开发与应用开发的比例是1:2:7。
所以说在企业成为一个合格的嵌入式工程师,还是需要长时间的沉淀知识技术,坚持学习,才能在这个领域有自己的一席之地。想仅仅凭借着自己在大学中学习部分嵌入式知识,在公司的项目中就能一展身手这本身就不太现实。
<3>毕业生如何才能成为一名合格的嵌入式工程师
对于绝大多数本科毕业生而言,毕业之初的自身能力都是难以符合一个技术岗位的真正要求。绝大多数的毕业生都是在半年至若干年的实际项目锻炼中逐渐成熟起来,最终成为一名「合格」的工程师。嵌入式工程师自然也不例外。
作为毕业生,一时之间找不到自己的目标和方向也是很正常的。即便大家的职位都叫做「嵌入式工程师」,也会因为不同的技术需求分歧而产生各种各样的细化技术领域。作为技术岗中的新人,无需因暂时的迷茫而焦虑,这是绝大多数新人的必经之路。在项目中多去尝试、磨砺,随着时间的推移,你自然会找到真正适合自己的技术方向与领域。
我认为,一个「出色」的工程师首先应当拥有极大的求知欲和行动力,同时不拘泥于自身工作,连日常生活中也在无时无刻地思考如何利用技术来娱乐自身。兴趣是最好的老师。
具体到嵌入式工程师这一职位来说,最好的学习方式就是自己买上几块开发板,利用业余时间开发一些与工作无关、因兴趣而生的小项目。往往这些小项目带来的锻炼会出乎你的意料,多玩、多用、多思考。
只有这样才能成为一名合格嵌入式工程师,愿各位同学能在未来在嵌入式领域大展拳脚,成为一位被企业认可的优秀嵌入式工程师。