0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

话说嵌入式这个行业到底需要什么样的技术人才?

传感器技术 来源:玩转单片机 2020-08-13 16:39 次阅读

从事嵌入式开发一年了,有些感想跟大家谈谈。可能很多朋友会像我当初一样,为前途而烦恼,为不知道储备什么知识而苦恼,所以写点东西给这些朋友们提供参考。另外,也可鞭策自己,让自己看到自己的不足,认清以后的发展方向。

首先IT是一个需要不断学习的行业,没有任何一个行业像我们这样需要不断地接触新东西,学习新知识,如同《学计算机的你伤不起呀》中吼的那样,搞上层开发的,各种编程语言搞死你;搞系统开发的,各种系统搞死你;做底层的,各种汇编芯片,指令集搞死你;当然了,无论做哪层,各种编译器,工具,软硬件知识等等都能搞死你。随便一类学问中的一小部分都是一摞砖一般的书啊。不懂的也可以来21ic问哦。其次嵌入式行业更像是IT中的IT。标准缺乏,规格多变,技术变化又特快,刚流行的技术可能没两年就会失去生机。比如塞班,Nokia放弃了,Intel的MeGoo吧,也没动静了,现在安卓火的很,说不定过几年就像今天的塞班,感觉像是永远跟不上时代的节奏。

所以,很多人都说IT是吃青春饭的,一点不为过,等到年纪大了,或许真的做技术会力不从心吧。尤其是国内,技术人员的地位……(你懂得)。

话说嵌入式这个行业到底需要什么样的技术人才?

仔细观察各种招聘的岗位要求吧,无非是

1、通用要求:比如什么学历,多少年工作经验,有创新精神,抗压能力强,吃苦耐劳,善于沟通,态度认真等等等等……

2、专业要求:这个可真的多了去了,但无非就是各种精通。什么精通控制理论,精通电路设计,精通各种硬件驱动开发,精通linux内核以及裁剪,精通C/C++/Java语言,精通DSP,精通ARM,精通什么linux/ecos/ucos/wince/VxWorks,精通嵌入式数据库,精通多线程编程,精通各种网络协议,精通各种总线协议,精通塞班/安卓/IOS平台应用开发,精通汇编,编译器,二进制工具;精通各种媒体封装格式,编解码;精通通信技术;精通硬件原理图;精通PCB设计;精通计算机结构;精通bootloader,精通……感觉只要是行业内的就要精通(我了个去!我感觉精通一门就得好久。。。)

看完这些,尤其是专业要求,头大了吧?

那么我们就分析一下上面的要求吧。各个公司就的通用要求像是互相复制粘贴的一样,比如学历(个人认为学力明显更重要),比如经验(是有n年的经验,还有n年前的经验用了n年?),还有个人秉性,我都不知道各个公司怎么在员工入职前考察。专业要求呢(其实精通其中几样就挺了不起了),一看就让人头晕,了解了嵌入式开发的结构可能就好理解些了。

从技术实现上讲,嵌入式的产品分为两大类:一类简单的,没有操作系统支持的;一类复杂的,有操作系统的。就目前发展方向看,后一种是趋势。前一种从程序实现上可分为3层:硬件层,驱动层,应用层;后一种分为4层:硬件层,驱动层,系统层,应用层。

所以嵌入式的开发大致需要这么从下到上4类工程师:嵌入式硬件开发、嵌入式驱动开发、嵌入式系统开发、嵌入式软件开发。

他们应该会哪些技能呢?

1、嵌入式硬件开发:这是硬件工程师来做,一般出身为自动化,电子通信等专业,他们要求熟悉电路等知识,非常熟悉各种常用元器件,掌握模拟电路和数字电路设计的开发能力,熟悉硬件开发模式和设计模式,熟悉各种芯片及外围设备,熟悉8位16位32位处理器嵌入式硬件平台开发。有的要求有FPGA的开发经验,精通常用的硬件设计工具:Protel/PADS(PowerPCB)/Cadence/OrCad。一般要有4~8层高速PCB设计经验。由于本人不是做硬件的,对这一块的不熟悉,所以不敢妄言。

