行业顶级专家对嵌入式工程师的十点建议
扫描二维码
随时随地手机看文章
随着智能化的进一步扩张和物联网的逐渐铺开,嵌入式的重要性不言而喻,对应的嵌入式工程师们迎来空前的机遇同时,也感受到了对自身技术素质的考验压力。本文集合了来自行业内10位顶级专业人士的建议和忠告,所述内容字字珠玑,相信可以对处在各个阶段的嵌入式工程师们都是非常有价值的参考。
1.了解网络互联的意义
通常来讲,如果某个人懂得用C或者C++语言编程,其实已经证明这个人是个合格的嵌入式工程师了。或者可以说,这个人都已经可以凭这点解决许多工程问题了。
不过呢,懂得网络技术将会使这个工程师获益良多。举个例子,一个优秀的嵌入式工程师有时候会参与到将虚拟XML植入到嵌入式系统中的项目中。这是一个非常有潜力的方向,通过利用各种底层标准和专有协议来作用于网络的抽象层,最终可以实现各独立器件间的自发式大数据传输处理。也有人将此理解为网络小设备的 “即插即用”版本,也是有一定的道理。
--来自Ken Wada,Aurium Technologies董事长
2.掌握搜索技术
这里讲的不是关于搜索引擎的技术架构,而是普通的搜索引擎的使用。也就是说,嵌入式工程师要懂得利用手上的搜索工具去寻找自己需要的资源。
要学会高效的寻找对自己有用的开源代码,浪费时间在自己琢磨开发上是非常不明智的,一定要懂得利用网络中已经存在的那些共享资源,那些已经足够支持你的想法了。
尽量把自己融入到各个有含金量的社区和论坛中,尽自己所能帮助其他会员,反过来你遇到困难的时候也会从那些人那里获得自己需要的帮助,这绝对会使你事半功倍。一定要避免自己憋在家里绞尽脑汁地试图单兵解决问题,“开源”,在专家的共享互动中能显示出巨大的技术能量,要懂得激发和利用这种优势。
--来自Michael Anderson,PTR集团首席科学家
3.软技术同样重要
这里的软技术同样也不是指软件技术,而是相对于纯技术而言的工作技能,比如管理技能或者与客户沟通的技巧。这看起来虽然不像是嵌入式工程师的工作范围,但如果能够掌握到这些技能,其实对于工程师本身在加深技能水平和扩展能力范围上有非常大的帮助。
通过项目管理和了解客户的行业特性,可以帮助嵌入式工程师了解身边优秀企业做某个项目时的出发点和难点,这会让工程师在自身整体质素上有较大的飞跃。太倚重技术或太倚重管理都不是好的方法,在两者间获得一个平衡才能让嵌入式的专家发挥最大的潜力。
--来自Matt Liberty,Jetperch公司创始人
4.积累实时操作系统技术经验
目前有个趋势,是那些既掌握了正规架构的开发知识、又能在RTOS(实时操作系统)下工作的工程师们变得越来越炙手可热,所要求的工资水平也水涨船高。这是因为这部分人既掌握了开发各种看重安全的产品所需的必要手段,又了解硬件的一些并发机制。比如一个CPU可能随时被调用去执行另一个任务,这时这类工程师将明白如何确保当前使用的一些资源不会因此受到影响。也就是说,这类工程师会懂得如何在保证性能的前提下,保护现有资源不受其它突发任务和程序的影响。
因此有些专注于小型器件但没有在实时系统下工作的工程师们不妨开始接触一些的开发技能。比如VxWorks、Green Hills INTEGRITY,或者 Micrium μC/OS等。近来对于嵌入式Linux的需求也非常强劲,因为Linux是属于拓展性非常强的操作系统,你可以把它做成专用于计时和调度的系统上传到任何需要的硬件上,并针对系统的进一步优化和控制进行核心部分的开发。
--来自Henry Wintz,Randstad Technologies方案经理
5.多元化的技术方向
如果你是关注在准系统或者小型MCU领域,那么最好是去上一节Linex驱动的辅导课程,这种培训能让你今后很容易就转移到安卓领域。而如果你当前是专注于大型系统,那就建议去试试准系统的学习。也就是说,通过制作移动App和学习后端服务知识,可能会让你获得新的开发视角和资源储备。
另外,也可以去了解下开源硬件,如今可以随时买到大量的开发板,这使得工程师们不需要整天围着硬件打转,而忽略掉算法上的研究。
虽然这种貌似跨界的做法会让有些工程师感觉失落,曾经在硬件上的成就突然折半了一样。但是其实这种技术多元化的理念可以让你的职业道路越走越顺畅,那些只是专注在某一方向上的人,很可能会在短期内遇到自己的瓶颈。
--来自Jen Costillo,Rebelbot公司首席顾问
6.紧跟处理器最新趋势
有些人坚持每年都学习使用一项新的软件,在他们认为学习越多的软件工具就越有用。不过这只是对于纯粹的软件工程师而言,他们需要处理一些专门的应用需求。而嵌入式工程师,则需要多注意芯片方面的学习,深入了解C或者C++ 非常关键,但是在重要性方面,最新的编程语言却很难与最新的处理器技术相提并论。
嵌入式专家来说,其天职就是了解各种处理器。嵌入式工程师使用的是有限资源的系统,所以了解现存可用的那部分资源就非常重要。“Go”这样新潮小巧的编程语言也许确实是很强大,但有个问题是它可能不会在我们这个有限资源的环境中运行。
每个工程师学习到的知识有深有浅、有窄有宽,但真正让你成为专家的,是很小一部分你非常专精的那些技术。
--来自Elecia White,Embedded.fm嵌入式软件工程师
7.尽情享用开源软件
客户们总是想把数以千计的软件包塞进他们的系统中,所以这个时候,嵌入式工程师们对使用大量的开源软件一定要心安理得。
同样,让自己只是浸泡在单一的技术领域是非常不明智的,因为你手上的那点技术量很可能短期内就过时或者遭遇瓶颈。对硬件和软件的两手掌握非常重要,目前来看,做到的那部分工程师们在行业中都非常吃香。
--来自Rob Oshana,飞思卡尔半导体数字网络全球软件研发总监
8.培养自己的系统思维
具备系统的思维能力对一个嵌入式工程师来说非常重要,经常能看到一些团队由于没有在初期建立明确的需求框架、验证策略和符合性演示计划而导致整个项目过程非常艰难。嵌入式工程师们都应该牢固掌握一些项目管理的技能,这样才会有能力保障项目的完成日期。通过技术与系统语言来理智地阐述项目会面临的风险,这种能力将给一个嵌入式工程师的职业生涯带来巨大的优势。
--来自Adam Taylor,E2V公司电气系统工程主管
9.学会良好地表达自己的想法
不仅是嵌入式工程师,所有类型的工程师其实都应该学会高效地表达自己想法或打算。很多时候,主管都会被迫打断一些初级工程师的讲话,请求重新解释某个概念,就是因为工程师们常常都在忘了重点的情形下不停地自己说下去。这时候,其实借助图形的说明方法其实是效果最好的。
早期都是使用一些流程图来阐释概念,现在看来这些稍有点过时了。但嵌入式工程师们都至少应该掌握基础的制作块图、状态机图、图片、云形方形等手段的能力来辅助阐述一些概念,这在讲述一些运行原理的时候尤其有用。
这很容易理解,想想一个给控制器写软件的开发人员坐在前面,你却在试图用一个全文字的工具来为他阐述机器的运行机制,这简直是灾难。
--来自Jean LaBrosse,Micrum公司董事长
10.学习无线连接技术非常重要
在接下来的1-3年里,嵌入式工程师最好能够详细了解那些常用的无线连接技术,尤其是WiFi和低功耗蓝牙技术等。
众所周知,与嵌入式设备互动的最佳端口就是智能手机,至少在消费电子领域是这样的。消费电子厂商和其它一些行业厂商都已经搞明白,纯粹一个嵌入式设备远远比不上一个手机能提供给用户的使用舒适度。最主要的是,嵌入式设备将需要与智能手机的程序相连接,以达到自身升级和问题修复的目的。
--来自Chris Svec,iRobot公司高级主任软件工程师
虽然所列的技能里面有些会存在争议,但至少这是通过正式询问多名嵌入式专家得到的信息,代表着每一项都至少是对于嵌入式工程师来说非常重要的技能,而除此之外,唯一没有争议的一点,应该就是电子行业的不断发展,使得工程师要随时且积极地学习新技能,才能保持与时俱进。