朋友圈

400-850-8622

全國(guó)統(tǒng)一學(xué)習(xí)專線 9:00-21:00

位置:程序開發(fā)培訓(xùn)問答 > 嵌入式開發(fā)培訓(xùn)問答 > 嵌入式行業(yè)真的沒前途嗎?

嵌入式行業(yè)真的沒前途嗎?

日期:2024-10-02     瀏覽:31    來源:綜合教育資訊
核心提示:一個(gè)剛讀研一,從本科開始學(xué)了四年嵌入式的渣渣,來嘮嗑兩句。先談?wù)勎业哪感5漠厴I(yè)生情況吧。我的母校是一個(gè)普通二本,許多本科就

一個(gè)剛讀研一,從本科開始學(xué)了四年嵌入式的渣渣,來嘮嗑兩句。

先談?wù)勎业哪感5漠厴I(yè)生情況吧。

我的母校是一個(gè)普通二本,許多本科就出去工作的學(xué)長(zhǎng)或者同級(jí)生,從事嵌入式方向,至少也是6K+,做STM32,linux,PCB的都有。

先談?wù)勄度胧绞巧?/p>

嵌入式計(jì)算機(jī)系統(tǒng),英文名embedded computer system,指的就是就是一個(gè)相對(duì)微小的設(shè)備,植入了計(jì)算機(jī)。換句話說,簡(jiǎn)單的像電子表,鬧鐘,復(fù)雜點(diǎn)的像POS機(jī),自動(dòng)販賣機(jī),ATM等,都屬于嵌入式設(shè)備。

我的嵌入式之路

由于本科四年的學(xué)校屬于師范學(xué)校,在工科領(lǐng)域較弱,本科期間學(xué)習(xí)方向基本都是自己在找。

大一,大約是四年前的11月初吧,我當(dāng)時(shí)就買了一套亞博智能的資料。大約50塊錢,1本書+1個(gè)51開發(fā)板,大一那會(huì)兒剛好在學(xué)C語言,恰好51就成了*好的C語言訓(xùn)練平臺(tái)。

借助51,也學(xué)了一些硬件基礎(chǔ)知識(shí),什么上下拉電阻,濾波電容,施密特觸發(fā)器等等。這也為后面學(xué)習(xí)電路原理,數(shù)字電路,模擬電路三大基礎(chǔ)*打了一定的基礎(chǔ)。

51*有意思的項(xiàng)目無疑就是做智能小車了,一對(duì)小電機(jī),配合L298N控制,紅外對(duì)管尋跡。

*次接觸STM32是在大一下學(xué)期,做小平衡車的時(shí)候,是為智能車比賽打基礎(chǔ),當(dāng)時(shí)要兩個(gè)模塊,一個(gè)是陀螺儀MPU6050,另一個(gè)是攝像頭OV7670。前者用51還是調(diào)的出來,后者實(shí)在是沒有辦法,做是做出來了,但是。。。卡成PPT,TFT屏幕讀取攝像頭數(shù)據(jù)是一下一下的。關(guān)于小車的文章推薦:做一個(gè)STM32小車很簡(jiǎn)單嗎。

之后我便接觸到了STM32。攝像頭,陀螺儀這些在51上讓人很是頭疼的外設(shè),頓時(shí)變得簡(jiǎn)單易用。外部中斷,定時(shí)器這些資源也不像51那樣寶貴,大把的外設(shè)可以用。。。等等

簡(jiǎn)單設(shè)備用8位機(jī),復(fù)雜設(shè)備用32位機(jī),設(shè)計(jì)電路板用DXP,這個(gè)想法維持了很久,直到18-19年的智能車競(jìng)賽。

這兩年的智能車競(jìng)賽發(fā)生了兩件有意思的事情。

一個(gè)是調(diào)試新的元素,比如環(huán)島,橫斷。

另一個(gè)是新的環(huán)境,賽道不再遮光。

前者標(biāo)志位已經(jīng)顯得不夠了,后來查詢資料,使用上了有限狀態(tài)機(jī)FSM。

后者短時(shí)間內(nèi)也沒有什么好思路,直到接觸到了OpenMV和OpenCV。

