首先要学习下基础课程单片机,汇编和C语言等等,然后再学习嵌入式,如果说你要想水平高的话,最好学习下操作系统,数据结构,算法及一些硬件方面的知识等等。看你是想在什么方面发面,你的说明比较不具体,是在硬件方面还是软件方面。假如是软件方面,当然对编程要侧重,反之在硬件方面,那么就要对单片机,电子电路,数电,模电等等要多加学习才是。
做嵌入式的大概有这样几个方向:
驱动/BSP/内核移植类:这一类要求你了解硬件芯片和电路原理图多一些,需要多学习大学这类基础课,然后看一些基本的CPU芯片外围芯片手册,知道什么是CPU内部总线、外设控制器和寄存器。这类人在产品项目中人数需要不大,但是工资不低。(内核移植和内核开发暂且不提)
嵌入式操作系统类:这一类要求你能根据产品需要设计出能多任务处理并控制一些外设或者与外设通讯的程序。需要你有很好的C语言基础,单片机基础,然后是嵌入式操作系统基础,知道各种多任务处理的模型,然后还需要一些数据结构知识。你要知道程序是如何烧写到芯片里变成能控制设备的东西的。
嵌入式系统应用类:这一类要求更加偏向软件一些,有时甚至只是知道内存限制就可以了,其他硬件都不必考虑太多,比如做嵌入式GUI的(miniGUI Qt)、嵌入式数据库的、嵌入式webserver程序等,这一类归根结底是软件开发,需要有强大的阅读源码能力和程序设计基础。高级嵌入式相关应用程序开发类:如手机开发的,特别是iphone android的应用开发,这一类实际上是纯软件开发,要求有很好的程序设计基础、面向对象概念、结构化开发概念等,UI相关的现在还需要有一些UX用户体验理念。
大概就这几类,如果你是学生建议自己买一个三星的ARM9开发板,很便宜的,从读芯片手册、学习移植ucosII,写写ucosII应用程序,深入的可以学习嵌入式linux下应用程序开发等,总之一年之内学透一个开发板,那么你就可以合格胜任前两类工作了。