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