2、嵌入式驱动开发:这个可以硬件工程师来做,也可以软件工程师来做,主要还是取决于设备。目前驱动开发,除非是简单的设备驱动,实际上很多时候都是移植,所以更多的是需要掌握目标平台的硬件和系统特性。所以至少得掌握一些操作系统、系统结构、计算机组成原理、数据结构相关知识。熟悉嵌入式ARM/MIPS/PowerPC架构。具有单片机、某种或多种32位嵌入式处理器的移植开发能力,熟悉bootloader过程,具有扎实的硬件知识,理解硬件原理图,能独立完成相关硬件驱动调试,能够根据芯片手册编写软件驱动程序。如果涉及到网络设备,或许还要掌握很多高层的网络协议的原理。个人感觉这一块虽然大部分不是很难,但却是极为重要的。当然如果要在这一层次提供对上层的多线程支持,某些驱动也是很难写的。

3、嵌入式系统开发:这个没听说硬件工程师来做的。做这块,熟悉操作系统的原理是必不可少的,比如内存管理,比如线程调度,比如文件系统等等;还要精通处理器体系结构、指令集、寻址方式、调试、汇编和混合编程等方面的内容;熟悉操作系统启动流程。对于linux,要熟悉Linux配置文件的修改,掌握内核裁减、内核移植、交叉编译、内核调试、启动程序Bootloader编写、根文件系统制作和集成部署Linux系统等整个流程。这一块要是真写起来,困难程度那是相当恐怖的,好在大多都是移植,很少听说有公司要去开发个操作系统的,没Google的实力啊。

4嵌入式软件开发:这个嘛,没有操作系统的话,程序一般不会特别复杂,如果有操作系统的支持,又和一般的软件开发很接近,所以尽可以看作是搞桌面开发。这个要求就是熟悉系统的API,精通C语言的高级编程知识,包括函数与程序结构、指针、数组、常用算法、库函数的使用等知识、数据结构的基础内容;掌握面向对象编程的基本思想,以及C++语言的基础内容;精通嵌入式Linux下的程序设计,精通嵌入式Linux开发环境,包括系统编程、文件I/O、多进程和多线程、网络编程、GUI图形界面编程、数据库;熟悉常用的图形库的编程,如QT、GTK、miniGUI、fltk、nano-x等,掌握各种应用层的网络协议使用,以及各种音视频技术等。

另外还有些以上四类都用得着的技能:

1基础技能:搞嵌入式开发,还有一些必不可少的基础技能。

a) 开发平台的熟悉,目前的嵌入式开发大多数是在linux或者类linux下的环境下进行的,那么linux的使用应该熟悉吧,shell脚本得会写吧,配置文件得会改吧,GCC GDB 得会用吧,Make工具得会吧?

b) 比如项目管理工具的使用,都什么年代了,不会用CVS,也不会用SVN?请问,你还活在软件时代的原始社会么?

c) 数据结构和算法,搞软件开发,不懂数据结构,不会算法优化,不会衡量复杂度,太不靠谱了吧?当然,这个不是要求啥算法都会,啥数据结构都记得住,最起码得知道有那么种东西,有什么作用,这样用到的时候好歹也能查啊

d) 编程语言,关于JAVA,我知道现在JAVA的异军突起,很是震动了编程语言界,但是在嵌入式开发下,不会C或者C++语言,实在说不过去。当然现在很多手机应用完全用java写的,如果你只想搞嵌入式的上层软件开发又不想深入下去,只用JAVA也未尝不可。关于汇编,嗯,这个可能挺难,毕竟跟具体的硬件架构(主要是CPU)有关,但是真的很有意思,而且在某些时候,它是不可替代的。

2特殊技能:对于嵌入式开发的某些部分必不可少,但对于有些(比如应用开发)可能没有多大用处。

