嵌入式是坑?别闹了

整合自网络,观点仅表明做者我的观点。前端

互联网向来流传嵌入式是大坑的说法,大部分人眼里的嵌入式:一、工资低的不像话,二、小学生干的活,三、学的要死要活的,付出不少,最后付出得不到回报,还不如趁早转互联网。linux

据Kerr Wang表示,上述观点里面初看有那么一点道理,可是不少人历来就不想一想,如今自称是嵌入式工程师的,有几个具备正儿八经的完整的知识体系的,大部分人眼中认为会玩点ARM,会点C语言,甚至连指针都用不熟的就是嵌入式工程师了。算法

那些个几天嵌入式培训课程上完,一点原始的技术积累都没有,能拿着人家弄好的内核镜像烧着玩,拿着人家的程序也能改几行,大部分这样的人实际上只是搬砖的,拿低薪也是正常的。编程

不过话又说回来了,如今不少小公司也只须要这样的人打打下手的也就好了,主要是开发平台愈来愈先进,开发的成本愈来愈低,并且小公司压根就不须要保证性能和可靠性,直接使用芯片提供商或者硬件提供商的评估板评估代码改改就能用,并不须要去了解架构这些东西,只需最后的东西能工做就好了,你以为这些工做须要什么水准的人?我以为这样的工做让小学生去干,确实是能够的。windows

可是嵌入式开发真的就这么简单吗?我一个师兄在华为无线部门,上次聊了会天,他们给设备写代码增长功能,代码功能一加再加,可是要求编译出的二进制文件体积和程序运行占用的内存不能比以前的代码大,由于新代码要兼容旧设备,旧设备的flash和ram就那么大,你增长了体积,旧设备就无法用了,因此就得不断的优化,甚至获得汇编级别,寄存器级别去优化。这要是换在小公司或者初创的公司的话,没事,代码体积增大了,换大存储大内存完了咯,这样他们须要的就不是嵌入式工程师了,或者只须要水平很低的所谓的工程师了,工资拿不高也是正常的。后端

这个时候有人就会说,那些大公司进不去啊,那没办法,本身水平低又不肯意突破还每天抱怨那又有什么办法呢?可是有人会说,那些初创的互联网公司要的人水平也不咋地,随便培训几天工资就很高了。这个是真没办法,这个是由经济状况决定的,互联网经济下热钱多,投资人不差钱,天然给的就多,这个不是技术水平决定的,反观嵌入式开发,实体经济下滑,真正能开起大价格的只有大公司,从这个角度来看,嵌入式工程师的工资是很符合经济规律的。互联网公司的大牛的工资也很高啊,因此就得出结论,不管是嵌入式仍是互联网,真正能称得上是工程师的工资都不会低,你看今年海康的嵌入式开发就比软开高了1K。工资差别大的,只是那批打下手的,这个是经济状况决定的,可是三十年河东三十年河西,谁敢保证互联网经济就不是一个泡沫呢?到那时,只剩下大公司可以运营,状况你就可想而知了。仔细研究一下你就会发现,嵌入式的公司大多都是服务提供商,提供的是通讯,基站等等行业,这些行业永远都是不会垮的,因此在经济危机当中,嵌入式行业不见得就是一个坑,中国能够没有那些创业的电商,可是绝对不能没有华为,中兴这样的公司。另外一方面,如今智能硬件火起来了,你看各类智能家居,各类无人机,VR都须要嵌入式的支持,今年网易不是还有招硬件开发的么?到这里,搞嵌入式的是否是心情爽了一点。总之一句话,不论哪一行,互联网仍是嵌入式仍是其余行业,你要想不被淘汰,只须要一个字,牛,牛就好了。网络

说嵌入式“坑”仅仅是一个导火索,具体也发生了这样的现象:数据结构

现象1:架构

想从事嵌入式方向的学生,大部分是ee专业,学生基础不扎实。说嵌入式是坑的大部分人有如下特征:一、死磕单片机,然而单片机只是工具,重点应该放到模电数电等基础课程上,但这些人大部分基础很不扎实,很是浮躁,沉迷于校园各类高大上的制做和项目,对原理的思考甚少。二、大部分所谓的项目,是在重复劳动,驱动大部分来自网上,不多有人能看着芯片手册编程。框架

在本专业中,单片机被过分神话,尤为在部分院校,单片机被看做是救命稻草的存在。仿佛学好单片机就能走遍全天下,学很差连工做都找不到。

Kerr Wang表示,这个是当前的教育环境与生产环境脱节致使的,体制致使的东西,谁都没办法的。尽管学校大搞产学研,可是都是假的,当年嵌入式课的时候,老师一直在那读PPT,有些关于架构和编程的东西还讲错了,嵌入式实验课的时候,第一节课发一份pdf文档教你们ADS软件是怎么用的,这个软件ARM公司当时都再也不提供支持了,个人Win7电脑装都装不上。第二节课的时候每人发一块板子,我记得是OMAP138的,给了一个bin文件,烧进去看看现象,代码都没开放,这叫上课,这TM在逗我,不过我也不须要那些个实例代码,由于我本身也能够写,成功装个逼,要不是先前自学了点,还真被忽悠的一愣一愣的,以为嵌入式开发就是拿着bin文件烧着玩。

