嵌入式是门高深的学问,入门的门槛比较高,没有几年的苦心专研不可能有很深的造诣更谈不上出什么成果。嵌入式又是一个热门有挑战性的领域,手机研发、游戏设备开发IPTV、数字视频录像机(DVR)、数字视频广播(DVB)、机顶盒、视频会议系统、网络监控摄像头以及可视电话等高端行业已经渗透进我们生活,在以后还会有更好的发展情景。在这个领域里,有无数的有志软件工程师在这里打拼。他们的收入不等,有的刚起步可能只有2、3K有的可能混的不错成了大牛,有好几十K的。不论怎样,每个人都希望能闯出一番天地,舒舒服服过着有”米“的生活。说到自己有些惭愧,混迹多年还没有什么建树,好的坏的评价都有过,也不知道何时能混出个头。不过值得庆幸的是,时光还没有磨掉自己的那份执着和信念。在那些无数摸索追求奋进的日子里,酸甜苦辣的滋味每每萦绕于心。我不是高手,更不是牛人,不过还是有一些心得可以和同行分享。
现在很多公司经常打着诸如DSP算法及应用软件工程师、驱动开发工程师、FIRMWARE软件工程师、嵌入式设计工程师、嵌入式软件工程师之类的头衔在网络和人才市场上招人。虽然这些职位在具体事务上有些不同,但总的来说,还是非常相近的。这些企业对嵌入式研发人员的共同要求也正体现了嵌入式的精髓和热门所在,归结起来,主要有下面几点:
1.至少精通一种MCU/MPU体系结构,如ARM、PowerPC、68K/ColdFire;
2.至少精通一种DSP体系结构,如主流的TI TMS320DM642、Blackfin 533/561、 TriMeida和BSP15,理解它们的流水线pipeline的原理和指令特性,熟悉代码优化,熟悉CACHE、DMA和PCI等重要设备;
3.至少精通一种嵌入式操作系统,如VxWorks,embedded
linux,WinCE,uCOS,QNX,PlamOS,Symbian。不需要深入内核,但必须要懂得使用最基本最常用的一些功能,诸如任务管理、信号量、消息队列,并懂得优先级反转和死锁的原理和避免或解决方法;
4.至少精通一种嵌入式语言。越是底层人员越是要注意编码规范,不要以为自己搞底层的就很牛,不书写说明文档和代码注释,让人感觉代码是写给自己看的。现在嵌入式已经不是C的专利,J2EE、EmbddedC++等语言已进入这个领域,在以后肯定会大展拳脚;(关于C可以去看看《关于C的0x8本“经书”[嵌入式必读]》
http://blog.sina.com.cn/u/4a317b79010004mc)
5.熟练掌握嵌入式软件设计、项目管理和测试的技巧。特别要注意自己的编码规范,搞软件的可全靠这张"脸"吃饭哦。一个人牛不牛,看代码就知道。(关于测试可以去看看《嵌入式软件测试的十大秘诀》
http://blog.sina.com.cn/u/4a317b790100057l)
备注:这些要求不针对嵌入式硬件工程师和比较上层的嵌入式应用软件开发人员。
看似简单的几条罗列,实际上每一个要求都需要我们好多年的项目经验积累,这也是国内华为、UT斯达康等大企业要求应聘人员必须具备至少5年软件开发经验的原因(UT斯达康有时候要求8年)。如果有一天你揣着一份对高工资的期望准备在这个领域寻觅工作或准备跳槽到该领域,你是否信心满满,是否都已经具备了这些基本的素养和能力呢?如果有,那我会替你高兴;如果没有,那么平静心态继续努力,打好这些基本功,最好从扎马步开始!
最后引用周星驰的经典台词激励大家:努力啊,奋斗!。
Embedded software development is all but
nothing when you are always perseverant !
原文:http://blog.chinaunix.net/u/25631/showart_192723.html
|