a) 数字电路,这个……主要是了解一些基本的电路知识,如门电路、逻辑电路、存储器、寄存器,为了更好的理解嵌入式芯片,存储器,外围设备等硬件的设计,但往往在软件开发中未必能用的到。因为大部分硬件都提供了很完整的软件接口

b) 操作系统,这个说的是平台上选用的操作系统。嵌入式产品操作系统是在太多了。但操作系统的内部设计原理都是殊途同归。首先要去学习的是操作系统原理,去了解进程通信、内存管理、文件系统等几个重要的部分,因为这些在软件开发尤其是内核驱动开发时会用到。接下来可以去熟悉至少一种主流的操作系统,Linux是一个很好的选择,去了解它的内核架构,设备驱动架构,如何去编译,裁剪,编写应用程序,以及如何使用在具体的嵌入式产品上

c) 计算机的组成/微机原理,主要是为了了解微型计算机的硬件工作原理,明白CPU、总线、I/O、存储器等一些关键结构是怎么工作的,虽然是很枯燥的知识,但是对熟悉外围设备硬件工作方式,及操作系统,软件架构的设计及优化相当关键。

3扩展的能力,这些可能是要用到的。

a) 通信协议,对于非应用层的通信协议,我实在不知道是不是该把它放入操作系统的范畴,因为很多操作系统是没有网络部分的,但是在很多方面它又是由操作系统提供。当然这些下层通信协议,貌似不太用关心,因为太多的开源协议栈了。应用层的网络协议可能就要关心了,比如http,ftp,rtsp,rtmp,mms等等。

b) 音视频处理,比如文件封装啊,音视频的编解码啊,各种音视频的标准啊,还有流媒体什么的。Ffmpeg是一个很好的东西,建议学习一下。

c) 信息安全,恩,这一块貌似现在越来越受到重视了。

d) 数据库,唉,嵌入式设备能力越来越强啊!再搞搞我看也不用交叉编译了。。

有时和同事讨论起现在的行业需求,说到各个公司总是招不到人,程序员又总说找不到工作,自己就有很多感想,是公司要求高,还是程序员要求高?有时候看到一些招聘的职位要求,总是打击到自己的信心,一条一条数下来,好像自己能做到的还真没多少,只好让自己再努力些再努力些;当然有时也会觉得某些招聘不靠谱,看那一条条的要求,个人感觉要是全做到,普通人怎么也得努力个十年八年的,这样的大牛们,估计看不上给出的那薪资吧。

对于程序员来讲,做技术真的是很累很难的一件事情。网上搜一下,遍地的抱怨贴,情感贴,都充分反映了这个职业对身体和情感的考验。如果你不畏艰难,想把技术做下去,那么努力吧,也许某天你会随便拿起一份招聘启事,鄙视一眼:“靠!就这点要求,老子去都掉价!”,那么你就是真正的大牛了!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5068

    文章

    19014

    浏览量

    303220
  • 操作系统
    +关注

    关注

    37

    文章

    6737

    浏览量

    123190
  • 嵌入式开发
    +关注

    关注

    18

    文章

    1022

    浏览量

    47511

原文标题:牛人总结: 想入行嵌入式开发?要这样来规划