据另外一位网友表示,电子信息专业的方向大概有:

一、数字电子线路方向。从事单片机(8位的8051系列、32位的ARM系列等)、FPGA(CPLD)、数字逻辑电路、微机接口(串口、并口、USB、PCI)的开发,更高的要求会写驱动程序、会写底层应用程序。单片机主要用C语言和汇编语言开发,复杂的要涉及到实时嵌入式操做系统(ucLinux,VxWorks,uCOS,Windows CE等等)的开发、移植。大部分搞电子技术的人都是从事这一方向,主要用于工业控制、监控等方面。

二、通讯方向。一个分支是工程设计、施工、调试(基站、机房等)。另外一分支是开发,路由器、交换机、软件等,要懂7号信令,各类通讯相关协议,开发平台从ARM、DSP到Linux、Unix。
三、多媒体方向。各类音频、视频编码、解码,mpeg二、mpeg四、h.26四、h.263,开发平台主要是ARM、DSP、windows。
四、电源。电源属于模拟电路,包括线性电源、开关电源、变压器等。电源是任何电路中必不可少的部分。
五、射频、微波电路。也就是无线电电子线路。包括天线、微波固态电路等等,属于高频模拟电路。是各类通讯系统的核心部分之一。
六、信号处理。这里包括图像处理、模式识别。这须要些数学知识,主要是矩阵代数、几率和随即过程、傅立叶分析。从如同乱麻的一群信号中取出咱们感兴趣的成分是很吸引人的事情,有点人工智能的意思。如雷达信号的合成、图像的各类变换、CT扫描,车牌、人脸、指纹识别等等。
七、微电子方向。集成电路的设计和制造分红前端和后端,前端侧重功能设计,FPGA(CPLD)开发也能够算做前端设计,后端侧重于物理版图的实现。
八、其余方向。好比音响电路、电力电子线路、汽车飞机等的控制电路和协议。

其中方向一、二、3涉及单片机或嵌入式芯片的开发,并且单片机也是电子信息工程全部学科中最简单的一门课程了,不会单片机我都很差意思说本身是EE出来的了。因此,说单片机是EE本科生找工做的救命稻草,也不奇怪。更进一步的,我认为,以单片机为核心的电子系统设计才是EE学生的重中之重。这方面还有相关的比赛了:电子设计大赛和单片机设计大赛。(固然电赛有些题目并非单片机为核心而是辅助)。

现象2:

惧怕跨专业。从大部分学生的经从来看,从事的方向应为嵌入式软件,但由于专业的缘故,常常给本身冠名以嵌入式硬件工程师,由于惧怕脱离本专业。结果,两边都学的不精。本专业的电路基础,模电数电,信号与系统,高频电路等学的很是通常。而软件方向的,编程语言,数据结构,操做系统等根本没有系统学过,堂而皇之称之,在项目中学习就能够了。从不少人经从来看,不懂指针,不懂数据结构操做系统,就开始上手linux。于是校招中,软件方向因数据结构等课程不过关,笔试被残忍淘汰,电路设计由于学校没有很好的研究环境更是不堪一击。因而发出了嵌入式要完,我学的那么用功,依然找不到好工做等言论。

同时,没有上升到linux,在win裸机中打转,板子的bootloader甚至没听过,对本身的开发平台一无所知。

Kerr Wang表示,这是本身的问题了,其实不少人都知道问题在哪了,就是不去作不去改啊,老西医就要说一句了,别治了,已经治很差了,没救了,等死吧。

本科阶段是打基础的时候,广而学之,这是很重要的,开阔眼界,串联各个技能树和知识体系最重要的阶段,培养自学能力和查找资料能力最重要的时候,大一大二的时候就是培养这个能力的,这个时候不少东西本身都要有个概念,什么叫有个概念,就是这个东西你知道名词,你知道它是干什么,可是可能对细节不了解,这个不要紧的,当你遇到一个任务或者需求的时候,由于你知道每一个东西是干什么的,你就知道用什么东西去作,至于细节上怎么去操做,查啊,网络这么方便,至于怎么查,这个时候就是名词的做用了,这个才是你大一大二甚至大三上学期真正应该掌握的能力了,后面的时间就是不断的深化和实践。

不要以为本科的理论课程不重要,记住啊,是理论课程,你应该清楚理论课程都是在大二的时候结束的吧?他们的目的是什么,目的就是通识,须要你去掌握概念,你要是如今问我,小信号放大怎么实现,我不必定立刻就能答得出来,可是我能够去百度三极管,静态工做点,直流通路,交流通路,小信号模型,运算放大器,同相放大,反相放大这些东西了,很快就能够给你一个电路,这就是概念的重要性,可是若是你不知道三极管这个名字或者你也不知道三极管的做用,你告诉我,你拿什么关键词去查,关键词理不理解?固然,你要是够聪明,直接查放大器就好了,固然这里只是举一个例子而已,没必要当真。前一段时间啊,因为必定的须要,去看了一下《数字信号处理》和《现代谱估计》里面的AR模型,伯格算法,时频域分析,为何呢?由于我知道要这么干啊,卧槽,看一下还真TM有用,固然啦,这几门课当年都是学过的,我知道要这么干,因此我就去看了AR估计,深刻了解了一下细节,而后去吹牛逼吹得非常牛逼啊,要是不知道这些个概念啊,这个牛逼啊,它就吹不起来了……

