学习嵌入式的职业发展

身边朋友问我如何学习嵌入式,在这个行业健康的发展。我一直未能做一个系统的回答。这里我想写篇文章,彻底的回答这个问题。
嵌入式,这是个术语。在我看来,嵌入式系统是:为了应用高度定制软件和硬件的计算机系统,满足一系列的特定应用需求。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。IEEE(国际电气和电子工程师协会)对嵌入式系统的定义:“用于控制、监视或者辅助操作机器和设备的装置”。原文为:Devices Used to Control,Monitor or Assist the Operation of Equipment,Machinery or Plants。(此段来自百度) 从我个人的理解,到普遍的定义,再到IEEE的权威。可以看到,嵌入式系统首先是计算机系统。我们不能忽略这个问题。既然是计算机系统,那么学习嵌入式,计算机的基本理论知识我们要不要学习呢?比如说,编译原理、数据结构、操作系统、离散数学、计算机系统体系结构。个人认为,没学走,就学跑是非常要不得的。很多人意识不到这点。加之国内很多学校没有培养嵌入式的专业,没有相应的人才输出。很多学习嵌入式的人都是从电子类的专业,自动控制类的专业等等转过来的。这个转型也意味着理论上的巨大缺憾。如果要问,排序算法有几种,恐怕只知道冒泡和希尔,不知道堆排序,快速排序,基数链式排序这些算法,更不知道还有内部排序和外部排序之分。查找算法只知道个基本的2分查找。对于树的查找算法一无所知。怎么说呢?也许很多从业的程序员,不乏专业水平相当优秀的,认为这些并不重要。我只能说,你命好,做这种具体的工程大于理论的东西。实际上,如果从一个嵌入式的程序员成长为系统设计者,或者更高的技术职位,要从更深的层次看问题。理论起到了非常大的支撑作用。
比如说,设计一个普通的微波炉控制系统。说实话,这个代码应该是非常简单的。但是,作为精细的设计者,不仅仅要考虑需求是否完成。还用从整个程序的空间杂度、时间杂度上去分析,并降低整个代码的复杂度。从而进一步降低软件结构、算法实现对处理器的要求,达到对成本的节约。一般来说,成本不光光是BOM成本,还包括人力成本,运营成本,开发成本,维护成本等等。任何软件系统都要测试,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值