文章出处:【微信号:WW_CGQJS,微信公众号:传感器技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    有什么比较热门的嵌入式项目?

    大佬们想问一下可以做什么样嵌入式项目好找工作?工作1到2年左右
    发表于 11-08 09:57

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被称为嵌入式系统的核心组件,是一种用于控制和数据处理的计算机硬件,其设计旨在嵌入特定设备中执行专门任务。嵌入式主板如同是设备的“大脑”,主要功能是根据
    的头像 发表于 09-30 10:05 364次阅读

    嵌入式热门领域有哪些?

    另一个备受关注的领域,已经在汽车行业展现出革命性的影响。在自动驾驶领域,嵌入式系统的重要性日益突出,它们被广泛应用于与传感器和控制系统配合,实现车辆的自主运行。自动驾驶技术的急速发展为嵌入式
    发表于 07-16 09:23

    AI智能眼镜都需要什么芯片

    国内的厂家又该如何跟上这一潮流趋势?那咱们国内厂商的AI智能眼镜究竟需要什么样的芯片来支撑它的运行呢?如果你对以上问题感兴趣的话就来听我唠唠吧。接下来介绍设计AI智
    的头像 发表于 07-11 08:17 889次阅读
    AI智能眼镜都<b class='flag-5'>需要什么</b>芯片

    嵌入式开发前景怎么

    嵌入式开发前景非常广阔,这主要得益于物联网、人工智能、大数据等技术的快速发展,以及嵌入式系统在各个领域的广泛应用。以下是对嵌入式开发前景的详细分析
    的头像 发表于 07-10 09:00 2498次阅读
    <b class='flag-5'>嵌入式</b>开发前景怎么<b class='flag-5'>样</b>?

    嵌入式软件工程师如何提升自己?

    ,不断提升自己的专业技能,保持与行业最新技术的同步。 3.积累项目经验 项目经验对于嵌入式软件工程师的职业发展至关重要。通过参与实际项目,可以锻炼自己的技能提高问题解决能力和团队合作能力。建议积极参与
    发表于 06-12 11:20

    嵌入式开发就业前景怎么?

    。在智能家居领域,嵌入式开发的主要工作是开发各种智能化设备和系统,如智能照明、智能安防、智能家电等。嵌入式开发人员需要掌握相关的硬件和软件技术,如处理器、传感器、通信
    发表于 06-07 14:51

    嵌入式会越来越卷吗?

    的变化。它的多样性、技术创新和与其他技术的融合,将在未来不断推动其发展。从我们的日常生活到工业和医疗领域,嵌入式系统将继续演变并对我们的生活产生深远影响。这需要我们持续深入了解新
    发表于 03-18 16:41

    嵌入式工程师需要掌握哪些技术?

    嵌入式工程师需要掌握哪些技术? 嵌入式系统是当今科技领域中的重要组成部分,它们存在于我们生活的方方面面,从智能手机到汽车控制系统,从家电到医疗设备。因此,对于那些想要进入
    发表于 03-04 16:38

    定制嵌入式主板,需要考虑的功能有哪些?

    随着科技的不断发展和进步,嵌入式系统在各行各业中得到了广泛的应用。嵌入式主板作为嵌入式系统的核心组件,起着至关重要的作用。在定制嵌入式主板时,需要
    的头像 发表于 02-29 17:38 490次阅读
    定制<b class='flag-5'>嵌入式</b>主板,<b class='flag-5'>需要</b>考虑的功能有哪些?

    嵌入式学习步骤

    嵌入式行业是一个涉及广泛领域的行业嵌入式、物联网、人工智能、智能与科学、电子信息工程、通信工程、自动化工程、测控、计算机科学等专业在嵌入式
    发表于 02-02 15:24

    开发嵌入式产品需要注意哪些问题

    话说,只会写代码的工程师不是好的工程师,这句话不是没有道理的,初学者可能不理解,但过来的老司机肯定知道。 一款产品如果需要长期维护、销售,肯定避免不少开发文档。这里给大家讲述一下开发嵌入式产品常见的文档。
    的头像 发表于 01-17 10:37 356次阅读

    到底要不要放弃嵌入式这条路?

    、工业自动化等领域发展,嵌入式技术无疑是非常重要的技能。 市场需求决定人才引进 市场需求相对于其他方面来说,是一个非常关键的影响因素。嵌入式技术
    发表于 12-07 10:43

    嵌入式硬件和软件哪个好?

    ,他的领域是比较广泛的,在一些消费电子,通讯设备等这些方面。因为领域大,相对而言就业领域也是比较大的,人才需求量也是一嵌入式软件工程师相对于硬件工程师来说,人才需求比硬件工程师要大
    发表于 12-05 15:17

    智能汽车CAN FD总线需要什么样的降噪对策?

    智能汽车CAN FD总线需要什么样的降噪对策?
    的头像 发表于 11-30 09:37 582次阅读
    智能汽车CAN FD总线<b class='flag-5'>需要什么样</b>的降噪对策?