嵌入式開發比互聯網軟件開發是要難些,互聯網開發是基于用戶態的,嵌入式是深入內核態的,主要難在這幾個方面:
首先,嵌入式偏底層,是軟硬結合的東西,軟、硬件都要懂,對能力要求本來就要高不少;
其次,嵌入式開發的學習門檻也要高一些,而且像Linux平臺下的開發流程,很多人都不習慣,摸不清;
再者,嵌入式學習的正向反饋可能比較慢,尤其是前期學習階段,導致沒有什么成就感,也就堅持不下去了,所以往往就棄坑了。
既然嵌入式這么難,那要怎么學才能學好呢?你可以分三個階段來學習:
1.基礎學習階段。這就包括通用編程基礎(C語言、數據結構/算法、操作系統、計網、計組、Linux系統基礎)和基本的硬件基礎,扎實地掌握這兩大基礎,是后續持續發展和不斷進步的動力源泉。
2.嵌入式應用編程階段,或者說系統平臺編程階段。因為一般會以特定的嵌入式平臺和特定的嵌入式操作系統為依托,熟悉這個系統平臺上的編程方法和流程。以常見的ARM+Linux平臺為例,需要掌握從內存管理到多任務編程、文件I/O、網絡編程,甚至圖形化界面編程等幾個大的方面。
3.深入嵌入式底層開發階段,最常見的就是內核開發和驅動開發,這些統屬于內核態開發范疇,所以需要對操作系統內部機制有所涉獵和理解,在此基礎上需要掌握從系統移植到內核開發、驅動開發的各個細節,這是成神之路。
學習嵌入式是個漫長的過程,厚積薄發的過程,需要強大的毅力,一旦你學有所成,所獲得回報也是非常大的,所以大家不要輕易放棄。