标签:嵌入式开发 编程语言 嵌入式学习 linux内核 C语言
从事嵌入式开发十年了,有些感想写出来,一则鞭策自己,让自己看到自己的不足,认清以后的发展方向,二则深知很多朋友会像我当初一样,为不知道储备什么知识而苦恼,所以写点东西给这些朋友们提供参考。一些浅见。这里觉得有帮助或者还在迷茫的朋友可以留下企鹅。其次,嵌入式行业更像是IT中的IT。标准缺乏,规格多变,技术变化又特快,刚流行的技术可能没两年就会失去生机。比如塞班,Nokia放弃了,iso吧,也没动静了,现在安卓火的很,说不定过几年就像今天的塞班,感觉像是永远跟不上时代的节奏。
所以,很多人都说IT是吃青春饭的,一点不为过,等到年纪大了,或许真的做技术会力不从心吧。尤其是国内,技术人员的地位……(你懂得)。
话说嵌入式这个行业到底需要什么样的技术人才?
仔细观察各种招聘的岗位要求吧,无非是
1, 通用要求:比如什么学历,多少年工作经验,有创新精神,抗压能力强,吃苦耐劳,善于沟通,态度认真等等等等……
2, 专业要求:这个可真的多了去了,但无非就是各种精通。什么精通控制理论,精通电路设计,精通各种硬件驱动开发,精通linux内核以及裁剪,精通C/C++/Java语言,精通DSP,精通ARM,精通什么linux/ecos/ucos/wince/VxWorks,精通嵌入式数据库,精通多线程编程,精通各种网络协议,精通各种总线协议,精通塞班/安卓/IOS平台应用开发,精通汇编,编译器,二进制工具;精通各种媒体封装格式,编解码;精通通信技术;精通硬件原理图;精通PCB设计;精通计算机结构;精通bootloader,精通……感觉只要是行业内的就要精通
看完这些,尤其是专业要求,头大了吧?
另外还有些以上四类都用得着的技能:
1, 基础技能:搞嵌入式开发,还有一些必不可少的基础技能。
2, 特殊技能:对于嵌入式开发的某些部分必不可少,但对于有些(比如应用开发)可能没有多大用处。
3, 扩展的能力,这些可能是要用到的。
a) 通信协议,对于非应用层的通信协议,我实在不知道是不是该把它放入操作系统的范畴,因为很多操作系统是没有网络部分的,但是在很多方面它又是由操作系统提供。当然这些下层通信协议,貌似不太用关心,因为太多的开源协议栈了。应用层的网络协议可能就要关心了,比如http,ftp,rtsp,rtmp,mms等等。
b) 音视频处理,比如文件封装啊,音视频的编解码啊,各种音视频的标准啊,还有流媒体什么的。Ffmpeg是一个很好的东西,建议学习一下。
c) 信息安全,恩,这一块貌似现在越来越受到重视了。
d) 数据库,唉,嵌入式设备能力越来越强啊!再搞搞我看也不用交叉编译了。。
有时和同事讨论起现在的行业需求,说到各个公司总是招不到人,程序员又总说找不到工作,自己就有很多感想,是公司要求高,还是程序员要求高?有时候看到一些招聘的职位要求,总是打击到自己的信心,一条一条数下来,好像自己能做到的还真没多少,只好让自己再努力些再努力些;当然有时也会觉得某些招聘不靠谱,看那一条条的要求,个人感觉要是全做到,普通人怎么也得努力个十年八年的,这样的大牛们,估计看不上给出的那薪资吧。
对于程序员来讲,做技术真的是很累很难的一件事情。网上搜一下,遍地的抱怨贴,情感贴,都充分反映了这个职业对身体和情感的考验。如果你不畏艰难,想把技术做下去,那么努力吧,也许某天你会随便拿起一份招聘启事,鄙视一眼:“靠!就这点要求,去了都掉价!”,那么你就是真正的大牛了!到时候你会感谢现在的付出,如果你还是处于迷茫期,你这边可以留下企鹅,相信我一定可以帮助你更上一层楼!
标签:嵌入式开发 编程语言 嵌入式学习 linux内核 C语言
原文地址:http://blog.51cto.com/13573658/2086348