嵌入式工程师有前途吗 嵌入式开发的职业发展方向是什么

简介: 嵌入式早在70年代出现到现在,有将近30年的发展历史,能够长久存在并且可持续发展。从工程师起步, 一般有几个发展方向,一个是成为技术方面的核心,领域内的专家;另一个是从项目中锻炼起来,成为项目主管或是管理型人才;再有就是利用自己的技术及行业经验去创业。

       嵌入式早在70年代出现到现在,有将近30年的发展历史,能够长久存在并且可持续发展。从工程师起步, 一般有几个发展方向,一个是成为技术方面的核心,领域内的专家;另一个是从项目中锻炼起来,成为项目主管或是管理型人才;再有就是利用自己的技术及行业经验去创业。

 

 

 嵌入式工程师有前途吗 嵌入式开发的职业发展方向是什么

硬件和软件的发展方向是不同的。说说软件需要学习的知识。虽然说搞嵌入式软件更多时候是在实际的工作中学习的,但一些重要的基础知识不可或缺。

 

 1. 计算机组成/微机原理  



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

 

2. 操作系统



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

 

3. 数字电路



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

 

4. 编程语言:C语言和汇编



对于C语言本身的基础来说,无非是把结构化,函数,数组,指针弄熟,但是嵌入式开发对C语言应用的要求会更高。要对内存分配,文件访问,寄存器访问, 预处理指令,中断处理程序等等相当熟悉,这些都是在使用中要注意的细节问题。C语言对程序的优化也很重要,而这些往往是需要从全局去考虑。汇编一般是和处 理器的指令集相关的,可以更好的去理解处理器的工作原理,往往是用在一些需要效率的地方,如系统的初始化。

 

5. 数据结构和算法



数据结构在嵌入式开发中也很重要,比如说操作系统里的很多实现都用到了具体的算法。基本的数据结构需要掌握,如各种链表,树,图等等;而算法的学习需要数学知识作为铺垫,用计算机语言去实现。对于软件从业人员来说,算法终究是一个工具,在实际应用时再深入挖掘也可。

 

6. 软件工程/软件测试/项目管理基础



这些是软件开发人员的必备知识。

 

7. 开发平台



嵌入式的开发平台不局限于一种操作系统,因此要熟悉各种操作系统下的命令、编辑器及开发工具,这一点往往被很多人忽视。举个例子,Linux下的程序员开发环境往往是按自己的习惯搭建,熟练掌握一种编辑器如Vim/Emacs可以大幅度提高工作效率。磨刀不误砍柴工。

  

嵌入式领域的方向是很多的,它所应用到的行业范围也很广。因此除了这些基础的知识以外,在具体的应用中可能还需要一些其它的知识,这些知识的每一种都可以研究的很深,举几个例子。

 

1. 内核,驱动及中间件



内核开发和驱动本身就是一个方向,驱动和硬件接口相关,而内核的修改和移植更是需要对OS有很深的理解。至于中间件,一般是基于OS或存在于OS和应用程序之间的库,最典型的就是基于Linux的Android。

 

2. 通信协议



通信协议有很多种,经常用到的有网络通信协议,无线通信协议,串口/USB通信协议等等。

 

3. 音视频技术



牵涉到音频视频处理,压缩,编解码等等。

 

4. 信息安全

如加密技术,身份认证,数字证书等等。

 

5. 行业知识

和具体行业或领域相关的知识,如通讯、工控、电子等等。

  

这里有一个不错的学习步骤:

  1. 基础知识中,计算机组成、操作系统、编程语言和数据结构是必需的。

  2. 找一种CPU体系,了解其核心架构,学习指令集,比如说ARM。

  3. 找一种OS,如Linux,或是传统RTOS,如Nucleus、eCos,读源码和文档,理解OS内部实现,包括进程,任务,消息机制,内存管理,设备驱动,中断等核心内容。

  4. 找一块成熟的开发板,板级资料要齐全,熟悉嵌入式软件开发流程。

  5. 在项目过程中深入学习其它的技术。

  

总之,这些知识的学习不是一蹴而就的,嵌入式职业发展过程会很漫长,也没有什么特别的技巧。可以多关注下创客学院,有什么不懂的问题可以随时咨询。需要去看大量的技术文档和源码,而这些文档大部分又都是英文的。在工作和做具体项目的过程中会学习的比较快,理论结合实践才是王道。

 

