做嵌入式也有几年了,刚学习的时候书上说嵌入式的定义是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
从个人整体发展来说,如果想创业,做自已的产品,嵌入式软件开发可以开发出专利产品。
另一个发展路径是:积累丰富开发经验的嵌入式软件开发工程师可以向嵌入式系统开发工程师发展,从而晋升为产品研发经理或IT项目经理。对测试理论和方法有一定了解的嵌入式软件开发工程师还可以转作嵌入式系统测试工程师,最终也可发展为IT项目经理。
嵌入式分为操作系统和硬件两个方面,就业的方向更广、更深,就业机会和入职待遇比普通软件工程师好。
开发一些与硬件关系最密切的最底层软件,如BootLoader、Board Support Package(像PC的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。
从事嵌入式操作系统和应用软件的开发,嵌入式硬件设计完后,各种功能就全靠软件来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作。
目前有很多公司将硬件设计包给了专门的硬件公司,稍复杂的硬件都交给台湾或国外公司设计,国内的硬件设计力量很弱,很多嵌入式公司自己只负责开发软件。
那么嵌入式开发是什么?
嵌入式的优势就在于你可以很快的拼凑/剪裁出自己的产品 甚至买个开发板设计几个功能电路(也许是模拟或高频) 然后直接搭一搭就成了产品的雏形。
然后经过一系列复杂的的系统设、 定制 、优化、 测试、 包装、 加上公司的文化, 就成了产品。
我现在就不喜欢自己做出来的东西,感觉他们没有灵魂,只是一堆电子元器件推起来的一个物件,里面跑着没有味道的代码。我承认,我设计的是一堆垃圾,我有罪,我浪费了时间和资源却做出来生硬的东西,真想把自己以前做出来的东西一个个全部砸掉!
我不知道经验老道的嵌入式开发者是怎么看待自己开发出来的东西的。
我想的是,无论做什么 既然做了就应该把它做好,设计出来的东西不应该只是为了实现功能,满足客户需求,满足公司需求那么简单,而应该是一款自己喜爱的艺术品。这点似乎可以向苹果学习下。
告诉自己,从以下方面要求自己
1,统一设计风格,严格要求设计工艺。
2,系统性的设计
3,考虑功能性,稳定性,可靠性,可扩展性。
4,更专业,更实用,更节能。
5,认真走好研发流程的每一步。无论是一个接头的选型还是网络化的架构。
以下是整理专家意见,归纳出的十个给嵌入式工程师的建议:
1、学习那些让因特网实现的技术
具备30年嵌入式工程师经验的独立产品设计与顾问公司Aurium Technologies 总经理Ken Wada 认为,多数嵌入式领域工程师都知道如何撰写C或C++语言程序,但有时候这样的技能是不够的;他建议嵌入式工程师学习因特网有关的技术,对职业生涯发展会有加分效果,例如他目前负责的几个开发案,都是在嵌入式系统中嵌入虚拟(virtual)的XML,好让一些小型连网设备能具备“即插即用”的运作模式。
2. 学习利用搜索引擎
当了35年工程师、自认是“看得懂系统架构的软件 人”的PTR Group首席科学家Michael Anderson认为,不要闭门造车,要善用开放源码世界的信息,很多常见的设计问题其实透过因特网就能找到同领域菁英贡献的程序代码;嵌入式工程师们要走出自己的小世界拥抱社群,与同领域的其他工程师们相互交流、互相帮助,而这也是开放源码世界的精神。
3. 离开舒适圈!
虽然只当了18年工程师、但自认是系统与软件技术“通才”的DSP与嵌入式软件开发顾问公司Jetperch创办人Matt Liberty建议,不断更新并提升原本擅长的技术虽然很重要,但嵌入式工程师若能扩展自己的知识领域会更有益。走出舒适圈,挑战自我、去学习原本不熟悉的东西,包括工程以外的知识,例如与客户、同事之间的互动,将会收获良多。
4. 熟悉实时操作系统(RTOS)
在工程人才招募机构Randstad Technologies负责嵌入式产业领域的解决方案经理Henry Wintz表示,目前产业界对于熟悉RTOS的工程师需求很高,也愿意提供更高的薪资水平;因此他鼓励没有接触过RTOS的嵌入式工程师从一些较小型的系统着手,累积相关技术经验。此外他也发现产业界对嵌入式Linux人才有不少需求,主要是因为这种操作系统具备较大的设计弹性。
5. 培养多元化技能与系统观
担任近20年工程师、具备许多不同领域技术经验的技术顾问公司Rebelbot顾问Jen CosTIllo建议,原本从事较小型系统架构(例如MCU)开发的工程师,可以开始去熟悉更大的系统(例如Linux驱动程序),反之亦然。尝试着去开发手机应用程序、或者是学习后端服务器的相关技术,能让你开启完全不同的观点;他并建议工程师去熟悉开放性硬件,现在市面上有不少现成的开发板,能让工程 师专注于学习独特算法的开发。
6. 了解软件也要了解最新的处理器
有超过15 年嵌入式软件工程师经验的Embedded.fm 工程师Elecia White表示,除了要深入了解C或C++等基本程序语言,有时也要认识一些热门的新程序语言以因应特殊设计需求,但更重要的是了解最新的处理器技术;处理器才是嵌入式系统的本质。因为我们的系统资源有限,我们需要了解可用的资源有哪些。
7. 要能熟悉开放源码软件
拥有31年工程师经验的Freescale Semiconductor 数字网络全球软件开发部门总监Rob Oshana 表示,客户往往会要求在系统中整合一大堆软件,因此所有的嵌入式工程师需要熟悉各种软件;他建议工程师避免只专长单一领域,因为那可能会阻碍你的成长。对 嵌入式工程师来说,确保自己对软硬件技术都很了解,是非常宝贵的价值。
8. 建立系统级的工程思维
自诩为高信赖度嵌入式系统专家、担任了15年工程师的E2V电子系统总工程师Adam Taylor认为,嵌入式工程师拥有系统导向的思维是很重要的,有不少开发案遇到问题,就是因为没有在开发初期充分考虑基准、验证策略以及兼容性验证计划 等项目;此外每个嵌入式工程师都应该具备优良的项目管理技巧,力求准时完成负责的项目。具备能明智因应技术与项目风险的能力,对职业生涯发展会很有帮助。
9. 要能明确表达自己的想法与意见透过文字或绘图
Micrum 总裁Jean LaBrosse认为,无论是哪一种工程师,都需要能有效表达自己的想法与意见;往往有些菜鸟工程师无法清晰表达自己的想法,因为抓不到重点,而最好的解决方法是练习将之图形化,例如画出流程图。这听起来好像有点过时,但有时利用各种图框组合来整理自己的思绪、表达想法会是很有用的,例如iPad的 iThoughts应用程序。
10. 学习无线连结技术
自认是低阶嵌入式工程师、有13年工作经验的iRobot资深首席软件工程师Chris Svec建议,嵌入式工程师需要在接下来1~3年学习无线连结技术,特别是Wi-Fi与蓝牙低功耗(BLE);因为现在的嵌入式设备(至少各种消费性电子都是)与使用者智能手机连结的主要(或唯一)方式,就是透过这些无线技术,虽然Wi-Fi与BLE不一定会是嵌入式系统的标准配备,但熟悉这些技术对嵌入式工程师来说会很实用。
上一篇:一个技术老总真实故事,从月工资300元到至今身家千万
下一篇:千万别对程序员说:你的代码有BUG!
推荐阅读最新更新时间:2024-05-03 01:14