个人说明:本人并不是月薪百万的技术大牛,但终于是一名合格的嵌入式工程师,如今某企业兼任嵌入式软件工程师开发一职,以下观点可能会带有片面或则剖析不全,但却是一名一线企业嵌入式软件开发者真实感悟和所得,希望能帮助这些有须要的人,我明白年青人下来打拼都不容易。
为什么要写这片文章?小生也是过来人,踩过大家踩过的坑
百度搜索“嵌入式”、“嵌入式开发”、“嵌入式发展前景”等字眼,下来的都是一大堆培训机构,下来的都是一大片她们所谓的对嵌入式行业的“见解”,不否定其内容有一定的专业性,但其中“水份”我想你们比我更清楚,“卖瓜赞瓜”的道理谁都懂;或则下来的是几年前的“嵌入式状况”,与现今嵌入式环境相比,企业无论是在开发、用人、内容、市场上都发生了很大的改变。为此,作为一名一线企业嵌入式软件工程师的我,想通过自己的实际经历理智地评论现今嵌入式行业的真实状况。本文章写于2018年10月1日,小生愚钝,自觉得可以反映现今嵌入式行业的一个真实状况,以及它的科学性和前沿性可以是2018-2020年期间嵌入式的定义。
一.嵌入式的定义和举例剖析
官方定义:
依据IEEE(国际电气和电子工程师商会)的定义,嵌入式系统是“控制、监控或则辅助设备、机器和车间运行的装置”。这主要是从应用上加以定义的,从中可以看出嵌入式系统是软件和硬件的综合体,还可以囊括机械等附属装置。
目前国外一个普片被认同的定义是:以应用为中心、以计算机技术为基础,软件硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
说白了就是先设计硬件,之后依照需求编撰能在该硬件上运行的软件,就成了所谓的“智能硬件”。
或则说得还不够明白,那行,我们说一说具体的嵌入式产品有什么,嵌入式是做哪些的:
传统嵌入式产品:空调主控模块、冰箱主控模块、家用遥控器、智能手机、教学投影仪、音响系统、雷达系统、路由器等等
前沿嵌入式产品:无人机、智能音箱、机器人控制、城市天眼系统、智能灯具、自动驾驶车辆、扫地机器人、小米腕带等等
一起看一些前沿的嵌入式产品:
下边是大疆无人机,可应用在高空拍摄、军事侦查、高空作业、自动执勤、农业工作、矿业勘察、地形测绘等方面
下边是淘宝精灵智能音箱,可进行语音辨识、对话交互,应用与娱乐、生活、购物、智能灯具控制等方面,属于新一代音响
下边是百度机器人,通过深度学习、神经网路等算法,实现“百度脑部”,具有自学习、自训练能力,如最强脑部的小度机器人
下边是手动驾驶车辆,手动驾驶是一个前沿的科技,在我国还没本真正施行,除了是技术方面,它还得得到政府支持和认同
下边是海信扫地机器人,才能手动执勤,手动勾画室外地图,手动循迹,手动清洁地面,还你一个干净的环境
下边是魅族腕带3,可显示陌陌、来电等消息内容,震动闹铃,心律估算,步数统计,实时运动数据查询,睡眠质量检测等
看完这种前沿科技产品后可发觉,这种形形色色的“高端产品”都离不开嵌入式技术,离不开传感技术,离不开软件程序。这么我如今可以告诉你,嵌入式开发的工作就是去开发以上等一系列产品,这就是嵌入式,相信此刻你对嵌入式行业已有“形而念书”的了解。
二.嵌入式工程师在企业工作的真实内容
嵌入式软件开发具体可以分三类:
嵌入式驱动工程师:编撰和移植各类芯片驱动(如音频芯片),优化硬件设备驱动(如温温度传感),得精通各类硬件插口合同(如I2C合同)、系统调度、信号量、锁机制等等,开发难度最大。该类开发者通常是软硬件综合型人才,通常的嵌入式驱动工程师指Linux上的驱动开发工程师,须要精通Linux驱动框架(platform框架、input子系统框架等),结合芯片本身去编撰驱动,驱动的优劣很大程度上决定一个产品的优劣。业界对驱动人才的定义是两年才算入门,可见此门槛之高。
嵌入式系统工程师:主要是编撰固件,依据不同平台移植操作系统,依照应用场景来优化系统,须要熟悉整个操作系统组成与调度,对固件的稳定性高求很高,假如系统不稳定,驱动和应用也是白做的。
嵌入式应用工程师:编撰业务逻辑程序,调用驱动工程师提供的插口控制设备,软件开发过程所涉内容范围十分广,主要使用C语言开发,但时常会涉及C++、Java、python、JavaScript、PHP等各种语言以及各类脚本语言、数据库、前端后台、各种通信合同、甚至一些从来没听过的合同或概念,须要很强的学习能力,该职位也是各大公司需量最大的,通常10人的开发小组,驱动开发与系统开发与应用开发的比列是1:2:7。
按照我的经验,世界上可以分成两种嵌入式工程师,一种是大公司的嵌入式工程师,另一种是小公司的嵌入式工程师,我晓得这样分类很不妥,但并非毫无道理,请听我一一下概述:
大公司:大公司的特色是哪些?答案:人多!
人多造成的后果是哪些?答案:项目分工十分细21天学通linux嵌入式开发,都遵守“术业有专攻”这一哲学道理;
比如职位是嵌入式驱动开发,这么大公司可能就会细分嵌入式显示屏驱动工程师、嵌入式音频驱动工程师、嵌入式电源驱动工程师等;这就是大公司一贯的作风,它希望去培养某一方面的人才;说白了就是假如你分配到的是一个显示屏驱动项目,这么有可能你这一年内都是在开发显示屏驱动,一年后你将是显示屏驱动方面的一个小专家;在大公司记住一点,你做的东西都是很“精”的;同时,大公司的薪酬水平和福利也是相当可观的,有建立的晋升路线,辞职率通常不高。
小公司:小公司的特色是哪些?答案:人少!
人少造成的后果是哪些?答案:项目分工不明晰,哪些都得干,它给你灌溉的思想是“小陈,我们培养的是综合性人才,在这儿你就是全栈工程师”;
恐怕好多人都没听明白,意思是说这儿人少活多,你哪些都得干。小公司才不会管你是嵌入式驱动工程师还是嵌入式应用工程师(有的公司还是分辨的,的确不能以片盖全),总之是活你就得干,分分钟后端后台服务器你都得给我干,不要跟我说哪些没学过,没学过就去学呗。小公司还有一个特色就是:“节奏快”,大公司上面可能举办一个项目会花上几个月的时间或则更长,在小公司是不存在的,领导都是指望着你几天或则两三周完成,那你也只能说呵呵了。的确,在小公司你可以得到急速的进步,很强的综合性技能,前提是比人家花出更多的时间,把每一个项目理解清楚,而不是应付态度。坚持出来,三年后必能独当一面。小公司提供给应届生的起薪水平相对与到大公司来说要低linux虚拟主机linux系统命令,其福利不健全和晋升路线也通常比较模糊,所以小公司的辞职率会比较高,常常出现三年三跳的情况。
还有一个经验分享给年青人:无论哪种语言,程序代码只是一个简单的工具,最后真正留下的只有原理、协议、框架、思维。
三.嵌入式发展前景与现今状况
目前的嵌入式开发更倾向于智能化,也就是我们所说的智能硬件(硬件+软件),从现今各类前沿的嵌入式产品来看的确这么,嵌入式产品的一个发展趋势是更倾向与手动化控制和人机交互,而不是指出“算法”这一块,要分辨你仅仅是一名嵌入式工程师而不是算法工程师,哪些一大堆“人工智能”、“阿尔法狗”、“深度学习”、“神经网路”都不须要深入理解,那是研究生、博士生做的21天学通linux嵌入式开发,小生并不是说你的能力不足,而是“术业有专攻”,这并不是一名嵌入式工程师的工作量,你须要做的仅仅是与她们的“云端脑部”进行对接,调用她们API就完事了。
因为人工智能、深度学习、神经网路、区块链、大数据等先进学科的崛起,好多人都形成指责:“嵌入式还有发展前景吗”?这个问题我在这儿可以很肯定地告诉你:“嵌入式有挺好的发展前景,前沿嵌入式技术正式崛起,或则说早已崛起”。的确,人工智能、大数据那些学科会给嵌入式带来冲击,就目前来看,学院生更倾向与python编程语言、机器学习这一块,而嵌入式学者的确比以往有所增长,但学者少了并不代表他的需求就少了,并不代表他的工资水平升高了,目前的一个嵌入式技术更倾向于与智能学科相结合的趋势,以百度机器人为例,机器人的核心是脑部,即是“数据和算法”,但机器人脑部想机器人脸庞就能像人类一样活动,能说会道,行走自如,这么就必须得借助嵌入式技术,这就是我所说的嵌入式+智能学科应用,从长久来看,嵌入式只会越来越火,智能学科的崛起必将推动新型的嵌入式技术发展。
对于发展前景,有一项更重要的参数,那就是现今嵌入式软件工程师的工资水平,我下边给出一些理智的数据,是从各大招聘平台督查而至:(数据只能作为参考,具体薪酬还是得看个人灵力,有的达不到该工资水平,有的已经超过该工资水平)
非211、985高校应届结业生平均年薪:8k
是211、985高校应届结业生平均年薪:12k
一年工作经验者年薪:10k-15k
二年工作经验者年薪:12k-18k
三至六年工作经验者年薪:20k-30k
上述数据只针对这些“真正努力”的嵌入式工程师,不适宜应“应付式工作”的嵌入式工程师,同时申明不对该薪资水平负任何责任。
四.展望人工智能推动前沿嵌入式技术
人工智能给嵌入式带来的冲击,是福也是祸,人工智能实现智能化无处不依赖嵌入式技术,人工智能学科在不知不觉中推动嵌入式技术革新,从一系列智能产品,包括无人机、智能音箱、机器人控制、城市天眼系统、智能灯具、自动驾驶车辆、扫地机器人、小米腕带等等,有那个不借助嵌入式技术来实现,并没有,人工智能越是想向人类抒发他的智能水平,越是要借助嵌入式技术,所以前沿嵌入式技术更倾向于嵌入式+智能学科的发展,当智能学科真正崛起,嵌入式必将又是一次浪潮与技术革新。