做者:嵌入式老鳥火哥 受權轉載於公衆號嵌入式老鳥的職場之道(ID: ict_embedded),有增長內容和修改。linux
最近不少童鞋投票並諮詢如何從單片機轉爲嵌入式Linux開發。看來讀者圈中作單片機,RTOS的很多。儘管火哥目前從事Linux/Android方面的嵌入式開發工做,可是讀書的時候也有5年左右單片機裸機和RTOS經驗,以前面試也拿過一些作單片機stm32開發的offer, 因此今天分享關於單片機是否要轉嵌入式Linux的一些觀點。面試
1、你真的決定要轉嵌入式Linux嗎?算法
要不要從單片機轉嵌入式Linux是一個影響到職業發展的嚴肅決策,火哥不能幫你拿主意,只能幫你列出利弊,你須要根據自身的各類環境(好比所在城市Linux嵌入式相關崗位多嗎?是否決定背井離鄉去北上深發展等等)作出最有利的決策。shell
火哥的觀點並非Linux嵌入式絕對比單片機開發職業發展好,只是根據自身的一些經歷,給出一些見解。數據庫
1. 單片機開發相對於Linux嵌入式最大的劣勢在於基層的打工崗位平均薪資偏低編程
我想這是大部分單片機工程師想轉嵌入式Linux的最主要的緣由。技術自己各有優劣,可是就基層打工而言,在同一座城市,就打工而言,單片機的薪資比嵌入式Linux低30%到50%。安全
也許不少有會拿某些作單片機的高薪的老闆(好比野火的火哥,周立功等)或者一些公司高管的薪資和作嵌入式Linux打工的工程師對比,證實單片機也能夠拿高薪。服務器
可是他們都犯了田忌賽馬的錯誤,拿別人的上等馬和本身的中等馬對比,火哥認爲這種田忌賽馬的比較很是不切實際,基層打工的就應該和基層打工的的對比。網絡
目前火哥調查到狀況來看,在深圳的基層就業市場,單片機(含RTOS)開發的起步薪資在6K-7K, 通常人到15K就是高薪,很難突破。數據結構
20K以上的單片機offer也有,可是不多,最多也見過25K的單片機offer,可是那都是有名企,名校或者其餘業務背景換來的,通常人真拿不到。嵌入式Linux/Android這塊,薪資相對高很多,起步價12K很正常,工做2年通常都能突破15K,3-5年突破20K甚至到25K也是不少的,5年以上去一線土豪大廠(華爲、OPPO、VIVO等)能夠到30K,若是在手機大廠作到模塊owner專家,突破40K也是能夠有,可是在往上就有點難了。
總體來看,同檔次的基層打工者,嵌入式Linux薪資比單片機開發仍是高很多,單片機15K就會遇到瓶頸,突破20K就很難了,嵌入式Linux突破20K並非難事,到25K以上才遇到瓶頸。
2. 你所在的城市嵌入式Linux崗位多嗎?
我以爲這是影響你作決定的另外一個大問題。咱們學嵌入式Linux這門技術,絕大部分人是爲了從事相關的工做,而不是陶冶情操。可是根據火哥統計來看,嵌入式Linux的廣泛薪資雖然高於單片機,可是就業崗位並無單片機那麼多。
深圳目測是嵌入式Linux就業機會最多的城市,可是單片機機會看起來彷佛更多,在深圳,單片機和Linux崗位數量對比大概6比4。
從嵌入式Linux城市的崗位數量來看,依次是深圳 > 上海 > 北京 > 成都 = 杭州 = 蘇州 > 東莞(華爲加持)>= 珠海 >= 南京 = 廣州 = 武漢 = 西安 = 福州 = 廈門 > 佛山 = 長沙 = 天津 = 合肥 > 其它, 在其它城市我就不多瞭解到作嵌入式Linux開發相關的崗位。
因此若是你要考慮轉行,首先考慮是否願意背景離鄉去以上幾個城市工做。不然哪怕你學了牛逼的Linux技術,可能也會在當地找不到對口不得不繼續從事單片機開發。
3. 單片機雖然待遇較低,可是就業機會更多,對大齡求職者相對友好
這點其實並不矛盾,作單片機各行各業的小公司特別多 (固然像格力,美的這種傳統家電大廠也有,可是華爲、商湯等新興高科技大廠不多招單片機),業務多種多樣,須要的人更多,可是通常小廠可能資金並不充裕,給不起人才高價,加上單片機開發門檻較低(不考慮產品穩定性,EMC等有工做經驗天然會知道的概念,僅指學習使用單片機幹活編程的培養門檻), 培養週期比較短(大二學生一個暑假的功夫),因此致使中低端能幹活的人仍是挺多,拉低平均薪資。
但這就像富士康同樣,招人多,但抱怨缺人,老闆就是不想把待遇提上去,要控制成本,這是缺人可是待遇低之間一種永遠存在的矛盾。可是對大齡求職者來講,因爲單片機崗位實在是多,不少小廠真的很難以高的性價比招到優秀的人,在小廠也沒有HR插手作人力資源規劃、年齡梯隊建設,反而在年齡上卡的不嚴,大齡求職者只要薪資不挑,也能找到一份工做,因此相對於作Linux的大廠,對年齡問題比較寬容一些(可能因爲單片機有點歷史了,大齡從業者也多)。
4. 單片機也有一些較高薪職位
在單片機工程師眼中,20k以上就算是高薪,以這個爲標準,火哥也見過一些較高薪的職位,可是這裏面有些特殊的要求。
某家作智能門鎖STM32 RTOS的公司給火哥開過20K的offer,主要是由於公司但願招的技術人員都有985 211以上學歷背景,這樣溝通起來可能觀念比較一致,因此薪資能給到20k。
另外還有一家明星獨角獸創業公司給過25K的單片機offer, 可是前提要求是能在Linux環境下開發單片機,並且面試難度較高,原本25K要價超出他們預期了,他們不肯意給這麼多,後來火哥吊着他們一個星期,謊稱拿到華爲同等價格的offer,他們才最終答應給25K的offer。
剩下火哥還了解到有年薪80w的單片機高級工程師(掌握某些行業特殊的認證標準)。可是總體來講,單片機較高薪的offer確實不容易拿到,並且拿到也不只僅是由於你的單片機技術好,解bug能力強,而是由於你的背景,學歷,有其它offer擡價,掌握特殊的業務競爭力等等(關於嵌入式業務競爭力能夠讀讀火哥上一篇關於嵌入式競爭力的文章),這些特殊業務和文憑,背景都不是能靠當下本身砸時間努力看書學習寫代碼就能輕易獲取的。若是能單單靠本身砸時間努力就能獲取的技術就不是啥門檻性的技術。
列舉了以上這幾點,要不要從單片機開發轉嵌入式Linux相信你也應該能夠下決定了。
2、 單片機和嵌入式Linux開發到底有什麼異同
1. 單片機轉嵌入式Linux保留的優點主要在於熟練的C語言編程能力以及豐富的底層軟件與硬件接口的調試經驗。
由於Linux內核自己就是C語言編寫的,Linux底層應用程序大部分也是C語言的,通常有單片機開發經驗的,C語言應該不是問題,因此在切換的過程當中,不須要考慮語言的切換,固然若是沒有系統學過數據結構(火哥認爲數據結構是熟悉C語言必不可少的內容,哪怕單片機也要懂數據結構),可能須要補補。
另外有uCOS FreeRTOS這類的實時操做系統開發經驗就更好,至少在看大規模C語言代碼的時候不懼怕(其實懂uCOS內核也不表明能立刻掌握Linux內核,Linux內核真的複雜太多,設計理念也很不同)。
另外豐富的單片機底層調試與寄存器配置經驗,可能幫助你在學習Linux嵌入式開發的時候能快速定位底層的一些問題,節約時間。
2. 單片機轉Linux嵌入式須要熟悉一套風格迥異的開發環境
對於大部分單片機工程師而言,都是在Windows上用IDE環境開發單片機程序爲主(不排除有些公司已經使用Linux開發單片機了),Ubuntu這類Linux系統接觸比較少,因此大家要越過的第一關並非Linux內核源碼,而是如何使用Ubuntu這種Linux系統。
由於在Debian Ubuntu CentOS 等各類Linux系統作軟件開發,主要都是經過命令行操做,而不是鼠標界面點擊。而且Linux系統裏面的應用軟件不像Windows裏面的IDE這樣給你集成好了,點擊就能用,Linux裏面不少Makefile之類的編譯腳本以及Samba, SSH Server等各類服務,arm-linux-gcc等各類編譯連接工具,就像IDE軟件裏面的各個組件,須要本身從新組裝使用,而且用的時候可能有各類環境甚至編譯問題(開源軟件猛糙快就是這樣),須要本身折騰花費很多時間。
因此對於Linux入門者,哪怕你有豐富的單片機C語言經驗,折騰起來也挺耗時間,須要克服心理的障礙,Linux系統開發環境就像一匹不聽話的烈馬,馴服他才能發揮出它的價值,而Windows系統開發環境更像一匹聽話的普通馬。
3. 嵌入式Linux開發代碼的掌控程度遠低於單片機開發,單片機轉Linux須要適應如何在這種低掌控度的不安全感中進行開發
作單片機開發,包括RTOS, 通常代碼量最多幾萬行,哪怕不是每行代碼都讀過,也基本可以精確掌控每一個模塊,大概哪裏出了bug,做爲開發者很容易定位。
而作嵌入式Linux開發,單獨Linux內核就有幾百萬甚至上千萬行,還不包括各類你不熟悉的應用層的開源庫,這致使大部分代碼都不可能掌控。
嵌入式Linux的開發模式就是在這種大部分代碼都不是你開發的,你也掌控不了大部分代碼的狀況下開發驅動或者應用,你常常會遇到不熟悉的東西須要各類搜索問人,這種開發模式,會把人置於一種不安之谷當中,不少你使用的函數你並不知道它的實現細節,可能工做機制都只是略懂。
在這種模式下開發須要很好的搜索,溝通,團隊協做能力,不能再像單片機那樣一我的全局掌控,蒙着頭開發了,這種不可掌控的不安全感是單片機工程師往Linux嵌入式工程師發展過程當中最須要適應的。
4. 嵌入式Linux開發須要有大局觀,不用迷失在細節的叢林找不到方向和出口
不少單片機工程師有個思惟習慣,編程時喜歡細摳到每一個寄存器的工做原理,每一個功能的實現細節邏輯,每一個if else都不放過。
這在Linux嵌入式學習中將很是耗費時間,是事倍功半的作法。注重細節當然好,可是當系統龐大到一種程度的時候,過於注重細節的人,每每很難駕馭這個系統。
我看到不少初學者,每一個寄存器,連接腳本的每種寫法都要去糾結好久,好比芯片啓動方式,生搬硬套把2440的啓動流程做爲芯片啓動的惟一真理,到處往其餘芯片套。卻不知不少東西都是人爲約定的一些習慣性作法,每家公司的芯片有本身的特色,流程是死的,人是活的。
掌握大局觀,讓本身迅速熟悉整個系統的知識,不少細節上習慣性的東西天然而然就明白了,對整個系統的掌控力度就高了,遇到具體阻礙你前進的細節問題,再去嘗試處理。掌控並不意味着你知道每行代碼每一個寄存器的意思,可是你能讓整個系統按照你的想法去運行。
3、 單片機轉嵌入式Linux大概須要學哪些基本的知識
吹了這麼多水,到了真正上乾貨的時候了,從單片機轉Linux嵌入式到底須要學些啥。若是沒有這一段,火哥真怕你下定轉行決心以後,立刻拿起一本Linux內核架構與實現的書,覺得像學uCOS等RTOS系統同樣,都是C語言代碼,而後看得雲裏霧裏,從入門到放棄。其實火哥在剛學習Linux嵌入式的,也犯過相似的錯誤,於是總結了一些經驗教訓。
1. 你須要花必定時間熟悉如何使用Linux系統進行編程開發
相信不少童鞋都是從小使用Windows電腦長大的,在學計算機編程以前,應該沒有接觸過Ubuntu等Linux系統,而這個系統又不像Windows那樣點點鼠標就聽話,須要各類命令行操做。並且系統裏面有各類服務和應用工具須要你本身按照需求去配置。
因此學習嵌入式Linux開發不是急於鑽進Linux內核代碼的海洋中,而是先用好Linux系統。
你能夠參考《鳥哥的Linux私房菜》等Linux系統如何安裝使用等書籍,學會使用命令行。可是火哥認爲學習要有目標性,若是對着《鳥哥的Linux私房菜》一頁一頁每一個命令學下去,看幾天就會枯草乏味了。
因此火哥建議由單片機開發經驗的童鞋,第一個目標就是在Linux系統上如何搭建你的單片機開發板交叉環境,編譯出一個裸機的Led點燈的程序(不須要跑Linux內核) , 並經過開發板產商提供的工具燒寫。
這件事情並不難,網上已經有不少如何在Linux系統下交叉編譯單片機程序的文章,尤爲是stm32系列的,你能夠參考別人的文章作一遍,在這過程當中你將會熟悉各類經常使用的命令,shell, arm-linux-gcc交叉編譯工具鏈,Makefile(能夠單獨參考陳皓的文章)等Linux編程環境相關的知識,從而開始進入Linux的世界。
2. 你須要知道嵌入式Linux系統是怎麼跑起來的,通常由哪些組成部分
相信大部分人轉行嵌入式Linux開發並非爲了在Linux系統上開發單片機程序,而是想作Linux驅動或者應用開發。在走完入門第一步以後,就不要太糾結那些編譯,連接腳本那些文件格式怎麼寫,而是儘快把精力專一到Linux系統開發。
學習嵌入式Linux系統開發,首先就得知道一個Linux系統如何跑起來,如何把一個Linux系統環境在開發板上搭起來。這牽涉到bootrom, bootloader, uboot, dts, Linux內核,cmdline, rootfs等一系列組件,以及nand啓動,nor啓動等各類不一樣的方式,知道一個Linux嵌入式系統如何工做,再進一步修改添加本身的驅動和應用。
這裏有不少實踐性的東西,可能須要視頻資料帶你跑一遍,才能快速入門,火哥以前看的是韋東山老師的嵌入式Linux視頻,總共有一二三四期等,有免費試看,也有付費的,直接淘寶聯繫賣家能夠了解,火哥就不貼廣告連接了。
另外還有其它視頻,火哥沒有看過的,就不隨便推薦了,在嵌入式Linux學習這塊,理論性的知識須要慢慢看書,可是實踐性的知識仍是須要視頻資料帶你操做快速入門,看書和實踐循環漸進。
3. 你能夠嘗試作一些簡單的Linux應用和驅動開發了
走完了前面兩個步驟,相信你對嵌入式Linux開發有必定專業性認識了。在嵌入式Linux學習這塊,火哥更傾向於在作中學,60%實踐+40%理論。由於嵌入式Linux裏面不少系統環境相關的東西,並非書本上那種嚴格的理論公式,經過看書很難找到規律,並且在Linux內核裏面有一整套GNU(GNU是啥意思本身搜)世界的行話,那些寫Linux內核,驅動書籍的技術專家不可能全部行話都給你解釋,全部在沒有使用和開發經驗的前提下就直接打開《Unix環境高級編程》、《Linux設備驅動程序》等大牛的經典書籍,容易讓你雲裏霧裏。
火哥建議是,跟着一個視頻教程,好比韋東山老師的嵌入式Linux視頻,從0開始寫一個簡單驅動和應用,讓本身寫的驅動和應用代碼跑起來,點亮1個Led燈,先不用管Linux驅動中你調用的那些初始化,註冊等框架函數如何實現。
經過實踐的過程,熟悉整個代碼的運行環境以及Linux開發中的各類行話(系統調用,vfs等等)。這也是讓你一步一步取得學習正反饋,提高成就感和學習信心的方法。
其實Linux驅動開發自己並不難(難度不會超過你複變函數課本上的公式),也並不神祕,只不過它一整套行話術語,容易讓初學者雲裏霧裏,熟悉這套行話,擺脫恐懼心理,一個智商正常的普通本科生應該是可以掌握的。
4. 你須要補充一些計算機的理論知識
據火哥瞭解,大部分單片機工程師都是電子、通訊、自動化、機械等專業出身,不多計算機專業的。這些專業的童鞋,相對會缺少計算機專業的基本理論知識,如數據結構,操做系統,計算機組成原理,計算機網絡,算法,編譯連接的基本原理,數據庫等等。
補充理論知識是一個長期的過程(可能須要2-3年),並非要等到計算機的專業理論都學完才能夠去找工做,你能夠一邊補充基礎知識一邊面試一邊找工做,同時檢驗本身的基礎知識。這些基礎知識不但能提升你的技術功底,也能幫你經過筆試面試,決定你可否在一線城市突破20K的薪水。
在有了計算機科班的基礎知識,以及有必定Linux驅動開發經驗以後,Linux內核的學習是有必要的,可是入門的初學者不用急於進入Linux內核源碼,內核這塊東西仍是挺多的挺艱深的,得花時間邊看書邊看代碼慢慢啃,無法速成,可是Linux內核功底仍是可以提升你的薪資競爭力。
4、 給有工做經驗的轉行者的建議
1. 有工做的轉行者,你的優點是有保底的工做和收入,劣勢是沒有足夠的學習時間自由。有了當前的工做飯碗,不用急着找新工做,你能夠保持一個良好的心態,不驕不躁,能夠邊學習邊騎驢找馬,找到合適的工做。
固然有工做的人,時間上並不自由,若是你想學的新東西和你當前工做內容並不直接相關,火哥建議你能夠先選擇一份加班少的工做,這樣能夠騰出下班後的業餘時間來學習嵌入式Linux的新知識。
有工做的人,有了一些小積蓄,缺的是時間,那麼在學習上能夠適當買一些性價比高的付費視頻,加快入門和學習進度,節約寶貴的時間,這也是用金錢換時間。
通常狀況下,不須要學精通才出去找工做,學到能夠self correct(這個詞來源於一個TED關於如何快速自學的演講), 可以幹一些活的狀態,就能夠出去面試找相關的工做了,Linux嵌入式學習以通用基礎知識爲主,驅動裏面的音視頻,通訊協議相關的業務上的知識能夠找到相關的工做再補充。
2. 如何在只有單片機經驗,沒有Linux開發經驗的狀況下,如何經過社招嵌入式Linux開發工做?
這個對於社招看中相關工做背景的求職者是個頭疼的問題,火哥有如下幾點建議:
首先,看看公司是否有Linux相關的部門和開發計劃,能夠主動嘗試內部轉崗。
第二,看看能不能建議公司技術負責人把單片機開發的環境遷移到Linux系統上,在Linux系統環境上開發單片機,這樣至少你在工做中有使用Linux系統的機會。
第三,能夠先嚐試面一些在Linux環境下開發單片機的公司,面試後詢問面試官是否在Linux環境下開發單片機,若是是,能夠先加入用Linux開發單片機的公司繼續作一段時間單片機,順便再工做中熟悉一下Linux.
第四,嘗試一下面試真正作Linux系統開發的公司一些Bootloader或者固件開發相關的崗位,由於Bootloader和存儲控制器,電管管理等固件代碼和單片機裸機rtos開發有不少相關性,甚至ARM SOC裏面就有單片機核以及相關的固件,用於控制wifi,存儲,電源休眠喚醒等相關的功能,這樣能保證你可以在新工做中有必定輸出貢獻,而不是徹底的學習者。
第四,嘗試面試一些流動性高,離職率高的真正作Linux公司。這樣的公司一個詞形容:「缺人」。火哥以前在珠海某IC原廠工做,因爲珠海相關的從業者基數少,應屆畢業生不少也不肯意來小城市發展,再加上公司近年業績很差,離職率高,致使公司缺人,而且很難招到人,因此後來放開招人標準,願意培養只有單片機經驗,沒有Linux經驗社招者。
固然如今火哥在的深圳知名大廠,因爲從業人口基數大,公司品牌和待遇都頗有競爭力,競爭較爲激烈,雖然號稱缺人(實際上是招人太挑剔了),可是通常不會給沒有Linux經驗的求職者機會。
最後,在學習Linux嵌入式的過程當中,遇到的問題和寫的代碼,最好有技術博客和GitHub記錄下來,把相關連接貼在簡歷上,這也是像面試官證實你真的對嵌入式Linux有必定了解,面試官看完你的博客和GitHub,才能對你的技術水平有進一步瞭解,決定是否給你機會。
5、 給在校生轉行者的建議
對在校生來講,你多的是時間上的自由,缺的是金錢以及沒有一份保底的工做。
固然時間這東西就像衛生紙,看起來多,可是用着用着就沒有了,因此即便有充裕的時間,也要好好規劃,儘可能多學一些東西。
在校生既然缺錢,火哥就不建議花好幾萬培訓費去參加線下的嵌入式培訓,實際上培訓的內容都是嵌入式入門級知識,質量上可能還比不過幾百塊的韋東山嵌入式Linux視頻。並且視頻教程在時間上可能比培訓更加靈活。
在校生的優點在於你們都沒有行業相關經驗,校招的時候,不會考察你行業相關的知識,而更加註重計算機基礎知識的考察(火哥甚至是憑着操做系統,C語言,數據結構的筆試成績,基本沒有Linux開發經驗的狀況下拿到IC原廠Linux的offer, 固然校招以後還有大半年,買了韋東山付費視頻狂補相關知識),因此在校生應該乘着寶貴的時間,把火哥上一節提到的第4點基礎知識打牢固,這樣工做以後就能夠專一業務知識學習,更快升職加薪,不用由於基礎知識不牢,回爐重造。
另外,在校生可能有各類單片機嵌入式的競賽,在競勝過程中,可能能夠拿到不少獎,獲得老師同窗的誇讚。可是切記戒驕戒躁,不要由於比普通的同窗多掌握2個技術就自覺得了不得(大家之後面試的競爭對手根本不是這些徹底沒有技術的同窗),不要由於幾個獎狀就飄了,而不能靜下心來學習數據結構,操做系統原理等基礎知識。
若是不是在知名期刊發表高水平論文,或者國際上承認的ACM, Kaggle, ISLVRC圖像競賽中拿到那種高質量有分數和名次比賽結果的獎,其它國內競賽的獎在面試與實際工做中並無太多說服力,面試官反而喜歡基本功紮實,可塑性強的學生,而不是國內各類獎一堆,結果對時間複雜度,鏈表堆棧,mmu虛擬地址空間等概念一問三不知的學生。
除了火哥的文章,我還想把最近韋東山老師近期對一學員的職場答疑內容貼出來,對比以上文章,或許更有感受。
學員cleo問:
韋東山老師答:
1.門檻高:
從技術角度來講,須要懂硬件、懂英文,還要懂軟件,因此門檻高;
從職位角度來講,底層系統的職位確定少於APP的職位,而且須要有經驗;
不少人學習LINUX有一個誤區,只想作驅動。
實際上LINUX的範圍那麼廣,驅動只是很小的一部分。
在實際工做中,特別是中小企業,須要你從上到下都掌握;
華爲、中興那種大廠的作法是每人專精一部分,
這些人離開大廠後很難適應外面的世界,
中小企業玩不起那麼高的配置。
2. 實際工做中作的事情能夠跟你的單片機開發類比,
只是運行linux系統以後能夠作更多的事情
以智能家居開發爲例吧。
假設這樣的使用場景:
你能夠經過手機遠程操做遙控器來設計空調。
這涉及下面5個產品:
手機----服務器----家裏的智能網關--------遙控器------空調。
因此這個完整的產品須要開發:
a. 手機APP
b. 服務器:是手機APP和家裏智能網關的中介,還能夠用來管理用戶
c. 智能網關:手機APP跟它鏈接,它再去操做遙控器
d. 遙控器:接收網關的數據,再去發紅外信號給空調
e. 空調:咱們須要去了解空調的紅外協議
在這些產品中,遙控器就是單純的單片機,它除了傳統的功能外,
還能夠經過藍牙、zigbee等協議跟智能網關通訊。
智能網關通常就是運行LINUX的路由器,裏面也有藍牙模塊或zigbee模塊,
它承擔起訪問「互聯網」的責任;
服務器:用戶註冊、設備管理(1個用戶可能有多個智能硬件)、費用管理
你能夠看到,這些涉及的軟件開發不少,在單片機時代一我的能夠作完全部的工做;
可是在LINUX領域,你們要合做。
在實際的開發過程當中,就是溝通、寫代碼、本身測試、聯合測試。
之前是本身一我的作,如今要跟更多人打交道。
因此,你須要理解更多的概念。
從這個角度來講,即便只作APP,也應該懂一些底層驅動的概念。
3.經驗:
學習完123期視頻,實際工做中碰到的知識你都有接觸了。
可是你可能尚未經驗,沒辦法靈活使用,
我建議你學習時就可使用另外一個不同的板子,把涉及中的程序在新板子上寫出來。
最後,不要只看到驅動。
你要着眼於整個系統,你想作哪個行業,就這樣去學習:
a. 底層系統、驅動是基礎,先掌握這些概念
b. 再去學習這行業相關的APP開發,至少懂一些概念性的知識吧
之後不管你要作底層仍是APP開發,有整個系統的瞭解都更好找工做。
關注公衆號百問科技(ID:baiwenkeji)第一時間閱讀嵌入式乾貨。
技術交流加我的威信13266630429,驗證: 博客園