貌似最近问这方面问题的人很多呢。
第一个问题:嵌入式的发展前景是很好的,因为目前的手持终端等移动设备都属于嵌入式开发,随着硬件和软件技术的发展,嵌入式的应用前景会比PC平台更加广阔,当然,这个只是我个人意见哈,仅作参考。
第二个问题:自学或者培训业师需要因人而异的。如果是计算机专业科班出身的话,很多基本的计算机知识,比如计算机原理、操作系统、数据结构、算法之类的他们都有一定的基础,这样的话自学也不会太难。但要是别的行业转过来做嵌入式开发的话就稍微有难度一些,如果没有高手长时间辅导的话,建议参加培训。
第三个问题:刚刚回答了一个哥们的问题,跟你这个问题有点像。嵌入式软件开发需要的学习的课程主要有:
1. 编程类课程(主要以C语言为主,靠底层的开发还需要懂得汇编语言)
2. 软件工程类课程,包括软件的开发流程,项目管理,软件开发方法之类的。
3. 数据库方面的知识(有可能会学,也有可能不用)
4. 编程算法。(数据结构方面的书是需要有的,严蔚敏的数据结构挺好,只不过有点难,唐发根的也不错)
5.
操作系统方面的知识,嵌入式的话一般是以linux为例,也有可能以uC/OS为基础,要学好嵌入式系统的话,除了扎实的编程基础,这部分知识的积累尤其
重要。这个方面推荐你一本《嵌入式实时操作系统uc/os-II》,这个是嵌入式行业入门级的操作系统,写的比较浅显,有助于理解操作系统原理。
6. 嵌入式相关的课程,因为嵌入式的开发有别于一般PC机上的上层开发。
7. 简单的硬件和体系架构方面的知识,比如ARM、PowerPC、MIPS之类的。这方面的书籍北航出版社有很多,你可以在网上搜搜。
自学的话建议买个开发板,现在一般的嵌入式开发板都带有详细的硬件资料、使用指南和实验指导。学习嵌入式不能只是纸上谈兵,最重要的是多多实践,在实践中学习和理解才能事半功倍。入门的话可以考虑买个ARM开发板,一方面比较便宜,另一方面比较简单而且网上的资料也比较多。
培训的话价格可能就比较昂贵啦,需要参考的标准主要有课时、课程内容、实验环境和代课教师等等。这方面我了解的比较少,不过你可以随便找几个嵌入式培训学校咨询一下,货比三家嘛! ^_^
说了一大堆,希望能够对你有所帮助哈~~