我是老溫,一名熱愛(ài)學(xué)習(xí)的嵌入式工程師
最近,一名網(wǎng)友給我留言說(shuō),他攤牌了,后悔當(dāng)初入行搞嵌入式技術(shù)開發(fā),于是想我淺談一下,為何不該入行嵌入式技術(shù)開發(fā)。
這幾年,嵌入式技術(shù)領(lǐng)域被外界的培訓(xùn)機(jī)構(gòu)(甚至被某些同行)過(guò)度地解讀,對(duì)外宣傳嵌入式技術(shù)不用加班,沒(méi)有35歲危機(jī),是行業(yè)新風(fēng)口,等等,導(dǎo)致很多剛剛畢業(yè)的初學(xué)者,對(duì)這個(gè)技術(shù)領(lǐng)域的“誤解”越來(lái)越深。
行業(yè)內(nèi)的老司機(jī)都知道,嵌入式技術(shù)是一個(gè)涉及面非常廣的軟硬件綜合性技術(shù)領(lǐng)域,它在通信,消費(fèi)電子,工業(yè)控制,醫(yī)療設(shè)備等行業(yè)有著舉足輕重的地位。
為什么不該入行嵌入式技術(shù)開發(fā)?
首先,嵌入式技術(shù)的學(xué)習(xí)路線是相對(duì)比較陡峭曲折的,這個(gè)技術(shù)領(lǐng)域不僅要求開發(fā)者有扎實(shí)的 C 語(yǔ)言編程基礎(chǔ),還要求對(duì)硬件設(shè)計(jì)有基本的了解,比如數(shù)字電路設(shè)計(jì),微處理器架構(gòu),等等。
嵌入式系統(tǒng)通常運(yùn)行在資源極為受限的硬件芯片里面,它要求開發(fā)者具備代碼優(yōu)化和處理軟硬件中斷的能力,這些基本技能的培養(yǎng),可能需要耗費(fèi)大量的時(shí)間和實(shí)踐精力,這對(duì)毫無(wú)基礎(chǔ)的初學(xué)者來(lái)說(shuō),是不小的挑戰(zhàn)。
(如果那些賣課的“老師”說(shuō),學(xué)嵌入式只需要懂 C 語(yǔ)言編程,不用學(xué)硬件,這類人不是無(wú)知就是壞?。?/p>
其次,嵌入式產(chǎn)品在開發(fā)過(guò)程中需要涉及到軟硬件調(diào)試工作,代碼都是三分編寫七分調(diào)試,在大多數(shù)情況下,需要在產(chǎn)品的實(shí)際使用現(xiàn)場(chǎng)帶電調(diào)試硬件設(shè)備,這跟純軟件的一臺(tái)電腦和一臺(tái)手機(jī)搞定所有開發(fā)工作,有很大的區(qū)別。
有些工業(yè)設(shè)備現(xiàn)場(chǎng)或者測(cè)試實(shí)驗(yàn)室的環(huán)境,比想象中的還要惡劣,并且嵌入式工程師要在項(xiàng)目進(jìn)度緊張的情況下,排查產(chǎn)品問(wèn)題到底是軟件導(dǎo)致還是硬件導(dǎo)致的,也就是要求工程師具備非常扎實(shí)的軟硬件聯(lián)調(diào)能力。
(嵌入式軟件工程師懷疑硬件有問(wèn)題,要提出實(shí)質(zhì)性證據(jù),并且定位出硬件問(wèn)題所在,不能單憑一句話就說(shuō)硬件有問(wèn)題)
有時(shí)為了驗(yàn)證某些猜想,還需要用烙鐵對(duì)硬件電路進(jìn)行適當(dāng)改造,這就要求嵌入式軟件工程師具備一定的電路焊接能力,有時(shí)候還要去生產(chǎn)線協(xié)助處理產(chǎn)品量產(chǎn)問(wèn)題。
扎實(shí)的軟硬件聯(lián)調(diào)能力需要大量的工程實(shí)踐,并且毫無(wú)捷徑可言!在這種能力養(yǎng)成之前,開發(fā)過(guò)程中遇到的各種問(wèn)題,極易對(duì)初學(xué)者造成一種挫敗感!
時(shí)至今日,嵌入式技術(shù)的發(fā)展非常迅速,這不僅體現(xiàn)在芯片技術(shù)架構(gòu)的優(yōu)化,還涉及到芯片所配套的 SDK 也在快速迭代,這就要求工程師有非常強(qiáng)的學(xué)習(xí)能力。
這種強(qiáng)大的學(xué)習(xí)能力不僅要表現(xiàn)在技術(shù)層面,還要表現(xiàn)在實(shí)際的應(yīng)用業(yè)務(wù)上面,要精確地評(píng)估某項(xiàng)業(yè)務(wù)需求的合理性,以及給出合適的嵌入式軟硬件解決方案。
如果不能對(duì)業(yè)務(wù)需求進(jìn)行準(zhǔn)確合理的技術(shù)性評(píng)估,等到開發(fā)后期才發(fā)現(xiàn)這里不足那里不夠,不僅會(huì)導(dǎo)致大量的人力物力被白白浪費(fèi)掉,還會(huì)導(dǎo)致整體的項(xiàng)目延期,無(wú)法跟客戶進(jìn)行交代。
最后,到底該不該入行嵌入式,主要還是取決于初學(xué)者個(gè)人對(duì)這個(gè)技術(shù)領(lǐng)域的期待值有多高,如果只是從別人的口中得知這個(gè)領(lǐng)域,并且認(rèn)為它是錢多事少不加班,這種入行動(dòng)機(jī),大概率很難讓初學(xué)者堅(jiān)持學(xué)習(xí)下去。
如果初學(xué)者自身的學(xué)習(xí)精力不足,受挫能力不高,學(xué)習(xí)能力不強(qiáng),入行動(dòng)機(jī)不純,確實(shí)不太適合進(jìn)入嵌入式技術(shù)開發(fā)領(lǐng)域,而如果初學(xué)者是基于個(gè)人興趣和長(zhǎng)遠(yuǎn)的職業(yè)目標(biāo),嵌入式技術(shù)確實(shí)是一個(gè)不錯(cuò)的方向。
圍城內(nèi)外,冷暖自知!