相关文章
|
9天前
|
存储 开发框架 前端开发
揭秘:软件开发——为何堪称庞大的 “软件工程” 宇宙-优雅草卓伊凡
揭秘:软件开发——为何堪称庞大的 “软件工程” 宇宙-优雅草卓伊凡
42 9
揭秘:软件开发——为何堪称庞大的 “软件工程” 宇宙-优雅草卓伊凡
|
7月前
|
JavaScript 前端开发 Java
技术探索之旅:从迷茫到顿悟
本文记录了作者在技术领域的探索历程,从初入行的迷茫、尝试新领域的勇气,到不断学习和提升后的顿悟。通过个人经历,展现了技术成长的曲折与收获。
|
8月前
|
算法
编程之舞:技术感悟与生活哲学的交织
【8月更文挑战第16天】在数字世界的舞台上,编程不仅是技术的展示,更是思考的艺术。它如同一场精心编排的舞蹈,每一个动作、每一次旋转都蕴含着深远的意义。本文将带领读者走进编程的内在世界,探索那些看似晦涩难懂的代码背后所隐藏的生活哲学和情感表达。通过个人的技术感悟,我们将一同见证编程如何超越语言的界限,成为一种独特的沟通方式,连接着人与人、人与机器之间的思想与灵魂。
|
9月前
|
数据采集 传感器 监控
高考后的职业规划:学习LabVIEW开发前景广阔
高考后的职业规划:学习LabVIEW开发前景广阔
153 0
|
11月前
|
Web App开发 人工智能 前端开发
视野修炼-技术周刊第65期 | 兴趣是一种天赋
🔥强烈推荐 1. 和尤大聊项目进展、开源社区协作和前端思考 围绕近期 Vue.js / Vite的技术变化、开源社区维护、前端未来发展的思考展开。也聊了一些轻松话题,比如:怎么看他被称呼尤大,祖师爷这个绰号?github 上yyx990803 神秘的数字是什么意思?Vue4 啥规划?未来是否有计划退休?写 Vue 用不用 Copilot?发际线如何保养等非技术话题。 这是音频内容,推荐对 Vue&Vite&尤大 感兴趣的同学听一下,干货挺多 尤大 Github(yyx990803) 账号这串数字是初中学号😄 很喜欢尤大最后说的一句话 ”兴趣是一种天赋“
|
程序员 测试技术 开发者
「程序员转型技术管理」必修的 10 个能力提升方向
对许多开发者而言,深耕技术,然后成为技术专家或许是职业发展的唯一答案。但如果你赞同「软件开发只是我众多职业目标中的一个」,也许你可以试试「技术管理之路」。 我原来觉得和计算机打交道比跟人打交道轻松得多,所以我成了一名软件开发者。一段时间后,我发现自己越来越多地在给别人提供帮助;我喜欢领导项目,热衷于推动更好的代码标准。于是,我几乎毫无挣扎地成为了一名技术管理者。
179 0
|
文字识别 算法 NoSQL
读书分享:《程序员修炼之道:通向务实的最高境界》的思想经验
相较于全书众多的干货笔记,这篇文章是个别思想经验的总结,希望和大家交流。 ETC;DRY不仅限于编码;维护一个项目概念列表;帮助业务方理解他想要什么;防御性编程;继承税;学会沟通;小实验
读书分享:《程序员修炼之道:通向务实的最高境界》的思想经验
|
供应链 监控 架构师
软件测试工程师 路在何方?如何发展?职业规划是怎样的?
软件测试工程师 路在何方?如何发展?职业规划是怎样的?
285 2
软件测试工程师 路在何方?如何发展?职业规划是怎样的?
|
存储 人工智能 监控
计算机基础——计算机应用领域以及未来发展趋势
计算机基础——计算机应用领域以及未来发展趋势
527 0
|
存储 监控 安全
从平凡到非凡 阿里云李克的技术进阶之路
人物简介:李克 阿里云边缘云计算领域技术负责人 2009年硕士毕业加入阿里至今,一直从事CDN及边缘云领域的技术研发工作,在CDN、边缘计算等方向上有丰富的行业经验,全程参与了阿里云CDN商业化转型,边缘云中台体系的建设,研究方向包括数据智能、分布式架构和性能优化、云计算等领域。目前主要负责边缘云的技术研发以及架构演进。
988 1
从平凡到非凡 阿里云李克的技术进阶之路
下一篇
oss创建bucket