已经在嵌入式行业混了十几年,做的东西从底层linux驱动,内核定制到上层的app应用,都是在嵌入式设备上开发东西,从数字电视,机顶盒,手机,到现在的电动汽车充电设备都属于嵌入式产品,技术模块从音视频解码,浏览器内核技术,到安卓框架层定制,以及应用开发。从菜鸟程序员到能搭建一些系统框架,给下边兄弟们去使用,其实任何一个行业不可能一成不变,如果一直守着老的东西不变,自然不会有多大的前途,现在非常流行的物联网以及人工智能机器人都属于嵌入式领域新的技术拓展,不要轻易给一个事物下结论说过时之类的话,如同现在很多人觉得C语言已经是过时的语言,现在没必要学习了,事实的真相是现在随着软件行业的发展,集成化的是一大大趋势,底层的编程语言不太适合做应用级别的开发,所以在工作岗位的绝对数量没法和高级语言岗位相比而已,并不代表这门编程语言已经过时了,很多高级语言底层代码都是C语言完成。
嵌入式工程师能做点什么?1.底层设备驱动开发,以及操作系统内部实现都属于嵌入式,这些都属于非常靠近底层的编码类别,目前这种的岗位相比之前比例下降了,主要是随着软件技术的进步,这类工作已经在前期做了大量的积累,不需要从头开始搞,大部分芯片厂商都已经给提供好了,主要功能扩展和维护性的工作多一些。 2.通讯领域,常见的路由器,交换机等设备开发都属于嵌入式领域,这块对于性能的要求非常高,所以主要的开发语言是c/c++。 3.系统级开发,如同安卓框架,浏览器内核,多媒体播放器等内部引擎的开发,这类工作主要是高级工程师做的比较多,涉及到的文件数目以及专业性都需要具备一定的基础才能去搞,不见得要写多少代码,因为针对这类系统开发在开源社区里面都能拿到源码,有了源码不一定代表着掌握,需要对这些框架有一定了解,提出一个新的需求能够在万千代码中找到解决方案,难在有时候本身从社区拿到的代码本身就存在致命的bug,这些问题很难在网络上找到答案,只能自己硬啃。 4.嵌入式应用级别的开发,开发语言c/c++/java等等都会涉猎,因为现在安卓系统的普及,很多应用开发都采用java方式,开发起来简单直接,当然现在很多h5的应用开发效率更高了,运行效率相对低点,但现在设备的配置比之前已经高了许多,所以运行效率不是多大的问题。 如何学习嵌入式开发?1.需要掌握的基本编程基础,c/c++,以及数据结构这是嵌入式开发必备,现在很多人把linux也作为嵌入式开发的必备基础,现在做嵌入式开发的很难脱离linux而单独存在。 2.需要掌握基本的系统开发基础,例如多线程编程,网络编程,以及常见的编程模式,例如状态机条件设置,图形系统开发使用等等嵌入式高级编程模式都需要掌握。 3.需要在一个设备上实践具体项目。现在很多嵌入式的开源社区都可以在里面吸取营养,树莓派就是一个很不错的代表,可以在里面学到很多实践项目。 任何一个方向都是在发展,是不是能前途,能不能拿到高工资主要靠自身的努力,在一个领域能够做到顶端,即使行业看着不景气,一样能够拿到高薪或者高职位,和不要把自己的不努力归结到行业不景气身上,多从自身找原因。 |