嵌入式開發要學多久?要學哪些課程
曾經有新手和我抱怨:為什么嵌入式開發這么難?
相信我,你不是學不會,只是沒找對方法。
這是一片真正為「終結迷茫」而生的回答,內容有點長,如果你趕時間,建議先+防止找不到,如果你想快速切入嵌入式開發行業,請花幾分鐘,從頭到尾不要錯過一字一句,因為字里行間都是我從業11年的經驗精華。
學習嵌入式,定位規劃比課程本身更重要!
一、定位
1.嵌入式主流的幾個方向
這是幾個是目前市場需求最大的,說白了就是學完以后工作比較好找。
我相信大多數人學習都是奔著高薪工作的吧。
這幾個方向里面,單片機開發是最偏向硬件的,Linux驅動開發其次。
Linux應用開發基本上算是純軟件了,基本很少會接觸到底層硬件的東西。
很多人,連這個幾個方向都搞不清楚,以為嵌入式就是搞ARM+Linux,怎么搞,搞什么一竅不通。
之前我們無際單片機有些學員就走了這彎路,剛開始就是定位不清晰,各種東西亂七八糟地學,浪費1年時間感覺還是啥也沒學到。
后面我們給他規劃職業方向,配合我們幾個項目實戰課程,學了4-5個月就直接去工作了,研究生基本都是16-18K起步。
所以,我認為定位比你盲目找課程重要太多了,方向不對努力翻倍,學習周期長又看不到結果,很容易就放棄了。
除了以上幾個方向,還有FPGA、以及安卓開發,這里就不一一舉例了。
2.各個方向各自優勢
這里我主要拿單片機開發和Linux驅動開發這兩個方向對比。
產品應用:
單片機適用于低成本、低功耗中低端產品應用。
Linux驅動開發適合對成本不敏感、對功耗不敏感,高性能中高端產品應用。
學習周期:
單片機更短,Linux驅動開發更長。
薪資待遇:
單片機開發比Linux驅動開發要低。
未來前景:
單片機開發適合個人低成本創業,一個人能同時做硬件和軟件。
Linux驅動需要一個團隊,比如說硬件設計、驅動開發、應用開發。
投產比評估
如果你急著找工作,可以先從單片機開發入手。
如果你不急著找工作,希望能做更高端產品可以直接上手Linux驅動/應用開發。
根據無際單片機以往學員數據,個人認為單片機開發投產比比Linux方向要高,零基礎堅持學4-6個月就能達到工作水平。
雖然起步工資沒Linux方向高,但是有穩定的資金流才是王道,后面再想學什么也沒那么大壓力。
二、學習路徑規劃
相信看到這里,你已經知道定位的重要性了,不根據職業定位去規劃課程就是浪費時間。
這11年,我一直在從事單片機開發,所以以下學習路徑應該是你見過最高效最實用的。
1.C語言基礎
很多人問我,匯編要學嗎?我直接告訴你,不用學。
我們的目標是快速達到我們的目標,匯編雖然能讓你更深入理解單片機原理,但是工作當中并不實用。
至少我做了開發這么多年,基本沒用到過。
匯編一般會在以下場景用:
a).資源非常匱乏的51單片機,ROM和RAM不夠只能用匯編。
b).RTOS移植的時候,每款單片機指令集有區別,你系統去學習沒太大意義,還不如不懂的指令直接網上搜快一點。
所以,聽我的,前期主攻C語言不會錯。
如果你沒學過C語言,建議你看下無際單片機錄制的單片機C語言課程。
市面上很多都是針對上位機的C語言,我們這個是針對單片機的,雖然大多相同,但往往就是一些細節讓新手從上位機過渡到單片機時一臉懵逼。
2.電路基礎
學單片機開發,有一半都是在學習電路途中放棄的。
我當初也是差點在學模擬電路時放棄,直到工作了很多年,我直接把模擬電路書和視頻都扔了。
實際產品開發用的很少,你只需要學習一些常用元器件原理和應用場景就可以了。
電路不用學得太深,你知道什么信號進來單片機,單片機輸出什么信號控制外圍功能電路就夠了。
至于為什么這里加個電阻,那里并個電容,為什么取值這個,先不用管。
實際產品開發中,這些工作都是由硬件工程師去完成的。
3.51單片機
有些人說51單片機過時了,淘汰了,這種直接當他是外行。
現在51單片機還在大量應用,哪怕你是接觸到一些藍牙產品,很多芯片都是51內核的,比如TI的CC2541。
我向你保證,如果51單片機能實現的功能,老板絕對不會允許你用STM32,哪怕讓你用會編寫,把你頭發寫掉光。
原因很簡單,51單片機便宜啊!
4.用51單片機做項目
前面學的c語言、基礎電路、51單片機都是知識工具而已。
學完就得把知識落地產生價值,而項目就是把這些知識產生價值的唯一途徑。
很多人學完了基礎知識,發現還是不會做項目,就在想是不是自己基礎沒學好啊?
其實不是,就像你學會了寫字,但是還是不會寫作文是一樣的感覺。
想寫出好作文,除了你的基礎知識功底,還需要你有豐富的經歷和思維對吧?
做項目就跟你寫作文一樣,也是考驗你項目思維和經歷了。
思維和經歷好不好,會決定你的程序寫得好不好。
很多人著急學STM32,把這最重要的一步給忽略了。
所以越往后缺失的東西越多,學起來自然也越費勁。
5.C語言進階
很多人迷戀C語言指針,而我建議把指、結構體等一些高階知識放在這個環節學習。
經過前面幾個環節洗禮,你的代碼水平和理解能力都提升了。
這個時候再去學習C語言高級技巧,時間成本會更低一些。
C語言進階我們無際單片機系統開源教程,其中包括枚舉、指針、結構體、回調函數、隊列算法、任務管理等可以直接用于你批量產品的知識。
6.STM32單片機
終于來到新手夢寐以求的STM32了。
這個環節,我建議把STM32當作工具來學,就是知道怎么調庫把外設用起來就行了。
沒必要深入系統地學習,只需要學最常用的外設就行了,學完不用,很快你就忘了。
具體哪些是常用的,上面那個導圖寫得很清楚了。
7.STM32項目
如果你能堅持到這里,恭喜你,馬上可以畢業了。
但是這個環節往往也是最難、最煎熬、最耗時的一步。
STM32項目某寶有一些DIY的項目,比如智能小車、無人機之類的,可以拿來練手。
不過,你能學到的可能也只是對編程的熟練度而已。
如果想學到更好的思維和編程技巧,可以無縫對接實際產品開發的。
最好還是跟著資深的工程師做項目。
三、總結
1.定位比課程本身更重要。
2.把大多數的時間精力放在項目實戰上。
最后彩蛋時間!!!
最近很多小伙伴找我要一些單片機學習資料,然后我根據自己從業十年經驗,熬夜肝了幾個通宵,精心整理一份「單片機入門到高級教程+工具包」,全部無償共享給大家!!!
除此以外,再含淚分享我壓箱底的22個熱門開源項目,包含源碼+原理圖+PCB+說明文檔,讓你迅速進階成高手!
據說有小伙伴靠這份資料順利進入BAT大廠,所以保存了一定要好好學習。
教程資料包和詳細的學習路徑可以看我下面這篇文章的開頭。
單片機入門到高級開掛學習路徑(附教程+工具)https://blog.csdn.net/weixin_43982452/article/details/114134096
單片機 嵌入式
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。