想要找一份薪资还算是可以的嵌入式软件工程师工作,还是需要真材实料的。
月薪15k的Linux嵌入式开发职位,门槛就有Linux系统、Shell编程、Linux开发环境、C语言、ARM硬件平台、数据结构、Linux内核、驱动程序等,粗略数数就有8道关口,他需要非常熟悉整个的计算机体系,能做出实际的产品。
项目练习,设计至少5个项目,多达10000行强制核心代码的编写可以让你真正获得知识,让你能有更高的工资,以及成为各大企业抢手的人才。
-
明确自己的发展方向,并为此制定可行的职业计划
很多人总不确定将来可能做什么,所以对于专业学习根本就没有计划或分析,而是抱着走一步算一步的态度。这样的想法往往就会通过潜意识去暗示你自己,导致最终你变得无所事事、碌碌无为。如果你从现在起,确定自己的发展方向,制定职业计划并为此付出实际行动,那么无论你将来是往技术、管理方向发展还是自主创业,甚至无论你将来是否仍然执行你现在制定的计划,你都将获得能力的提高。虽然我已不再是一名学生,而且,也错过了明确发展方向这个极其关键的阶段,庸庸碌碌的度过了自己的大学生涯,但是,我相信,做事不怕晚,就怕永远都不去做。
目标:成为嵌入式软件工程师
计划:制定学习计划并以最快的速度完成
学习内容:
(1)基础学习:Linux基本操作、基本服务配置及使用 、操作系统、体系结构
(2)程序设计语言:C语言、C++、数据结构、Shell编程 、脚本语言(bash、Perl、PHP、Ruby、Python)
(3)Linux高级编程:Socket、多线程
(4)嵌入式系统:嵌入式汇编、嵌入式体系结构
(5)Linux内核:Linux驱动开发、Bootloader编写
(6)ARM:熟练掌握ARM体系结构、uCOS操作系统、Linux操作系统、Android操作系统的移植、裁剪、编译等
-
一个合格的嵌入式系统软件工程师,是真正理解了嵌入式系统软件产品的本质及软件产品研发思想精髓的人。掌握嵌入式系统软件开发语言、应用语言工具解决工作中的具体问题、完成目标任务是嵌入式系统软件工程师的主要工作。但从嵌入式系统软件工程师这个角度来看,这只是外在的东西,并非重要的、本质的工作。学习、掌握嵌入式系统软件产品开发理论知识、软件开发方法,并在实践中理解、应用软件产品的分析、设计、实现思想来解决具体的嵌入式系统软件产品研发问题,才是真正的嵌入式系统软件工程师的必要素养。
-
正如前面所言,斯迈尔特职业教育的目标是培养学生能用、能做、能想、能说的能力。实际上,“能说”是最关键的能力培养。建立在“能说”能力的背后的是你对相关知识的确实理解和你对问题的敏捷反应。
-
从硬件上理解。嵌入式系统硬件是将传统的基于CPU的外围器件,整合到CPU芯片内部。例如比较高端的ARM类Intel Xscale架构下的IXP网络处理器CPU内部集成了PCI控制器,还集成了3个NPE网络处理器引擎。
从软件上理解。嵌入式系统就是在定制操作系统内核里将应用一并选入,编译后将内核下载到ROM中。而在定制操作系统内核时所选择的应用程序组 件则是完成了软件的“嵌入”。比如WinCE在内核定制时,会有相应选择,其中就是Wordpad、PDF、MediaPlay等等选择。如果我们选择了,在CE启动后,就可以在界面中找到这些东西。
从实现上理解。把软件内核或应用文件系统等东西写入到嵌入式系统硬件平台中的ROM,就实现了一个真正的“嵌入”。
-
嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层:
硬件层:是整个嵌入式系统的根本,如果你现在对单片机及接口这块很熟悉,并且能用C语言和汇编语言来编程的话,那么从嵌入式系统的硬件层做起来就相对容易。硬件层是嵌入式系统的基础,但嵌入式系统增值还是要靠软件。
驱动层:要能看懂电路图还要能对操作系统内核十分的精通,以便所写的驱动程序在系统调用时,不会独占操作系统时间片,而导至其它任务不能运行。当然,不懂操作系统内核架构和实时调度性、没有良好的驱动程序编写风格,仅仅只是按照资料介绍去添加驱动程序,是很多人可以做到的,但这也仅仅只是个初级的嵌入式系统驱动工程师的最低水平。
操作系统层:在操作系统层的主要工作还是移植,而很少有人来自已写操作系统。
应用层:需要掌握编程语言、开发工具,知道在Linux/Windows等操作系统下如何进行编程、函数调用,掌握编译和开发环境等。
-
精通嵌入式系统的程序设计是最主要的要求,因为编程是嵌入式系统软件工程师花费绝大部分时间的工作,因此嵌入式系统软件工程师必须熟练掌握操作系统和嵌入式硬件结构,看得懂诸如硬件寄存器一类的内容、掌握基于板级的汇编和C编程,了解硬件的接口电路设计,掌握基于嵌入式操作系统的环境应用与工具链,比如Linux下的ARM工具链等等。
-
嵌入式系统开发环境是你学习如何开发一个嵌入式系统项目的实验平台。在培训中,你接触的是一种能够进行具有相当实际效果实验的教学实验平台,这种教学实验平台必须外接特定的开发模块,才能形成一个实际的开发系统。
拥有一套嵌入式系统实验平台,能够极大地帮助嵌入式系统软件初学者尽快熟悉和掌握嵌入式系统。熟悉一个实际的嵌入式系统开发平台,并且能够从事某个具体项目的开发,是获得实际进行嵌入式系统软件开发工作经验的必经之路。
如果你满足了上面的这些要求,你就可以成为一位合格的嵌入式系统软件工程师。当然,真正优秀的嵌入式系统软件工程师是要靠工作中的积累才能形成的,而这也是用实际工作时间来衡量的。
学习的过程总是漫长而充满苦恼的,但是,收获的喜悦却是弥足珍贵的,因为这不仅仅是对自我的一种肯定,更是一个难得的成长机会,一步一个脚印,你就会成为一个越来越完整的自己!GO GO GO