嵌入式开发比互联网软件开发是要难些,互联网开发是基于用户态的,嵌入式是深入内核态的,主要难在这几个方面:
首先,嵌入式偏底层,是软硬结合的东西,软、硬件都要懂,对能力要求本来就要高不少;
其次,嵌入式开发的学习门槛也要高一些,而且像Linux平台下的开发流程,很多人都不习惯,摸不清;
再者,嵌入式学习的正向反馈可能比较慢,尤其是前期学习阶段,导致没有什么成就感,也就坚持不下去了,所以往往就弃坑了。
既然嵌入式这么难,那要怎么学才能学好呢?你可以分三个阶段来学习:
1.基础学习阶段。这就包括通用编程基础(C语言、数据结构/算法、操作系统、计网、计组、Linux系统基础)和基本的硬件基础,扎实地掌握这两大基础,是后续持续发展和不断进步的动力源泉。
2.嵌入式应用编程阶段,或者说系统平台编程阶段。因为一般会以特定的嵌入式平台和特定的嵌入式操作系统为依托,熟悉这个系统平台上的编程方法和流程。以常见的ARM+Linux平台为例,需要掌握从内存管理到多任务编程、文件I/O、网络编程,甚至图形化界面编程等几个大的方面。
3.深入嵌入式底层开发阶段,最常见的就是内核开发和驱动开发,这些统属于内核态开发范畴,所以需要对操作系统内部机制有所涉猎和理解,在此基础上需要掌握从系统移植到内核开发、驱动开发的各个细节,这是成神之路。
学习嵌入式是个漫长的过程,厚积薄发的过程,需要强大的毅力,一旦你学有所成,所获得回报也是非常大的,所以大家不要轻易放弃。
了解更多