當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 入門指導(dǎo) > 嵌入式開發(fā)是大坑?業(yè)內(nèi)知名人士客觀分析
開門見山的說, 在國內(nèi)略微有點(diǎn),但大坑倒談不上。也并非大家了解的信息對稱不對成。嵌入式(embedded sysytem)的平均收入是略低互聯(lián)網(wǎng)行業(yè)。在歐洲,兩者差不多,senior level的嵌入式會高一點(diǎn),也更難招一些。可見國內(nèi)的發(fā)展還不及歐美。
工資水平從來不取決于你工作的內(nèi)容難不難掌握,而是就業(yè)市場的產(chǎn)業(yè)結(jié)構(gòu)和供需關(guān)系。嵌入式工程師和普通的軟件工程師比起來,主要的不同是硬件的資源。嵌入式的程序里幾乎沒有什么復(fù)雜的算法和數(shù)據(jù)結(jié)構(gòu),尤其是類似Recursion和需要長時間計(jì)算基于iterator的算法。嵌入式主要完成的任務(wù)是兩大塊,一個是M2M(machine to machine)的通訊和real-time control。
由于硬件資源的限制嵌入式的程序和最終的商業(yè)產(chǎn)品是strongly depends on hardware。對于這樣的行業(yè),最終deliver的產(chǎn)品是具體的實(shí)物,這相對于互聯(lián)網(wǎng)行業(yè)而言,是重資產(chǎn)的。越是重資產(chǎn)的行業(yè),人力資源所分享的利潤比例就越低。所以從整體行業(yè)上看,嵌入式是要比互聯(lián)網(wǎng)行業(yè)的低的。
其次,工業(yè)控制和M2M是一個幾十年前就存在的成熟行業(yè)了,也是歐美非常看重的工業(yè)基礎(chǔ)。國內(nèi)這方面的起步比較晚,積累和產(chǎn)業(yè)資源都不夠。國內(nèi)的產(chǎn)品絕大部分都是2C的市場,很多產(chǎn)品是拿半導(dǎo)體廠商的stack來做application。用這樣封裝好stack,程序確實(shí)就是API的組合體,并不是嵌入式工程師應(yīng)該體現(xiàn)出的competence。國內(nèi)很少有廠家可以拿到大廠的source code,開發(fā)起來也是知其然而不知其所以然,嵌入式工程師成長也會比較慢。所以嵌入式比互聯(lián)網(wǎng)行業(yè)收入低,主要還是因?yàn)閲鴥?nèi)嵌入式相關(guān)產(chǎn)業(yè)處在下游,低附加值的階段,而互聯(lián)網(wǎng)行業(yè)正好相反。這是大環(huán)境,不是個人努力能夠解決的問題。再看看歐洲這邊,很多裝備制造領(lǐng)域的企業(yè)都需要嵌入式的工作,比如說消費(fèi)和工業(yè)電子的Philips, 半導(dǎo)體設(shè)備商ASML,機(jī)床里的Gildemeister,和所有的汽車類廠商 like BMW.這些領(lǐng)域的開發(fā)都是嵌入式里面的hardcore,從BootLoader, driver, OS到Application。這些廠商大多積累和發(fā)展了很多年,處于產(chǎn)業(yè)鏈上游,高附加值,相應(yīng)的嵌入式崗位收入也說得過去,工程師成長也比較快。
最后才是所謂的教育問題,在我看來,一個好的嵌入式工程師的min knowledge requirement至少要有:計(jì)算器體系結(jié)構(gòu),network,data structure, algorithm, OS, RTOS再加上編譯原理。這些課,都是需要長時間學(xué)習(xí)和實(shí)踐的科目,沒有一門是可以速成的,自學(xué)的成本比較高。這些知識絕大部分是計(jì)算器基礎(chǔ)課程,最好的教材還是要讀英文原版,很多工科生的英語水平是不足的。而國內(nèi)老師大多并不看重教學(xué),加上自己也沒有產(chǎn)業(yè)經(jīng)驗(yàn),不知道教什么,也不想教。而嵌入式需要很多硬件相關(guān)的知識,這個學(xué)習(xí)曲線確實(shí)比較陡,需要老師的指導(dǎo)和幫助。而互聯(lián)網(wǎng)行業(yè),因?yàn)榱己玫拈_源氛圍,自學(xué)的門檻比較低,好出成績,也比較容易成為一個合格的工程師。這一點(diǎn)是個人努力可以克服的,但是比起產(chǎn)業(yè)結(jié)構(gòu)而言,是居次要地位的。
再看看未來, 嵌入式面臨很多挑戰(zhàn)。最重要的一個變化就是硬件資源極大的豐富,很多產(chǎn)品都自帶RTOS,這侵蝕了很多原來嵌入式 engineer的工作,嵌入式也主要handle是Application Level的事情了,這不是嵌入式的價值所在。其次,很多工業(yè)領(lǐng)域?yàn)榱思铀匍_發(fā)進(jìn)度和質(zhì)量,DSL(domain-specific language)會越來越多的替代C和C++成為開發(fā)語言。這樣一來,嵌入式就真的成為了API的組合。而開發(fā)DSL的要求比較高,編譯原理和數(shù)學(xué)是一大門坎。綜上所述,嵌入式對于一個純粹的從業(yè)者而言確實(shí)不如互聯(lián)網(wǎng)行業(yè)。但是,如果想要run your own business,我覺得IoT才剛剛開始,是藍(lán)海市場,好于純粹的互聯(lián)網(wǎng)行業(yè)。
就算嵌入式是個大坑也會有人毫不猶豫的往下跳,就算互聯(lián)網(wǎng)待遇很高也有苦逼的人存在。如果單單是為了找一份工資比較高的工作的話互聯(lián)網(wǎng)確實(shí)要比嵌入式要高,這一點(diǎn)是肯定的,但是有一點(diǎn)需要注意,全國的互聯(lián)網(wǎng)公司也不算少,能實(shí)現(xiàn)真正盈利的公司有幾家?依靠優(yōu)秀的互聯(lián)網(wǎng)產(chǎn)品創(chuàng)造價值的公司有幾家?他們大部分不都是靠融資來維持的么?
嵌入式也好,互聯(lián)網(wǎng)也罷,每個領(lǐng)域都有各自優(yōu)秀的企業(yè),都能為這個社會創(chuàng)造價值,促進(jìn)社會發(fā)展。我們應(yīng)該考慮的是如何在一個領(lǐng)域做好,而不是在一個比較好的領(lǐng)域天天混日子。互聯(lián)網(wǎng)和嵌入式歸根結(jié)底就是兩種不同的技術(shù)罷了,并沒有什么好與不好,坑與不坑的區(qū)別。但是同時也不要讓技術(shù)束縛了我們的發(fā)展,每個人的成長都是循序漸進(jìn)不斷迭代的一個過程,不可能只憑借一項(xiàng)技術(shù)就能一輩子衣食無憂。不斷地自我發(fā)展與自我完善才是我們應(yīng)該做的。至于是不是坑應(yīng)該不是我們需要關(guān)心的問題,我們要做的應(yīng)該是想想到底要不要跳下去。
實(shí)際上,真正的嵌入式工程師,是比軟件工程師更接近上帝的存在,因?yàn)榍度胧焦こ處熌茉鞂?shí)體和承載其上的靈魂,越老越吃香。