因此,对于这种现象,最重要的能力不是你会写几行代码,会玩点Linux,而是一个完整的体系,这个体系搭不起来,都是扯淡的。软件工程师也要懂一点硬件啊,硬件工程师也要懂一点软件啊,不是说精通,可是至少知道概念啊。至于这个能力怎么培养,我也不知道,我能怎么办,我也很绝望啊。我能够猜出来,有人会说,我学校不咋地,学校软硬件设施跟不上,我该怎么办?我也不知道啊,我能怎么办,我也很绝望啊,可是我只知道认真学就对了。不要以为,其余学校就能怎么样,马克思主义告诉咱们,“人的主观能动性是很重要的”,可是事实又告诉咱们,“空谈误国,实干兴邦”,因此仍是赶忙干活去了,哎,我能怎么办?我也很绝望啊……

现象3:

少部分人声称,学好了也没什么用,普通人干10年,最多就20w,和互联网差太多,并且招的人少。

据网友表示,这些少部分人的观点,「普通人」——估计指的是普通的本专科生,研究生估计不在这范围内(固然大家研究生硬要说本身也是普通人我也没办法~)。因此,嵌入式三年经验工程师,12K月薪,一年算它发14个月的工资。12K乘以14等于16.8W,好像和20W有点差距,之后随着工做经验增加,也能够达到年薪20W了。985研究生,月薪14K,14个月,是19.6W,差很少了。毕业后就能达到20W,很不错了。

可是这么高的工资,也须要我的的长期努力和必定的机遇。

另外从调查来看,嵌入式人才其实也供不该求。嵌入式ARM曾经发布,《从事嵌入式行业年薪有多少,你和高薪究竟差了哪些东西?》,其中从事嵌入式行业年薪相较其余行业来讲,也具备较为客观的薪资水平。

现象4:

须要学习的东西多,若是是作项目须要学习,会拉长项目周期。

据知乎阏男秀表示,对比于互联网,「一个熟练的前端的成长周期大概是两年」,我也认同这个观点。CS专业学生大学四年里认真专研前端技术,本科毕业后是有可能进入BAT的。而EE,我大学时的德高望重的老教授还建议咱们,咱们这个专业(电子信息工程)去考研比较好。然后台,在我眼中,Java是目前最好就业的,有的人花几个月学会了Java的SSH框架,就立刻去找工做了(小学生干的活[doge脸])。

不过其实后台开发也造成了一个成长体系,复杂度不亚于嵌入式成长路线。

主要缘由仍是在于「嵌入式」这门技术涉及范围太大太多太普遍,以致于「此嵌入式非彼嵌入式」,有定义模糊、定义普遍之嫌。

嵌入式这个行业仍是很不错的,这是一个要运用到电子和计算机知识的领域。要在嵌入式领域里如鱼得水,一个必要条件是深入理解计算机组成原理(或微机原理),还有也要熟悉各类开发工具、测试工具,熟悉操做系统、网络通讯等。

固然,14年培训机构大肆宣传嵌入式,其实也有被炒做之嫌,不过年轻的时候谁没有自觉得是,自认为仅凭短期的努力就能够学好嵌入式,找到高薪工做,走向人生巅峰,其实仍是要踏踏实实走。

另外,我认为本科毕业的和研究毕业的绝对不可相提并论——平台和视野不一样,还有深度。

本科四年大都是打基础,普遍学习的阶段,毕业出来后可能对本身的专业领域略懂皮毛,或稍微深刻了解过某一点,四年时间里不可能就彻底熟悉了嵌入式领域的全部内容。毕业后确定还须要在某方向加深学习,或者多作项目积累经验,不少时候会接触到之前彻底没有接触过的嵌入式技术!这就是所谓的坑。没有必定的项目经验,得不到高工资,这就是所谓的坑。作硬件总会烧坏某些东西,作电路板不当心炸了电容,或者由于电容放电电到了本身,这也是所谓的坑。

而研究生,至少在某一方面深耕了两年或三年,在这两三年间挖坑无数也填坑无数,在技术上,视野及所处的平台确定要比本科生高一个层次,学识深度确定要比本科的深。不少东西别人认为是坑的在本身眼中则彻底不是。这个时候已经具有了大神的身形。出来找工做身价天然就高。

若是真的喜欢嵌入式的或想进嵌入式行业的(特指嵌入式Linux级别而不是MCU级别),一读研,再花两三年时间磨练本身的技术;二若是不读研就去嵌入式Linux公司作个两三年四五年,这个时候也基本熟悉嵌入式是怎么回事了。

相关文章
相关标签/搜索