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