從事嵌入式開(kāi)發(fā)多年對(duì)于嵌入式的學(xué)習(xí)簡(jiǎn)單分享點(diǎn)經(jīng)驗(yàn),首先嵌入式學(xué)習(xí)熱度在當(dāng)前編程環(huán)境下還是熱點(diǎn)的存在,雖然專門針對(duì)前嵌入式的培訓(xùn)熱度沒(méi)有十年前那么火熱,但在實(shí)際的應(yīng)用場(chǎng)景中還是非常多,嵌入式的產(chǎn)品已經(jīng)遍布周圍的生活中,像常見(jiàn)的手機(jī),電視,機(jī)頂盒等等都是嵌入式產(chǎn)品的典型,所以嵌入式開(kāi)發(fā)程序員市場(chǎng)前景還是非常的廣泛,雖然嵌入式的程序員在市場(chǎng)上絕對(duì)數(shù)量沒(méi)有應(yīng)用級(jí)別的編程語(yǔ)言多,但是在絕對(duì)的數(shù)量也不在少數(shù),特別是在一線城市之外的對(duì)于嵌入式的工程師需求量還是非常的巨大。
該如何進(jìn)行嵌入式的學(xué)習(xí)?
首先嵌入式的學(xué)習(xí)緊密和硬件聯(lián)系在一起,起碼的計(jì)算機(jī)基本常識(shí)還是要多了解一些,計(jì)算機(jī)的組成原理等基礎(chǔ)還是要掌握的,嵌入式的編程主要面對(duì)的利用軟件控制硬件,所以懂點(diǎn)硬件相關(guān)的知識(shí)是必然的,但不要走入一個(gè)誤區(qū)是不是不懂得硬件就做不了軟件的開(kāi)發(fā)了,所以也沒(méi)有必要在學(xué)習(xí)嵌入式之前使勁啃硬件的知識(shí),畢竟軟件的開(kāi)發(fā)還是以軟件為主,如果學(xué)習(xí)的硬件正好是軟件控制的設(shè)備,這樣子在實(shí)際的編程中會(huì)顯得輕松許多。
嵌入式的軟件的編程最基礎(chǔ)的編程語(yǔ)言C語(yǔ)言和C++,這兩種編程語(yǔ)言屬于嵌入式必備的基礎(chǔ)語(yǔ)言,早期的嵌入式開(kāi)發(fā)主要是以C語(yǔ)言為主,畢竟當(dāng)時(shí)的硬件環(huán)境相對(duì)配置比較差,所以搭配C++語(yǔ)言來(lái)講是一種奢侈的存在,但是隨著硬件的不斷的增強(qiáng)C++對(duì)于嵌入式板子的性能的影響已經(jīng)非常小了,現(xiàn)在甚至很多嵌入式設(shè)備已經(jīng)標(biāo)配是安卓系統(tǒng)了,所以運(yùn)行C++已經(jīng)是很輕松的事情了,所以學(xué)習(xí)嵌入式的基本編程語(yǔ)言就是這兩種語(yǔ)言了。
對(duì)于這兩種語(yǔ)言的學(xué)習(xí)思路還是存在很大的差異,C語(yǔ)言是屬于老套的標(biāo)準(zhǔn)的面向過(guò)程的開(kāi)發(fā)語(yǔ)言,也是嵌入式開(kāi)發(fā)驅(qū)動(dòng)必備的編程語(yǔ)言,像涉及到linux內(nèi)核的編程語(yǔ)言都屬于C語(yǔ)言來(lái)完成,在某些必備的編程語(yǔ)言中C語(yǔ)言還是必備語(yǔ)言的存在。C++編程語(yǔ)言涉及到的編程框架相對(duì)比較多了,學(xué)習(xí)的難度也會(huì)增加許多所以不建議直接學(xué)習(xí)C++作為嵌入式的編程語(yǔ)言,還是建議在具備一定的C語(yǔ)言的基礎(chǔ)上再去學(xué)習(xí)C++,這樣還會(huì)顯得輕松一些,這門編程語(yǔ)言的學(xué)習(xí)也是需要長(zhǎng)期的積累,很可能在學(xué)習(xí)幾個(gè)月之后都沒(méi)有太大的感覺(jué)出來(lái),這些都是學(xué)習(xí)過(guò)程中必經(jīng)之路。
嵌入式的學(xué)習(xí)過(guò)程可能沒(méi)有應(yīng)用級(jí)別的開(kāi)發(fā)那么靈活,本身在設(shè)計(jì)過(guò)程中還是以尊重硬件的屬性為主,所以對(duì)于資源的考慮之類的操作也會(huì)多一些,所以和通用的應(yīng)用編程還是存在很大的區(qū)別,而且嵌入式相關(guān)框架的設(shè)計(jì)難度也是非常大,像典型的安卓?jī)?nèi)核以及谷歌瀏覽器內(nèi)核都屬于嵌入式框架設(shè)計(jì)中的一種,對(duì)于框架的學(xué)習(xí)也是必要的,但也需要循序漸進(jìn)的學(xué)習(xí),絕對(duì)不是一日之功,常見(jiàn)嵌入式書籍主要以C語(yǔ)言和C++基本功為主的書籍,在嵌入式系統(tǒng)學(xué)習(xí)過(guò)程中多看有關(guān)linux的書籍,這三類的書籍看完了之后才算是掌握一些嵌入式的基礎(chǔ),至于晉級(jí)之類的書籍還是要看項(xiàng)目實(shí)際推進(jìn)過(guò)程中使用的相關(guān)知識(shí)再做出選擇,不要覺(jué)得一股腦的看完很多書就能一下子掌握很多,還是要講求循序漸進(jìn)的過(guò)程,欲速則不達(dá),希望能幫到你。