嵌入式開發(fā)就業(yè)前景分析
2017-2018年IT技術(shù)已經(jīng)進入了高速發(fā)展的階段,互聯(lián)網(wǎng)開始逐漸步入物聯(lián)網(wǎng)的科技時代,可以說嵌入式開發(fā)技術(shù)在物聯(lián)網(wǎng)領(lǐng)域應(yīng)用最為廣泛,正是嵌入式開發(fā)行業(yè)十分火熱,很多大學(xué)畢業(yè)生紛紛通過嵌入式培訓(xùn)走上了嵌入式開發(fā)相關(guān)的崗位,但是仍有很多人對嵌入式行業(yè)并不太了解,存在很多疑問,所以就會人問“學(xué)嵌入式有前途嗎”,可以從事哪些工作?學(xué)完嵌入式可以做什么呢?這樣的問題總會被問及。
學(xué)習(xí)嵌入式有前途嗎?嵌入式的應(yīng)用是比較廣泛的,適合于各個領(lǐng)域。嵌入式主要應(yīng)用于消費類電子行業(yè),比如日常生活中常用的手機、電腦、數(shù)字電視、電子書等移動手持設(shè)備都屬于消費類電子行業(yè);汽車電子,比如GPS定位導(dǎo)航等汽車電子行業(yè);軍工行業(yè),比如雷達、航空設(shè)備、野戰(zhàn)軍作戰(zhàn)裝備等軍工行業(yè)都屬于嵌入式行業(yè),都屬于嵌入式技術(shù)的實際應(yīng)用范疇。
可以說物聯(lián)網(wǎng)已經(jīng)滲透到了人們生活的方方面面,隨著近年來智能硬件產(chǎn)品的流行,各大公司、企業(yè)都已經(jīng)紛紛加入到了智能產(chǎn)品的開發(fā)浪潮當(dāng)中,百度、京東、小米、360等公司的智能硬件相關(guān)業(yè)務(wù)也都不斷在完善,可以說嵌入式技術(shù)的發(fā)展已經(jīng)迎來了新高潮,可以說目前市場上對嵌入式開人才的需求是十分火熱的。
談到嵌入式技術(shù),可能除計算機方面相關(guān)專業(yè)人士外很少有人能夠涉足了解。其實應(yīng)用到嵌入式技術(shù)的產(chǎn)品已經(jīng)滲透到我們生活的方方面面。從人們的生活到工業(yè)化生產(chǎn),從銀行、醫(yī)療到航空航天領(lǐng)域,嵌入式系統(tǒng)無處不在。從我們生活的智能化、工業(yè)的自動化、國防的現(xiàn)代化中都可以找到嵌入式系統(tǒng)的蹤跡。
無人機、無人駕駛、可穿戴設(shè)備、智能家居、智能城市等相關(guān)產(chǎn)業(yè)技術(shù)產(chǎn)品就是我們身邊嵌入式的實例,嵌入式系統(tǒng)應(yīng)用已越來越深入和廣泛。嵌入式系統(tǒng)因其體積小、可靠性高、功能強、靈活方便等許多優(yōu)點,對各行各業(yè)的技術(shù)改造、產(chǎn)品更新?lián)Q代、加速自動化進程、提高生產(chǎn)效率等方面起到了極其重要的推動作用。尤其是近年來,智能硬件鋪天蓋地的出現(xiàn),一時間讓人們徹底改變了過去對嵌入式系統(tǒng)應(yīng)用的認(rèn)識!以前遠(yuǎn)在天邊的構(gòu)想變?yōu)榱巳缃窠谑诌叺母鞣N家用電器,再不了解嵌入式你就OUT了。
嵌入式市場究竟有多大?一系列數(shù)字或許可以給大家一些參考:每年全球PC的出貨量大約是幾億臺;手機大約十幾億臺;而所有的嵌入式系統(tǒng)設(shè)備每年的出貨量大約為一百多億臺。如此大的一個舞臺,對于嵌入式從業(yè)者或即將進入這個行業(yè)的人來說絕對是一個不可錯過的好機會。時下,基于市場的需求,越來越多的企業(yè)投入到智能硬件的研發(fā)工作中來。與企業(yè)計算等應(yīng)用軟件不同,嵌入式領(lǐng)域人才的工作強度通常低一些(但收入不低)。
但是嵌入式開發(fā)的入門門檻還是比較高的,不僅要懂較底層軟件(例如操作系統(tǒng)級、驅(qū)動程序級軟件),對軟件專業(yè)水平要求較高(嵌入式系統(tǒng)對軟件設(shè)計的時間和空間效率要求較高),而且必須懂得硬件的工作原理,相對于市場來說從高校剛畢業(yè)的計算機專業(yè)的學(xué)生,不論從經(jīng)驗還是能力上與企業(yè)需求還有很大的距離。企業(yè)需要動手能力強,真正了解產(chǎn)品開發(fā)過程的人才。所以越來越多的人開始選擇培訓(xùn)機構(gòu)作為能力提升的一個手段。
嵌入式領(lǐng)域的職業(yè)發(fā)展方向
那么嵌入式領(lǐng)域的職業(yè)發(fā)展方向是什么?從硬件和軟件方面,各自的發(fā)展方向分別是什么?達到這些目標(biāo),需要學(xué)習(xí)哪些知識?達到哪些層次?
嵌入式開發(fā)的門檻相對較高,對程序員的要求一般都是對底層感興趣,學(xué)習(xí)能力、動手能力要強,對問題能夠從全局和細(xì)節(jié)去把握,有很強的系統(tǒng)分析和設(shè)計能力。從工程師起步,一般有幾個發(fā)展方向,一個是成為技術(shù)方面的核心,領(lǐng)域內(nèi)的專家;另一個是從項目中鍛煉起來,成為項目主管或是管理型人才;再有就是利用自己的技術(shù)及行業(yè)經(jīng)驗去創(chuàng)業(yè)。
硬件和軟件的發(fā)展方向是不同的。說說軟件需要學(xué)習(xí)的知識。
雖然說搞嵌入式軟件更多時候是在實際的工作中學(xué)習(xí)的,但一些重要的基礎(chǔ)知識不可或缺。
1.計算機組成/微機原理
主要是為了了解微型計算機的硬件工作原理,明白CPU、總線、I/O、存儲器等一些關(guān)鍵結(jié)構(gòu)是怎么工作的,雖然是很枯燥的知識,但是對熟悉外圍設(shè)備硬件工作方式,及操作系統(tǒng),軟件架構(gòu)的設(shè)計及優(yōu)化相當(dāng)關(guān)鍵。
2.操作系統(tǒng)
嵌入式產(chǎn)品應(yīng)用比較廣泛的是Linux和WinCE。但操作系統(tǒng)的內(nèi)部設(shè)計原理都是殊途同歸。首先要去學(xué)習(xí)的是操作系統(tǒng)原理,去了解進程通信、內(nèi)存管理、文件系統(tǒng)等幾個重要的部分,因為這些在軟件開發(fā)尤其是內(nèi)核驅(qū)動開發(fā)時會用到。接下來可以去熟悉至少一種主流的操作系統(tǒng),Linux是一個很好的選擇,去了解它的內(nèi)核架構(gòu),設(shè)備驅(qū)動架構(gòu),如何去編譯,裁剪,編寫應(yīng)用程序,以及如何使用在具體的嵌入式產(chǎn)品上。
3.數(shù)字電路
學(xué)習(xí)這方面的知識主要是了解一些基本的電路知識,如門電路、邏輯電路、存儲器、寄存器,為了更好的理解嵌入式芯片,存儲器,外圍設(shè)備等硬件的設(shè)計,但往往在軟件開發(fā)中未必能用的到。因為大部分硬件都提供了很完整的軟件接口。
4.編程語言:C語言和匯編
對于C語言本身的基礎(chǔ)來說,無非是把結(jié)構(gòu)化,函數(shù),數(shù)組,指針弄熟,但是嵌入式開發(fā)對C語言應(yīng)用的要求會更高。要對內(nèi)存分配,文件訪問,寄存器訪問,預(yù)處理指令,中斷處理程序等等相當(dāng)熟悉,這些都是在使用中要注意的細(xì)節(jié)問題。C語言對程序的優(yōu)化也很重要,而這些往往是需要從全局去考慮。匯編一般是和處理器的指令集相關(guān)的,可以更好的去理解處理器的工作原理,往往是用在一些需要效率的地方,如系統(tǒng)的初始化。
5.數(shù)據(jù)結(jié)構(gòu)和算法
數(shù)據(jù)結(jié)構(gòu)在嵌入式開發(fā)中也很重要,比如說操作系統(tǒng)里的很多實現(xiàn)都用到了具體的算法?;镜臄?shù)據(jù)結(jié)構(gòu)需要掌握,如各種鏈表,樹,圖等等;而算法的學(xué)習(xí)需要數(shù)學(xué)知識作為鋪墊,用計算機語言去實現(xiàn)。對于軟件從業(yè)人員來說,算法終究是一個工具,在實際應(yīng)用時再深入挖掘也可。
6.軟件工程/軟件測試/項目管理基礎(chǔ)
這些是軟件開發(fā)人員的必備知識。
7.開發(fā)平臺
嵌入式的開發(fā)平臺不局限于一種操作系統(tǒng),因此要熟悉各種操作系統(tǒng)下的命令、編輯器及開發(fā)工具,這一點往往被很多人忽視。舉個例子,Linux下的程序員開發(fā)環(huán)境往往是按自己的習(xí)慣搭建,熟練掌握一種編輯器如Vim/Emacs可以大幅度提高工作效率。磨刀不誤砍柴工。
嵌入式領(lǐng)域的方向是很多的,它所應(yīng)用到的行業(yè)范圍也很廣。因此除了這些基礎(chǔ)的知識以外,在具體的應(yīng)用中可能還需要一些其它的知識,這些知識的每一種都可以研究的很深,舉幾個例子。
1.內(nèi)核,驅(qū)動及中間件
內(nèi)核開發(fā)和驅(qū)動本身就是一個方向,驅(qū)動和硬件接口相關(guān),而內(nèi)核的修改和移植更是需要對OS有很深的理解。至于中間件,一般是基于OS或存在于OS和應(yīng)用程序之間的庫,最典型的就是基于Linux的Android。
2.通信協(xié)議
通信協(xié)議有很多種,經(jīng)常用到的有網(wǎng)絡(luò)通信協(xié)議,無線通信協(xié)議,串口/USB通信協(xié)議等等。
3.音視頻技術(shù)
牽涉到音頻視頻處理,壓縮,編解碼等等。
4.信息安全
如加密技術(shù),身份認(rèn)證,數(shù)字證書等等。
5.行業(yè)知識
和具體行業(yè)或領(lǐng)域相關(guān)的知識,如通訊、工控、電子等等。
這里有一個我認(rèn)為不錯的學(xué)習(xí)步驟:
1.基礎(chǔ)知識中,計算機組成、操作系統(tǒng)、編程語言和數(shù)據(jù)結(jié)構(gòu)是必需的。
2.找一種CPU體系,了解其核心架構(gòu),學(xué)習(xí)指令集,比如說ARM。
3.找一種OS,如Linux,或是傳統(tǒng)RTOS,如Nucleus、eCos,讀源碼和文檔,理解OS內(nèi)部實現(xiàn),包括進程,任務(wù),消息機制,內(nèi)存管理,設(shè)備驅(qū)動,中斷等核心內(nèi)容。
4.找一塊成熟的開發(fā)板,板級資料要齊全,熟悉嵌入式軟件開發(fā)流程。
5.在項目過程中深入學(xué)習(xí)其它的技術(shù)。
總之,這些知識的學(xué)習(xí)不是一蹴而就的,過程會很漫長,也沒有什么特別的技巧。需要去看大量的技術(shù)文檔和源碼,而這些文檔大部分又都是英文的。在工作和做具體項目的過程中會學(xué)習(xí)的比較快,理論結(jié)合實踐才是王道。
嵌入式的發(fā)展方向有很多,門檻高低不一樣。具體來說:
1.單片機:工控程序(不跑os)--入門容易,無外乎就是掌握匯編和c,能夠根據(jù)datasheet來寫,發(fā)展前景一般,也沒有太大的技術(shù)難度,除非你在算法上面有優(yōu)勢,比如智能車會各種PID,模式識別上會神經(jīng)網(wǎng)絡(luò),優(yōu)化上會遺傳算法等等,但是這些復(fù)雜的控制一般就不會裸奔了(除非環(huán)境惡劣),肯定是處理器強悍,帶os的;硬件制作--就是數(shù)字電路,涉及單片機的外設(shè),感覺難度也不高,據(jù)我說知,只會單片機無論硬件還是軟件工資都不高,也沒有特別大的技術(shù)含量,同時,單片機更新?lián)Q代特別快,你需要從大量的單片機中找尋適合產(chǎn)品的,看不同的datasheet。
2.ARM:這個搞的人很多,軟件上就是1.寫底層驅(qū)動,這個入門,深入都不容易,需要對硬件及os有較深的了解,發(fā)展還是很不錯;2.操作系統(tǒng)-比較復(fù)雜,linux,android等,你看現(xiàn)在很多手機廠商推出的操作系統(tǒng)也就是修改內(nèi)核,換皮膚,就業(yè)還是很容易的;3.應(yīng)用程序,就是android開發(fā)或者Linux上應(yīng)用開發(fā)(QT等),做的人很多,就業(yè)容易待遇也不錯,需要掌握c++/java。硬件上1.就像手機一樣在處理器上做整體的電路,比單片機入門難的多,做成技術(shù)大牛了不缺錢。2.soc,架構(gòu)開發(fā)等后面會提到
3.FPGA:就是硬件編程,入門很簡單,做深很難,要對時序有非常深的理解和大量的項目開發(fā)經(jīng)驗,就算你做的特別好,前景還是不明確。FPGA近年的一大熱門就是軟件無線電,成本還降不下去,同時AD采樣速度目前不夠,導(dǎo)致FPGA的應(yīng)用有限,一般公司都是把它作為一個驗證工具比如IC設(shè)計上的驗證。只會FPGA就業(yè)會很窄,也不理想,建議作為工具學(xué)習(xí)。
4.DSP:就是算法,你需要一個名牌大學(xué)研究生以上學(xué)歷,同時在算法和數(shù)學(xué)上有很強的能力。如果做不到,就不用搞了。
5.IC設(shè)計,做微處理器上的soc,前端后端,專用處理器(應(yīng)該也屬于嵌入式領(lǐng)域),入門難,成為牛人更難,對計算機體系結(jié)構(gòu),微處理器結(jié)構(gòu),集成電路等等有比較深的認(rèn)識,然后項目經(jīng)驗大大的有才行。不過國內(nèi)行情一般,外企招人少,希望今年開始國家的扶持政策能夠發(fā)揮作用。
6.微處理器體系結(jié)構(gòu):偏理論,偏宏觀,研究生能夠?qū)φ麄€體系結(jié)構(gòu)有個比較淺的了解同時在局部上能夠做一點設(shè)計工作,博士生能夠?qū)φ麄€結(jié)構(gòu)有較深的認(rèn)識在局部上能設(shè)計?,F(xiàn)在搞的多的是高性能體系結(jié)構(gòu),低功耗結(jié)構(gòu),并行開發(fā)等等,因為功耗和并行限制了目前處理器的速度,所以在低功耗和并行上開發(fā)有很大的前景,同時基于神經(jīng)網(wǎng)絡(luò)的架構(gòu)處理器,云計算處理器等專用處理器也是目前的一個熱點。發(fā)展前景很好,但是難度不是一般的大,從中國在架構(gòu)上做出的貢獻在世界上分量很少就可以看出。