嵌入式:我不是針對誰,我是說在座的Javaer都是弟弟,尤其程序羊

嵌入式:我不是針對誰,我是說在座的Javaer都是弟弟,尤其程序羊


不好意思久等了


這篇文章讓小夥伴們久等了。

一年多以來,關於嵌入式開發學習路線、規劃、看什麼書等問題,被問得沒有一百,也有大幾十次了。但是無奈自己對這方面瞭解有限,所以每次都沒法交代,搞得實在不好意思。

但是辦法總歸是有的,正如前篇文章《最近厚着臉皮聯繫了不少老同學》所聊,雖然我自己不從事這些方向,但尋思了一下,我的同學和朋友中,多少還是有一些從事相關方向並且在一線(或曾在一線)工作過的,所以我就請他們幫忙一起梳理這幾個我不熟悉領域的學習路線,這次嵌入式開發就是其中之一。

這篇文章之所以拖這麼久,因爲溝通實在太費時間了,畢竟大佬們都挺忙,況且梳理總結這件事情本身就比較繁瑣,所以等到現在才發出來。


嵌入式開發難嗎?


經過這次和同學的交流,我自己也學到了很多。因爲嵌入式方面的很多東西我也不懂,我也算學習了。

站在我個人角度來看,結合以前的學習體驗。我覺得嵌入式開發比互聯網軟開(比如Java後端)還是要難一些的,比如我們搞Java開發的,再怎麼說,基本也都是用戶態的東西,但嵌入式很多東西都深入到了內核態,所以難度肯定是有的,表現在幾個方面吧:

  • 首先,嵌入式它偏底層,軟、硬件都要懂,對能力要求本來就要高不少;
  • 其次,嵌入式開發的學習門檻也要高一些,而且像Linux平臺下的開發流程,很多人都不習慣,摸不清;
  • 再者,嵌入式學習的正向反饋可能比較慢,尤其是前期學習階段,導致沒有什麼成就感,也就堅持不下去了,所以往往就棄坑了。
    但是話說回來,做IT的就是這樣,越往底層對人能力的鍛鍊就越高,所以對於能力來說是在升維,所以反過來,如果嵌入式做得好的,我覺得來做互聯網問題也不大,到時候就屬於降維打擊了。

總體學習思路


總體來說,還是可以把嵌入式學習分爲三個大的階段:

首先基礎學習階段,這就包括通用編程基礎(C語言、數據結構/算法、操作系統、計網、計組、Linux系統基礎)和基本的硬件基礎,紮實地掌握這兩大基礎,是後續持續發展和不斷進步的動力源泉。

其次就是嵌入式應用編程階段,或者說系統平臺編程階段。因爲一般會以特定的嵌入式平臺和特定的嵌入式操作系統爲依託,熟悉這個系統平臺上的編程方法和流程。以常見的ARM+Linux平臺爲例,需要掌握從內存管理到多任務編程、文件I/O、網絡編程,甚至圖形化界面編程等幾個大的方面。

最後就是深入嵌入式底層開發階段,最常見的就是內核開發和驅動開發,這些統屬於內核態開發範疇,所以需要對操作系統內部機制有所涉獵和理解,在此基礎上需要掌握從系統移植到內核開發、驅動開發的各個細節,這是成神之路。

大體思路是這樣,接下來看一下詳細的學習路線和知識點梳理。


學習路線+知識梳理


花了很長時間,就爲了整理這張詳細的知識路線腦圖。當然由於時間有限、能力也都有限,畢竟嵌入式全體系實在太龐大了,包括我那做嵌入式的同學,也不可能什麼都懂,有些東西可能沒覆蓋到,不足之處,還希望小夥伴們一起交流補充,一起完善進步。

嵌入式:我不是針對誰,我是說在座的Javaer都是弟弟,尤其程序羊
注:圖片上傳後可能被壓縮,如需無損版高清大圖或PDF版文檔,可直接在本公衆號後臺回覆「嵌入式」三個字自取吧。


書籍推薦


最後,按照整體的學習路線,再推薦一些對應的經典書籍:

嵌入式:我不是針對誰,我是說在座的Javaer都是弟弟,尤其程序羊
這次就分享到這裏吧,下篇見。

每天進步一點點

慢一點才能更快

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章