一名一線企業(yè)嵌入式 軟件工程師的筆者,想通過自己的實(shí)際經(jīng)歷理性地評(píng)論當(dāng)今嵌入式行業(yè)的真實(shí)狀況。
目前國(guó)內(nèi)一個(gè)普遍被認(rèn)同的定義是:以應(yīng)用為中心、以計(jì)算機(jī) 技術(shù)為基礎(chǔ),軟件硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。
說白了就是先設(shè)計(jì)硬件,然后根據(jù)需求編寫能在該硬件上運(yùn)行的軟件,就成了所謂的“智能硬件”。
或者說得還不夠明白,那行,我們說一說具體的嵌入式產(chǎn)品有哪些,嵌入式是做什么的:
傳統(tǒng)嵌入式產(chǎn)品:空調(diào)主控模塊、冰箱主控模塊、家用遙控器、智能手機(jī) 、教學(xué)投影儀、音響系統(tǒng)、雷達(dá)系統(tǒng)、路由器等等;
前沿嵌入式產(chǎn)品:無人機(jī)、智能音響、機(jī)器人控制、城市天眼系統(tǒng)、智能家具、自動(dòng)駕駛汽車、掃地機(jī)器人、手環(huán)等等;
一起看一些前沿的嵌入式產(chǎn)品!下面是大疆無人機(jī),可應(yīng)用在高空拍攝、軍事偵查、高空作業(yè)、自動(dòng)巡邏、農(nóng)業(yè)工作、礦業(yè)勘測(cè)、地形測(cè)繪等方面。
下面是自動(dòng)駕駛汽車,自動(dòng)駕駛是一個(gè)前沿的科技,在我國(guó)還沒本真正實(shí)施,不僅是技術(shù)方面,它還得得到政府支持和認(rèn)同。
看完這些前沿科技產(chǎn)品后可發(fā)現(xiàn),這些形形色色的“高端產(chǎn)品”都離不開嵌入式技術(shù),離不開傳感器 技術(shù),離不開軟件程序。
那么我現(xiàn)在可以告訴你,嵌入式開發(fā)的工作就是去開發(fā)以上等一系列產(chǎn)品,這就是嵌入式,相信此刻你對(duì)嵌入式行業(yè)已有“形而上學(xué)”的了解。
嵌入式工程師在企業(yè)工作的真實(shí)內(nèi)容嵌入式軟件開發(fā)具體可以分三類:
嵌入式驅(qū)動(dòng)工程師:編寫和移植各種芯片 驅(qū)動(dòng)(如音頻 芯片),優(yōu)化硬件設(shè)備驅(qū)動(dòng)(如溫濕度傳感器 ),得精通各種硬件接口 協(xié)議(如I2C協(xié)議)、系統(tǒng)調(diào)度、信號(hào)量、鎖機(jī)制等等,開發(fā)難度最大。該類開發(fā)者一般是軟硬件綜合型人才,一般的嵌入式驅(qū)動(dòng)工程師指Linux上的驅(qū)動(dòng)開發(fā)工程師,需要精通Linux驅(qū)動(dòng)框架(platform框架、input子系統(tǒng)框架等),結(jié)合芯片本身去編寫驅(qū)動(dòng),驅(qū)動(dòng)的好壞很大程度上決定一個(gè)產(chǎn)品的好壞。業(yè)界對(duì)驅(qū)動(dòng)人才的定義是三年才算入門,可見此門檻之高。
嵌入式系統(tǒng)工程師:主要是編寫固件,根據(jù)不同平臺(tái)移植操作系統(tǒng),根據(jù)應(yīng)用場(chǎng)景來優(yōu)化系統(tǒng),需要熟悉整個(gè)操作系統(tǒng)組成與調(diào)度,對(duì)固件的穩(wěn)定性高求很高,如果系統(tǒng)不穩(wěn)定,驅(qū)動(dòng)和應(yīng)用也是白做的。
嵌入式應(yīng)用工程師:編寫業(yè)務(wù)邏輯程序,調(diào)用驅(qū)動(dòng)工程師提供的接口控制設(shè)備,軟件開發(fā)過程所涉內(nèi)容范圍非常廣,主要使用C語言開發(fā),但經(jīng)常會(huì)涉及C++、Java、python、Java、PHP等各類語言以及各種腳本語言、數(shù)據(jù)庫(kù)、前端后臺(tái)、各種通訊協(xié)議、甚至一些從來沒聽過的協(xié)議或概念。這需要很強(qiáng)的學(xué)習(xí)能力,該職位也是各大公司需量最大的,一般10人的開發(fā)小組,驅(qū)動(dòng)開發(fā)與系統(tǒng)開發(fā)與應(yīng)用開發(fā)的比例是1:2:7。
根據(jù)我的經(jīng)驗(yàn),世界上可以分成兩種嵌入式工程師,一種是大公司的嵌入式工程師,另一種是小公司的嵌入式工程師,我知道這樣分類很不妥,但并非毫無道理,請(qǐng)聽我一一下概述:
大公司:大公司的特色是什么?答案:人多!人多導(dǎo)致的后果是什么?答案:項(xiàng)目分工非常細(xì),都遵循“術(shù)業(yè)有專攻”這一哲學(xué)道理。
例如職位是嵌入式驅(qū)動(dòng)開發(fā),那么大公司可能還會(huì)細(xì)分嵌入式顯示屏驅(qū)動(dòng)工程師、嵌入式音頻驅(qū)動(dòng)工程師、嵌入式電源 驅(qū)動(dòng)工程師等。在大公司記住一點(diǎn),你做的東西都是很“精”的;
同時(shí),大公司的薪資水平和福利也是相當(dāng)可觀的,有完善的晉升路線,離職率一般不高。小公司:小公司的特色是什么?答案:人少!人少導(dǎo)致的后果是什么?答案:項(xiàng)目分工不明確,什么都得干,它給你灌溉的思想是“小陳,我們培養(yǎng)的是綜合性人才,在這里你就是全棧工程師”。
估計(jì)很多人都沒聽明白,意思是說這里人少活多,你什么都得干。小公司才不會(huì)管你是嵌入式驅(qū)動(dòng)工程師還是嵌入式應(yīng)用工程師(有的公司還是區(qū)分的,的確不能以偏蓋全)。
小公司還有一個(gè)特色就是:“節(jié)奏快”,大公司里面可能開展一個(gè)項(xiàng)目會(huì)花上幾個(gè)月的時(shí)間或者更長(zhǎng),在小公司是不存在的,領(lǐng)導(dǎo)都是指望著你幾天或者兩三周完成。的確,在小公司你可以得到飛速的進(jìn)步,很強(qiáng)的綜合性技能,前提是比人家花出更多的時(shí)間,把每一個(gè)項(xiàng)目理解清楚,而不是應(yīng)付心態(tài)。堅(jiān)持下來,兩年后必能獨(dú)當(dāng)一面。
小公司提供給應(yīng)屆生的薪資水平相對(duì)與到大公司來說要低,其福利不完善和晉升路線也一般比較模糊,所以小公司的離職率會(huì)比較高,經(jīng)常出現(xiàn)兩年三跳的情況。
還有一個(gè)經(jīng)驗(yàn)分享給年輕人:無論哪種語言,程序代碼只是一個(gè)簡(jiǎn)單的工具,最后真正留下的只有原理、協(xié)議、框架、思維。
嵌入式發(fā)展前景與當(dāng)今狀況目前的嵌入式開發(fā)更傾向于智能化,也就是我們所說的智能硬件(硬件+軟件),從現(xiàn)在各種前沿的嵌入式產(chǎn)品來看的確如此,嵌入式產(chǎn)品的一個(gè)發(fā)展趨勢(shì)是更傾向與自動(dòng)化控制和人機(jī)交互,而不是強(qiáng)調(diào)“算法”這一塊。
要區(qū)分你僅僅是一名嵌入式工程師而不是算法工程師,什么一大堆“人工智能 ”、“阿爾法狗”、“深度學(xué)習(xí)”、“神經(jīng)網(wǎng)絡(luò)”都不需要深入理解,那是研究生、博士生做的。
筆者并不是說你的能力不足,而是“術(shù)業(yè)有專攻”,這并不是一名嵌入式工程師的工作量,你需要做的僅僅是與他們的“云端大腦”進(jìn)行對(duì)接,調(diào)用他們API就完事了。
由于人工智能、深度學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)、區(qū)塊鏈、大數(shù)據(jù)等先進(jìn)學(xué)科的崛起,很多人都產(chǎn)生質(zhì)疑:“嵌入式還有發(fā)展前景嗎”?
這個(gè)問題我在這里可以很肯定地告訴你:“嵌入式有很好的發(fā)展前景,前沿嵌入式技術(shù)即將崛起,或者說已經(jīng)崛起”。
的確,人工智能、大數(shù)據(jù)這些學(xué)科會(huì)給嵌入式帶來沖擊,就目前來看,大學(xué)生更傾向與python編程語言、機(jī)器學(xué)習(xí)這一塊,而嵌入式學(xué)者的確比往年有所下降。但學(xué)者少了并不代表他的需求就少了,并不代表他的薪資水平下降了,目前的一個(gè)嵌入式技術(shù)更傾向于與智能學(xué)科相結(jié)合的趨勢(shì)。
以百度機(jī)器人為例,機(jī)器人的核心是大腦,即是“數(shù)據(jù)和算法”,但機(jī)器人大腦想機(jī)器人身軀能夠像人類一樣活動(dòng),能說會(huì)道,行走自如,那么就必須得依靠嵌入式技術(shù)。
這就是我所說的嵌入式+智能學(xué)科應(yīng)用,從長(zhǎng)久來看,嵌入式只會(huì)越來越火,智能學(xué)科的崛起必定帶動(dòng)新型的嵌入式技術(shù)發(fā)展。
嵌入式工程師應(yīng)具備哪些能力據(jù)調(diào)查顯示,現(xiàn)在有越來越多工程師的工作同時(shí)牽涉硬件與軟件技術(shù),需要軟硬件技術(shù)能力兼?zhèn)洹M瑫r(shí)嵌入式技術(shù)日進(jìn)千里,工程師要如何確保自己學(xué)習(xí)到的新技術(shù)是最關(guān)鍵的?
1.學(xué)習(xí)利用搜索引擎
不要閉門造車,要善用開放源碼世界的信息,很多常見的設(shè)計(jì)問題其實(shí)透過因特網(wǎng)就能找到同領(lǐng)域菁英貢獻(xiàn)的程序代碼;嵌入式工程師們要走出自己的小世界擁抱社群,與同領(lǐng)域的其他工程師們相互交流、互相幫助,而這也是開放源碼世界的精神。
2.離開舒適圈!
不斷更新并提升原本擅長(zhǎng)的技術(shù)雖然很重要,但嵌入式工程師若能擴(kuò)展自己的知識(shí)領(lǐng)域會(huì)更有益。走出舒適圈,挑戰(zhàn)自我、去學(xué)習(xí)原本不熟悉的東西,包括工程以外的知識(shí),例如與客戶、同事之間的互動(dòng),將會(huì)收獲良多。
3.熟悉實(shí)時(shí)操作系統(tǒng)(RTOS)
目前產(chǎn)業(yè)界對(duì)于熟悉RTOS的工程師需求很高,也愿意提供更高的薪資水平;因此他鼓勵(lì)沒有接觸過RTOS的嵌入式工程師從一些較小型的系統(tǒng)著手,累積相關(guān)技術(shù)經(jīng)驗(yàn)。
4.培養(yǎng)多元化技能與系統(tǒng)觀
原本從事較小型系統(tǒng)架構(gòu)(例如MCU)開發(fā)的工程師,可以開始去熟悉更大的系統(tǒng)(例如Linux驅(qū)動(dòng)程序),反之亦然。嘗試著去開發(fā)手機(jī)應(yīng)用程序、或者是學(xué)習(xí)后端服務(wù)器的相關(guān)技術(shù),能開啟完全不同的觀點(diǎn);建議工程師去熟悉開放性硬件,現(xiàn)在市面上有不少現(xiàn)成的開發(fā)板 ,能讓工程師專注于學(xué)習(xí)獨(dú)特算法的開發(fā)。
5.要能熟悉開放源碼軟件
客戶往往會(huì)要求在系統(tǒng)中整合一大堆軟件,因此所有的嵌入式工程師需要熟悉各種軟件;工程師應(yīng)避免只專長(zhǎng)單一領(lǐng)域,因?yàn)槟强赡軙?huì)阻礙你的成長(zhǎng)。對(duì)嵌入式工程師來說,確保自己對(duì)軟硬件技術(shù)都很了解,是非常寶貴的價(jià)值。
6.建立系統(tǒng)級(jí)的工程思維
嵌入式工程師擁有系統(tǒng)導(dǎo)向的思維是很重要的,有不少開發(fā)案遇到問題,就是因?yàn)闆]有在開發(fā)初期充分考慮基準(zhǔn)、驗(yàn)證策略以及兼容性驗(yàn)證計(jì)劃等項(xiàng)目;
此外每個(gè)嵌入式工程師都應(yīng)該具備優(yōu)良的項(xiàng)目管理技巧,力求準(zhǔn)時(shí)完成負(fù)責(zé)的項(xiàng)目。具備能明智因應(yīng)技術(shù)與項(xiàng)目風(fēng)險(xiǎn)的能力,對(duì)職業(yè)生涯發(fā)展會(huì)很有幫助。
7.要能明確表達(dá)自己的想法與意見透過文字或繪圖
往往有些菜鳥工程師無法清晰表達(dá)自己的想法,因?yàn)樽ゲ坏街攸c(diǎn),而最好的解決方法是練習(xí)將之圖形化,例如畫出流程圖。這聽起來好像有點(diǎn)過時(shí),但有時(shí)利用各種圖框組合來整理自己的思緒、表達(dá)想法會(huì)是很有用的,例如iPad的iThoughts應(yīng)用程序。
原文標(biāo)題:嵌入式工程師的真實(shí)現(xiàn)狀,有人月薪8千,有人年薪快40萬!
文章出處:【微信號(hào):elecfans,微信公眾號(hào):電子發(fā)燒友網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
硬件工程師薪資天花板在哪?3 條進(jìn)階路線
嵌入式人工智能課程(華清遠(yuǎn)見)
如何成為一名高薪嵌入式工程師?
什么是BSP工程師
系統(tǒng)嵌入式的學(xué)習(xí)路線
ARM嵌入式這樣學(xué)
嵌入式就業(yè)形勢(shì)好不好?
為什么嵌入式驅(qū)動(dòng)開發(fā)工程師可以拿高薪
嵌入式工程師的真實(shí)現(xiàn)狀,有人月薪8千,有人年薪快40萬!
評(píng)論