FSM整出來以后,我在想是否有更高級(jí),更強(qiáng)大的處理方法。

linux告訴了我答案,包括OpenCV。

我才發(fā)現(xiàn),原來嵌入式開發(fā)和JAVA,前后端開發(fā)一樣,是可以有操作系統(tǒng)的。

原來中斷,DMA這些東西,在操作系統(tǒng)看來,就是進(jìn)程,線程的底層表現(xiàn)。

目前,嵌入式仍在學(xué)習(xí)中,跟著老師學(xué)習(xí)2440,裸機(jī)開發(fā),驅(qū)動(dòng)開發(fā),系統(tǒng)開發(fā)。

同時(shí)在整機(jī)器學(xué)習(xí),模式識(shí)別,圖像處理這些東西,希望有朝一日,能和嵌入式聯(lián)動(dòng)起來。

就像本科那時(shí)51聯(lián)動(dòng)C語言,STM32聯(lián)動(dòng)PID,卡爾曼濾波等等一樣。

嵌入式行業(yè)定義

說了這么多,感覺有些偏題哈,回到主題吧。

首先,嵌入式行業(yè)是很廣的,看你怎么定義。

只是8位機(jī)8051算嵌入式加上RTOS,RT Thread的單片機(jī)系統(tǒng)開發(fā)算嵌入式linux系統(tǒng)API開發(fā),驅(qū)動(dòng)開發(fā)算嵌入式SOC(片上系統(tǒng))+Linux+OpenCV+CNN+YOLO也叫嵌入式。上述內(nèi)容都是嵌入式,同樣是嵌入式,你覺得薪酬會(huì)一樣嗎?

其次,上述的內(nèi)容,個(gè)人覺得是個(gè)層層遞進(jìn)的關(guān)系,而不是站在對(duì)立面的關(guān)系,因此,我不同意單片機(jī)很low,linux和機(jī)器學(xué)習(xí)就很高大上的說法,畢竟嵌入式技術(shù)中,這幾者都是不可或缺的,區(qū)別在于層次不同,我們需要做的不是站在對(duì)立面,而是做到因地制宜。

比如你控制個(gè)有刷直流電機(jī),51足矣,但若是三相無刷電機(jī),可能就需要STM32了。30W像素的攝像頭STM32游刃有余,但200W或更高的像素的攝像頭就可能需要SOC了,如果是做人面識(shí)別這樣的東西,大概率要用到SOC,反過來SOC雖然性能強(qiáng),但功耗高,穩(wěn)定性不如單片機(jī),一些需要穩(wěn)定控制的設(shè)備(比如電機(jī)),還是需要單片機(jī)的。

嵌入式行業(yè)不夠景氣的可能原因

*后,鄙人淺薄理解,嵌入式?jīng)]前途可能的兩個(gè)原因:人才缺失嚴(yán)重,且工資較低。

先說人才缺失

純JAVA開發(fā)或是純電源,傳感器開發(fā),又或者是Solidworks做模具等一般只需要寫代碼或者只需要?jiǎng)永予F或者畫圖就行了,但是嵌入式基本是要求軟硬兼?zhèn)?。而且往往也得?huì)畫圖(PCB)。

JAVA Python這些語言高級(jí)特點(diǎn)也很明顯,類和對(duì)象處理功能都很強(qiáng)大,后臺(tái)也能聯(lián)動(dòng)(比如JAVA的JDBC聯(lián)動(dòng)MySQL等等)。但嵌入式的語言主要是相對(duì)傳統(tǒng)的C/C++,甚至要寫匯編代碼,開發(fā)難度比JAVA,Python個(gè)人覺得都要高一些。

嵌入式嚴(yán)格歸類是在計(jì)算機(jī)里,但是目前國(guó)內(nèi)計(jì)算機(jī)依然是以軟件為主(BAT三巨頭都是純軟件公司)。以硬件為根基的嵌入式,自然發(fā)展艱難一些,這也是為什么電子或者自動(dòng)化出身的學(xué)生,學(xué)嵌入式比例比計(jì)算機(jī)科班反而高一些的原因之一。

