一說到嵌入式開發,大多數人想到的是ARM、Linux、C 、安卓等等。
看了很多相關的入門學習文章,一臉茫然,這學習的東西也太多了吧?門檻也太高了吧?
我做了這個行業10年,現在看到網上那些入門文章都感覺學習難度很大,很多新手就是這樣從入門到放棄的。
但真實的情況是,這個行業入門門檻低到讓你發指,隻要你能堅持,初中文憑照樣能玩得很溜。
如果你真的喜歡研究技術,喜歡做一個創客,通過自己掌握的技術把自己天馬行空的想象變成現實産品,那嵌入式開發絕對是你必學的技術。
1.嵌入式軟件開發是做什麼的?
很多人可能還不知道,嵌入式軟件開發是做什麼的。
簡單來說啊,就是你寫程序控制硬件電路去實現電子産品的智能控制功能。
相對純軟件,嵌入式開發更有意思,純軟件學習過程大多數都是在屏幕上打印一些冷冰冰的字符。
而嵌入式開發大多數是在開發闆上面,你很快就能寫程序去控制一個LED燈,這是不是更有意思一些?
還有就是嵌入式開發是基于芯片開發,比如說一些ARM芯片,這種芯片就像是電腦CPU一樣,隻不過性能、成本、尺寸各方面比電腦CPU要精簡。
這種更适合去做定制化的電子産品,比如說豐巢快遞櫃,平闆電腦等等。
2.嵌入式開發要學習哪些課程?
很多新手從開始就已經走錯了方向,嵌入式涉及的技術太多了。
就像一個公司的組織架構一樣,一個公司分很多職位,比如說有做技術的、有做業務的、有做人力的等等。
同樣,嵌入式開發也分很多方向的,主流的方向就是:
還有别的FPGA/DSP等等就先不說了。
如果你前期方向不定位清楚,你基本不可能學會嵌入式開發,因為學的東西太多了,你根本學不過來,長期學習沒結果肯定也會放棄。
但是如果我們定位很清晰,那學習的速度就像開挂一樣。
我經常和我們無際單片機編程的學員說,要活成一道激光一樣,聚焦一個點死磕,這樣才能快速有效做出成績。
那單片機開發和ARM Linux開發有什麼區别?
單片機開發主要做中低端産品,比如說大家一定接觸到的ofo共享單車、智能家居傳感器和網關、無人機、掃地機器人等等。
ARM Linux主要做中高端産品,比如說平闆電腦,智能機器人等等。
這兩個方向沒有誰比誰更好的說法,各自的應用場景和産品不同。
很多人說學嵌入式開發就學ARM、Linux,單片機開發沒前途,這種純粹是技術人和外行人的思維。
曾經我也是這樣想的,我這幾年一直在做單片機開發,單片機開發總是比做ARM Linux開發的工資低,心裡也很不爽。
自從後面看到一些隻會51單片機,年入幾百萬老闆的時候,才徹底颠覆我的三觀。
技術再牛逼,做的東西再高端又如何?
認知和思維不進步,你的收入永遠都是打工水平。
所以,技術水平和收入并不是因果聯系,技術再好,從打工的層面都會有瓶頸,關鍵還是怎麼通過技術這個工具去産生價值。
Ok,有點扯遠了,回到主題,嵌入式開發要學哪些課程?
我們前面說了方向,拿我最熟悉的單片機開發來說。
一個電子産品實際開發會有2個人共同開發:硬件工程師和軟件工程師。
我們的定位就是軟件工程師,因為待遇會比硬件工程師好一點,現在硬件很多都是集成化,所以做硬件成長過程會比較坎坷,接觸不到核心的技術。
如果接觸不到核心技術,那硬件不如軟件工資高。
這樣一步步縮小我們的定位以後,再根據我們定位去收集學習的内容,最後你會發現你要學的東西其實并不多。
收集學習内容最好的方法就是去招聘平台搜相關職位。
比如說我們可以搜:單片機工程師/嵌入式工程師。
這個是某鵬汽車的單片機開發職位,結合我從事這個行業10年的經驗總結出,必須要學習就是以下幾個課程:
嵌入式和單片機開發主要是用c語言來編寫程序去控制硬件完成相應的産品功能。
其實彙編也可以,但是彙編寫的代碼維護起來很麻煩,現在一般很少用,所以主要學C為主。
我們無際單片機編程也錄制了一套單片機c語言的入門教程,非常适合新手。
這套本來是為零基礎的學員錄制的,後面感覺這塊教程已經泛濫,幹脆分享出來了。
2.電路基礎
做嵌入式單片機開發主要就是寫程序控制硬件,所以需要有一定的電路基礎,學到看得懂電路就可以了。
3.單片機
目前市面上單片機的型号很多,基本都是大同小異,新手可以先從51單片機開始學起,比較容易上手,後面再進階到STM32。
最後,祝大家學有所成!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!