导图社区 嵌入式招聘小Tips-猎头
嵌入式招聘小Tips:包含嵌入式招聘行情(水涨船高),嵌入式工程师的价值,嵌入式招聘难点,嵌入式到底是什么,等等
编辑于2022-09-19 04:49:45 广东嵌入式招聘小Tips
嵌入式招聘行情(水涨船高)
现象
嵌入式的薪酬情况
来自BOSS直聘数据;5~10年工作经验的职位75分位水平是35K
我司接到的嵌入式需求:在系统里有241条;其中2019~2021年只有98条,2022年有143条
真正的原因是: 第一,嵌入式开发者的工作岗位在变多,尤其是中高端开发岗位数量明显增多。第二,更多巨头公司在嵌入式开发部分的投入在增加,而智能硬件创业公司融资也比以前更好。手里有钱了自然就是挖人,砸钱请更能干活的人。简单总结,就是整个行业更有钱了需求量大了,所以薪资水平水涨船高了。 为什么整个行业上升了?本质原因有两个。 一个是美国对中国科技的无理打压,尤其对华为的芯片封锁让国内下定决心发展国产芯片产业,大量的投资进入芯片产业链,众多芯片公司拿到了钱。而嵌入式开发属于芯片产业下游,相关性极强。 芯片厂商每个数字芯片产品线下都有相应的嵌入式开发团队,要去开发相应的固件库,移植底层软件如uboot,kernel等,大部分芯片厂家也需要给客户提供基于自家芯片的demo方案,sdk,这些都需要很资深的嵌入式开发者来做。这个方向也是嵌入式开发者的顶级高薪就业方向之一。我在前面的文章说过的。 以前为什么嵌入式开发者到年薪30-50万就很难涨薪了?因为再没空间了啊!以前芯片基本都是国外公司的(如ti nxp st 高通等),芯片相关的开发岗位都在国外,国内根本不招人,你在国内给芯片原厂服务最多就做个FAE,就这都能拿到年薪50万+(我记得2015年时有猎头给我推cypress还是microchip的fae岗位就是50万+的) 而现在一大票国产芯片厂商拿到钱在发展,就会创造一大票高端岗位,他们就会高薪挖人,把行业内资深开发者抽水,这就形成了顶级公司挖一流的,一流公司挖二流的,二流公司挖三流的,全行业都整体性提升了。 另一个是国家的产业升级大方针,以及新冠疫情加速了中国的发展模式从学习美国转向学习德国。简单说就是由发展高端服务业,转向发展高端制造业。所以大家会发现从去年到今年越来越明显的打击互联网垄断巨头,阿里腾讯美团等都没有以前那么受宠了。而芯片行业上下游,光伏锂电等新能源,智能网联汽车等新科技却不断被鼓励。未来发展方向已经从偏软件的科技服务,转向了偏硬件的所谓“硬科技”,这就是时代机遇。 资本市场的嗅觉是最敏锐的。当国家政策的引导越来越清晰后,投资会不断进入硬科技相关行业,薪资水平自然也会水涨船高,借此吸引更多人才进入。 这就是历史进程。前些年的互联网和移动互联网大发展,高薪就是因为踩在了他的历史进程中。而现在历史的进程又向前推进了,新的一轮发展周期开始了。新的机会也出现了。
什么样的职位是嵌入式?
驱动开发工程师
软件工程师
linux系统开发工程师
DSP软件工程师
FPGA设计工程师
嵌入式工程师的价值
嵌入式工程师的工作流程与桌面照片
嵌入式为什么重要(嵌入式的应用就像猎头要推简历结果发现没有WORD或者PDF一样)
说白了就是先设计硬件,然后根据需求编写能在该硬件上运行的软件,就成了所谓的“智能硬件”。 或者说得还不够明白,那行,我们说一说具体的嵌入式产品有哪些,嵌入式是做什么的: 传统嵌入式产品:空调主控模块、冰箱主控模块、家用遥控器、智能手机、教学投影仪、音响系统、雷达系统、路由器等等 前沿嵌入式产品:无人机、智能音响、机器人控制、城市天眼系统、智能家具、自动驾驶汽车、扫地机器人、小米手环等等。
子主题
嵌入式招聘难点
对招聘者能力要求比较高
行业专业知识能力
行业专业名词特别多
行业技术有一定的门槛
岗位JD和候选人简历很难识别
多个岗位互相关联又互相区别
需要多种不相关技能叠加
类似岗位
芯片设计岗位
高性能计算岗位
嵌入式C/C++岗位
电力电子AC-DC类岗位
业务/应用架构师
供不应求
原有人员流失
1.供不应求 我一直跟无际单片机编程的那些大学生学员说,不要过于迷恋什么秋招、校招的事情,只要自己把项目做完吃透,在这个行业根本不用担心找不到工作,一线城市应届起薪7K-10K很正常。 校招的不一定就是好,说不定进去就是廉价打杂劳动力,除非是一些大公司,跳槽以此来做背书会更顺利。 这份自信源于我对目前行业的了解,以及身边一些同行朋友辞职后很快能找到工作的案例,再加上对未来趋势的判断。 这个行业目前肯定是有点供不应求的,特别是经验丰富,在某个领域有较深造诣的工程师。 个人认为有以下几个因素影响: ① 很多人不太愿意从事这个行业,因为学的东西同样多,复杂程度也差不多,为我不去做工资高的? ② 很多人在犹豫期间受到了一些负面消息的影响,比如说很多人喷这个行业不行,工资低,天花板低之类的,导致很多人放弃。 ③ 想学的人走错了方向,学习很长时间看不到结果,误认为这个行业很难不适合自己放弃。 ④ 一些资深工程师转行或者创业去了。
学的东西更多,收入不如互联网
信息误导觉得薪酬低赚钱少
嵌入式工资为啥比纯软工资低那么多?因为本质上是制造业。在制造业上也属于高薪了
行业蓬勃发展
2.物联网及前沿科技带动 现在很多物联网及前沿科技,比如智能家居、智慧农业、智慧交通、自动驾驶等等,基本都离不开嵌入式技术,很简单的道理,你肯定需要终端(硬件)去执行控制或采集数据。 嵌入式行业其实也卷的很厉害,不管你做什么产品,都能找到非常多方案公司做,想要活下去大多数只有压缩成本,要么从员工里抠,要么从原材料里抠。 而小公司要么就是做别人看不上的细分领域,要么就是拥有核心技术,要么有渠道资源,否则根本熬不过3年。 后面大家研究怎么把硬件连上互联网,衍生出更多的产品应用,物联网就来了。 所以,在短时间内诞生了很多后起之秀,经过几轮路演、融资、从一个小互联网公司发展成硬件,软件,平台一体的大公司,这或许就是风口的力量。 目前看到大多数的物联网产品和嵌入式都脱不了关系,物嘛,其实就是硬件,让它具备连接互联网的能力。 这种你用纯硬件实现试试?基本不太可能,所以这种产品在硬件基础上写程序,这不就是嵌入式工程师的工作嘛。 就像以前的大哥大,以前就只能打电话,但是有了2G、3G、4G、wifi以后,用途就多了。 应用场景多了,对这块的需求都是五花八门的,也需要大量工程师去开发。 3.暴风雨后,对国芯的需求 今年我们对上游的依赖问题暴露无遗,特别是芯片价格涨10倍。 我一个朋友,做出口的产品,好不容易熬了3年,其实3个月就做出来了。 主要是老外效率太低,做事过于严谨,一个小功能改改只需几分钟,寄到国外半个月,用户再测试3个月,来来回回改了3年。 之所以国内没竞争对手,因为没公司会接这种单。 好不容易产品准备量产了,芯片涨价了,印象中是我做研发以来涨幅最猛的一次。 这还做个球,以前怕没单,现在怕接单,接了亏钱,不接丢客户,心态朋友3秒… 很多人可能觉得芯片涨价对自己没什么影响,其实间接影响还是挺大的。 如果你今年去买车你会发现提车比往年等更久,车造好了,差芯片。 反正,能影响到的行业涉及到169个,手机、电脑、汽车等等太多了。 工厂做产品,不可能亏本去做,所以最终还是由我们消费者买单。 所以,解决上游产业国产化才不会被人”卡住脖子”。 或许啊,多给这类企业一些扶持,让企业挣钱了,研发人员的待遇才能上去,待遇上去了自然没多大后顾只有。 不要搞得大家总是吃着自己碗里的,看着别人锅里的,似乎都在等待一个机会脱离苦海…
物联网及前沿科技,比如智能家居、智慧农业、智慧交通、自动驾驶、机器人等等
暴风雨后,对国芯的需求
嵌入式到底是什么
嵌入式系统的定义
学术定义
嵌入式即嵌入式系统,IEEE(美国电气和电子工程师协会)对其定义【是用于控制、监视或者辅助操作机器和设备的装置,是一种专用的计算机系统】; --------------------------国内普遍认同的嵌入式系统定义是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统;从应用对象上加以定义来说,嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。 嵌入式系统作为装置或设备的一部分,它是一个控制程序存储在ROM中的嵌入式处理器控制板 事实上,所有带有数字接口的设备,如手表 微波炉 录像机 汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑 ——来自百度百科
通俗解释
嵌入式系统,就是, 在其它电子产品或设备中,加入(嵌入)一个小小的"计算机"。 目的是为了,人机交互、采集传感器数据、处理数据、控制执行机构和通信。这些是"计算机"擅长的。 这个小小的"计算机",就是嵌入式系统。它由各种"单片机"或叫微控制器再加上其它外围电路组成。 要求这个小小"计算机",体积小、功耗低、成本低、实时性强、可靠性高。这是个小小的"专用"的"计算机",不追求最高性能,适用就行。 麻雀虽小,五脏俱全,要求还很高!会飞! 嵌入式系统的学习中,要掌握几种微控制器MCU,如51单片机,ARM微控制器等,种类很多,要根据实际项目要求,使用不同的微控制器。 硬件设计,利用多种设计工具,利用微控制器和外围芯片,设计产品原理图,设计印刷电路板PCB,制板、焊接、调试。电子系学生很擅长这些。 软件设计,要会C/C++需要开发,懂点汇编语言,可以开发无操作系统的裸机运行的程序。复杂一些的可以选择uCOS,FreeOS,linux等操作系统,在其之上用C,以至用python或micropython等语言来开发。计算机系学生很擅长这些。 所以,搞嵌入式系统,即要懂硬件,也要懂软件,还要懂通信。是电子、通信、计算机的融合。 以后要求更多,主要是人工智能方面的,叫边缘计算。
嵌入式系统的特点
1.系统内核小。由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多。一般常用的面向ARM的linux内核在数MB范畴,而通用计算机的内核往往都要几百MB甚至更多。
2.专用性强。嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植,即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改。同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的“升级”是完全两个概念。
3.系统精简。嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。
4.高实时性的系统软件是嵌入式软件的基本要求。而且软件要求固态存储,以提高速度;软件代码要求高质量和高可靠性。
5.嵌入式软件开发要想走向标准化,就必须使用多任务的操作系统。嵌入式系统的应用程序可以没有操作系统直接在芯片上运行;但是为了合理地调度多任务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配RTOS(Real-Time Operating System)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。
6.嵌入式系统开发需要开发工具和环境。目前,由于其本身不具备开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。
7.嵌入式系统与具体应用有机结合在一起,升级换代也是同步进行。因此,嵌入式系统产品一旦进入市场,具有较长的生命周期。
8.为了提高运行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片中。(所以也叫做固件)
嵌入式系统的组成
硬件
嵌入式微处理器
嵌入式系统硬件层的核心是嵌入式微处理器,嵌入式微处理器与通用CPU最大的不同在于嵌入式微处理器大多工作在为特定用户群所专用设计的系统中,它将通用CPU许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。
存储器
嵌入式系统需要存储器来存放和执行代码,可以位于微处理器的内部或外部,其容量为256KB~1GB,根据具体的应用而定,一般片内存储器容量小,速度快,片外存储器容量大。
通用设备接口和I/O接口
目前嵌入式系统中常用的通用设备接口有A/D(模/数转换接口)、D/A(数/模转换接口),I/O接口有RS-232接口(串行通信接口)、Ethernet(以太网接口)、USB(通用串行总线接口)、音频接口、VGA视频输出接口、I2C(现场总线)、SPI(串行外围设备接口)和IrDA(红外线接口)等。
软件
中间层、驱动层、底层
这里要举猎头PM和交付顾问的例子
硬件层与软件层之间为中间层,也称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包(Board Support Package,BSP),它将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP 层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。BSP具有以下两个特点。
硬件相关性:因为嵌入式实时系统的硬件环境具有应用相关性,而作为上层软件与硬件平台之间的接口,BSP需要为操作系统提供操作和控制具体硬件的方法。
操作系统相关性:不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式。
实际上,BSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件联系紧密的软件模块。设计一个完整的BSP需要完成两部分工作:嵌入式系统的硬件初始化以及BSP功能,设计硬件相关的设备驱动。
系统应用层、软件层
实时多任务操作系统(Real-time Operation System,RTOS)。RTOS是嵌入式应用软件的基础和开发平台。
文件系统
图形用户接口(Graphic User Interface,GUI)
网络系统
通用组件模块
应用软件层
应用软件层是由基于实时系统开发的应用程序组成,用来实现对被控对象的控制功能。功能层是面向被控对象和用户的,为方便用户操作,往往需要提供一个友好的人机界面。对于一些复杂的系统,在系统设计的初期阶段就要对系统的需求进行分析,确定系统的功能,然后将系统的功能映射到整个系统的硬件、软件和执行装置的设计过程中,称为系统的功能实现。
最重要的判断标准
题外话
嵌入式系统和通用计算机和单片机的异同与区别
形式与类型: “通”:实实在在的计算机。按其体系结构、运算速度和规模可分为大型机、中型机、小型机和微机; “嵌”:“看不见”的计算机,形式多样,应用领域广泛,按应用进行分类。 组成: “通”:通用处理器、标准总线和外设、软硬件相对独立; “嵌”:面向特定应用的微处理器,总线和外设一般集成在处理器内部,软硬件紧密结合。 系统资源: “通”:系统资源充足,有丰富的编译器、集成开发环境、调试器等; “嵌”:系统资源紧缺,没有编译器等相关开发工具。 开发方式: “通”:开发平台和运行平台都是通用计算机; “嵌”:采用交叉编译方式,开发平台一般是通用计算机,运行平台是嵌入式系统。 二次开发性: “通”:应用程序可重新编程; “嵌”:一般不能重新编程开发。 发展目标: “通”:编程功能电脑,普遍进入社会; “嵌”:变为专用电脑,实现“普及计算”。
单片机
所谓单片机,就是把中央处理器CPU(Central Processing Unit)、存储器(Memory)、定时器、I/0(Input/Output)接口电路等一些计算机的主要功能部件集成在一块集成电路芯片上的微型计算机。虽然单片机只是一个芯片,但从组成和功能上看,它已具有了微型计算机系统的含义。中文“单片机”的称呼由英文名称“Single Chip Microcomputer”直接翻译而来。单片机把微型计算机的各主要部分集成在一块芯片上,大大缩短了系统内信号传送距离,从而提高了系统的可靠性及运行速度。因而在工业测控领域中,单片机系统是最理想的控制系统。所以,单片机是典型的嵌人式系统,是嵌入式系统低端应用的最佳选择。
通用计算机系统的技术要求是高速、海量的数值计算,其技术发展方向是总线速度的无限提升、存储容量的无限扩大;而嵌入式计算机系统的技术要求则是智能化控制,技术发展方向是与对象系统密切相关的潜入性能、控制能力与控制的可靠性不断提高。
将单片微型计算机简称为单片机(MICRO SINGLE COMPUTER),它不是完成某一个逻辑功能的芯片,而是把一个计算机硬件系统集成到—个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。是一种典型的嵌入式微控制器。
为什么要求懂linux?
linux特点
开源免费无黑箱
模块化的设计结构带来灵活性和高效性
Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机
图形用户界面
和嵌入式的结合
首先,Linux是开放源代码的,不存在黑箱技术,遍布全球的众多Linux爱好者又是Linux开发者的强大技术支持;
其次,Linux的内核小、效率高,内核的更新速度很快;
第三,Linux是免费的OS,在价格上极具竞争力。
Linux适应于多种CPU和多种硬件平台,是一个跨平台的系统。到目前为止,它可以支持二三十种CPU(所以可以使用便宜的国产CPU)。而且性能稳定,裁剪性很好,开发和使用都很容易
开发者社区很友好,很多工具使用
还有使用Linux为的是来开发无线连接产品的开发者越来越多。Linux在快速增长的无线连接应用主场中有一个非常重要的优势,就是有足够快的开发速度。这是因为LInux有很多工具,并且Linux为众多程序员所熟悉。因此,我们要在嵌入式系统中使用Linux操作系统。
嵌入式android源码架构:uboot+linux kernel+android(包含文件系统,虚拟机,UI) 嵌入式linux:这是大部分人认识的linux uboot+linux kernel+文件系统+QT(UI) 当然两者的linux 内核因为上层UI的不同会稍有差别,不过还是非常接近的,做过linux的人可以无缝切换到android底层开发,所以大家说的学习android系统,其实最重要的就是学习linux驱动,再加一下android下的专门的HAL,JNI,java等等,不过大公司android相关部分也是专门的人做的了。甚至连QT都不用了,因为linux很多设备都是没有UI的,所以要来干啥?直接无界面,照样是嵌入式linux。
嵌入式招聘小tips
问清楚甲方的must和plus
原因是其实嵌入式人还是挺多的(如果泛泛搜的话)
判断JD的层次属于四个层次中的哪个,并重点寻访
卡行业来
转行业难
不同行业有何不同
因为需要了解行业规范
找逻辑相近的行业
运动相机找安防监控(图像采集和传输、编解码)
机器人找自动驾驶(都有传感器、大量数据、都需要联网)
linux驱动工程师可以互相找安卓的驱动工程师;甚至可以跨行业去找人
工程师通病容易拿offer且turndown
制作PDF从头到尾来影响
嵌入式系统
应用软件
系统应用层、软件层
中间层、驱动层、底层、bsp、HAL
软件
硬件
嵌入式微处理器
存储器
通用设备接口和I/O接口