可見嵌入式開發(fā)的門檻還是不低的(目前個(gè)人認(rèn)為IT行業(yè)中*入門難度高于嵌入式的,恐怕只有圖像,計(jì)算機(jī)視覺,機(jī)器學(xué)習(xí)這些東西了)。

嵌入式物聯(lián)網(wǎng)需要學(xué)的東西真的非常多,千萬不要學(xué)錯(cuò)了路線和內(nèi)容,導(dǎo)致工資要不上去!

無償分享大家一個(gè)資料包,差不多150多G。里面學(xué)習(xí)內(nèi)容、面經(jīng)、項(xiàng)目都比較新也比較全!某魚上買估計(jì)至少要好幾十。

再說薪酬低的問題

正如前文所言,嵌入式入門門檻不低,因此大多數(shù)涉獵嵌入式行業(yè)并入職的,還是集中在單片機(jī)領(lǐng)域,這部分拉低了嵌入式的平均薪酬,其實(shí)如果能做到linux,甚至做到視覺領(lǐng)域,個(gè)人覺得還是會(huì)有不錯(cuò)的收入的。

這一點(diǎn)軟件,硬件行業(yè)也一樣。軟件只會(huì)前端(HTML5,Vue.js等),做不到全棧。硬件只會(huì)畫簡(jiǎn)單的信號(hào)板,雙層板,畫不了多層板,高頻信號(hào)板,高電流板。機(jī)械只會(huì)畫平面圖,不會(huì)做模具。一樣工資不會(huì)高,我這一屆有一個(gè)同學(xué)畢業(yè)了去做前端,薪酬才三千。。。只能說這些入門門檻不如嵌入式高,不會(huì)說大多數(shù)從業(yè)者都集中在低端行業(yè),平均薪酬自然也不會(huì)和嵌入式一樣被低端行業(yè)拉的這么低。

談?wù)勄度胧?值不值得入行?

嵌入式20年等價(jià)于JAVA10年工作?

很不幸,這個(gè)說法。沒有問題

為什么?

萬變不離其宗,還是門檻的問題。

嵌入式學(xué)習(xí)不僅入門難,整個(gè)流程下來,就沒有簡(jiǎn)單的。

JAVA專精于網(wǎng)頁,數(shù)據(jù)庫(kù),服務(wù)器等等。

PCB專注于電路板,區(qū)別也大多在于層數(shù),頻率上。

機(jī)械制圖也是如此。

嵌入式呢?不好意思,嵌入式涉及范圍比這些廣的多。

軟件硬件基本都要會(huì)整才行玩電機(jī),玩陀螺儀,玩攝像頭,幾乎是必修課。那么控制理論不能缺,PID不能少。模式識(shí)別,圖像處理也得跟進(jìn)。到linux,操作系統(tǒng)原理不能少。換句話說,論算法,嵌入式從業(yè)可能需要關(guān)注三種算法:

數(shù)據(jù)結(jié)構(gòu),控制算法,信號(hào)處理。

這些東西,完全掌握,可以說20年是不多不少的。換個(gè)說法,嵌入式?jīng)]有全棧的說法,因?yàn)榍度胧奖旧?就是全棧。

但是20年以后,嵌入式從業(yè)者再和JAVA從業(yè)者,會(huì)怎么樣呢?

哪些人適合入行嵌入式

以下我列出來的情況,如果大部分都中了,這些仁兄就不推薦入坑嵌入式了:

不想做硬件的,打死不做電路的不想寫代碼的,看見代碼就想吐的不想整操作系統(tǒng),覺得裸機(jī)單片機(jī)就是一切的想短時(shí)間內(nèi)賺錢,車房一體化全部到位的先說不像寫代碼或者不想做電路的情況吧。

嵌入式兩者都有,即便是*簡(jiǎn)單的8051,不寫代碼或者不弄電路,根本進(jìn)行不下去。可以說一開始的路就被堵死了。

再說不整操作系統(tǒng)的。

無OS的單片機(jī)設(shè)備,簡(jiǎn)單處理完全可以處理,但更復(fù)雜的設(shè)備,更復(fù)雜的功能呢?比如WIFI?攝像頭?激光雷達(dá)?

不想整操作系統(tǒng),嵌入式就已經(jīng)被大大限制住發(fā)展?jié)摿α?。產(chǎn)品以后可能集中在相對(duì)低端的產(chǎn)品里,自動(dòng)販賣機(jī),POS機(jī),付款機(jī),公交,地鐵的刷卡機(jī)等等設(shè)備幾乎無一例外的搭載了操作系統(tǒng)。

薪酬的問題

眾所周知,嵌入式是個(gè)潛力股。

前期工資一般較低,這也確實(shí)是事實(shí)。

因此短時(shí)間急著賺錢的話,嵌入式可能還真的不太合適。

來錢快的,技術(shù)崗還是JAVA強(qiáng)。

*后說說嵌入式的學(xué)習(xí)問題吧,大家也一起交流交流。

小白的話建議還是先想好入不入嵌入式這個(gè)坑,畢竟不論怎么說,嵌入式都是一條苦行僧路。如果完全沒有興趣趨使,還是建議轉(zhuǎn)行??聪麓宋?一位嵌入式工程師的成長(zhǎng)之路。

從嵌入式小白到大神

階段一:從數(shù)電、模電、C語言入坑嵌入式

硬件方面電子系的電路+數(shù)電+模電是肯定要學(xué)的,特別是數(shù)電,不說爐火純青,至少也得做到了然于胸。

軟件方面,C語言不能少的。我看知乎都推薦C Primer Plus這樣的教材,但本人不推薦小白去看,畢竟確實(shí)不太容易啃下來,譚浩強(qiáng)教授的紅皮書就可以了,畢竟入門容易。

階段二:51單片機(jī)實(shí)戰(zhàn)

C語言和電路基礎(chǔ)有了以后,就開始整51單片機(jī),中間穿插一些外設(shè)。LED 按鍵 蜂鳴器 電機(jī)等等,再去整整通信協(xié)議UART IIC SPI,再用這些協(xié)議去玩一些模塊,比如MPU6050,OLED,HC05藍(lán)牙等等。

階段三:STM32單片機(jī)進(jìn)階

如果是自動(dòng)化科班的

建議調(diào)調(diào)PID控制電機(jī)什么的。

到攝像頭等復(fù)雜傳感器,升級(jí)到STM32這類32位單片機(jī)以后,再進(jìn)行深入學(xué)習(xí)。

學(xué)習(xí)更復(fù)雜的信號(hào)處理方法,比如LKF,EKF,再加一點(diǎn)基礎(chǔ)的圖像處理方法。同時(shí)把CubeMX這樣的代碼生成器也盡量用熟,提高開發(fā)效率。

再到后面,開始上一些實(shí)時(shí)操作系統(tǒng),比如RTOS RT Thread ucos啥的,把整個(gè)開發(fā)的層次再次提高。

階段四:SOC+linux

嵌入式遠(yuǎn)未結(jié)束,以linux為平臺(tái)入門SOC開發(fā)。

小結(jié)

如果以后做自動(dòng)化科班方向,計(jì)劃就是嵌入式SOC聯(lián)動(dòng)圖像處理,機(jī)器學(xué)習(xí)這些東西,再底層聯(lián)動(dòng)單片機(jī),驅(qū)動(dòng)電機(jī)。完成完整的工控機(jī),機(jī)床,機(jī)器人等設(shè)備的開發(fā)工作。如果是這樣,個(gè)人目前覺得*好的入門坑是OpenCV,然后再深入,方為上策。

如果以后做軟件方向,聯(lián)動(dòng)安卓框架,安卓HAL。借助JAVA C++這類面向?qū)ο笳Z言,做安卓音視頻的開發(fā)和處理,要么搞視頻監(jiān)控,要么搞藍(lán)牙耳機(jī)什么的。

免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識(shí)產(chǎn)權(quán)侵權(quán)的法律責(zé)任!

本文由 綜合教育資訊 整理發(fā)布。更多培訓(xùn)課程,學(xué)習(xí)資訊,課程優(yōu)惠,課程開班,學(xué)校地址等學(xué)校信息,可以留下你的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢電話:400-850-8622

如果本頁不是您要找的課程,您也可以百度查找一下: