在
智能硬件開發小編了解的便是未來以及現在這個行業對軟件工程師的要求絕對碾壓硬件工程師。說白了便是招軟件工程師的職位比硬件工程師的職位要多很多,另外軟件工程師找工作上而言會比硬件工程師容易!
先從企業的角度來講講。我個人認為造成這個差異的原因,第一個是基本上所有的公司,從初創公司到全球百強,都有對軟件工程師的需求。現在哪個公司不需要幾個碼農來開發app,或者做個web。但是做硬件這種工作并不是所有公司會去做的。舉個簡單的例子,摩根大通銀行在我們學校的招聘會上明確招軟件工程師,expedia也明確招聘軟件工程師,如果這個兩個公司突然說要招電子工程師,這不是逗我嗎。。而且哪怕是硬件公司,也需要大量的軟件工程師來支持硬件前端工作。
第二點我覺得要歸功于現在的創業潮。不管在美國在中國互聯網創業都是趨勢,但是可以說絕大部分的初創互聯網公司做的都是軟件方向。有個點子,有點技術,找幾個合伙人抱著電腦就能開干了。但是初創公司要專注做硬件開發就比較難了,因為成立設計硬件公司的門檻和起步開銷比較大。所以這也導致大部分初創公司以互聯網為主,能做的了硬件設計的公司基本上都是處于壟斷地位的大企業。
第三個很重要的原因就是硬件設計在現在來看已經是相對成熟的技術,我甚至有ee的同學跟我說大部分硬件的東西已經步入夕陽產業的范疇,因為很多東西已經成了規范,也因為很多東西被自動化所取代。前一陣子全球大牌的硬件公司才裁了不少人,intel更是裁掉了接近20%的硬件工程師。但是互聯網熱從90年代開始到現在熱頭還沒過,而且未來諸多產業如人工智能、機器學習、圖像識別、大數據都才剛起步,所以還有一定的上升空間。
還記得當初我們學校的初創公司招聘會上幾十家公司只有一家招硬件工程師,而且還是偏軟件的硬件工程師,剩下的公司里98%都在找會碼代碼的人;大企業的招聘會上才能見到nvidia、ARM、 intel、 ti 的身影,但是哪怕是這樣,基本上所有的公司招牌上都會有大寫加粗的招computer science的字樣。。
再從個人的角度來講。想成為一名軟件工程師找到工作的門檻遠比成為一名合格的硬件工程師低很多。要想以軟件工程師的身份混到個飯碗,學兩門語言學好,常用的數據結構,刷點題就基本上能找到薪水小幾千的崗位。我甚至知道國內有專門的軟件工程師培訓機構,那種專門教java和算法,兩個月速成班,而且所聲稱的學生就業率還挺高的。
但是要想成為一名合格的硬件工程師,不是科班出身的不好好學幾門模電數電信號邏輯設計的課,沒有在學校實驗室里自己焊點電路做實踐,連簡歷都發不出去。而且現在要想學個什么語言框架,網上搜一搜“”xxx語言入門教程“”就有非常豐富的資源,但是要是在網上搜“如何學好超大規模集成電路設計”,要想找到可以受用的資源幾乎是不可能的。而且就我所參加的招聘會來說,如果有招硬件工程師基本都要求有研究生的學位,但是對軟件工程師的要求基本上就是熟悉算法數據結構,會web編程有相關經歷就夠了。
軟件工程師很多時候吃的是體力,硬件工程師大部分時候是吃經驗,所以硬件工程師一般得有一定的經歷積淀才能脫穎而出。尤其像模電這種上手程度很高的方向,沒個十年八年的相關經驗根本不算學成出師。所以說本身對從業者的資質要求更高,也是硬件工程師不好找工作的原因之一。
上面是我所認為的短時間內軟件工程師就找工作方面來說會比硬件工程師更容易的原因。但是這并不意味著會編程就肯定找得到工作,也不意味著硬件產業就會低迷下去。軟件工程師的職位多,但是每年從事這個職業的人也更多,雖然我認為現在軟件工程師短期內還沒有出現飽和的趨勢(畢竟那么高的工資還擺在那),但是總有一天這個行業也會像金融產業一樣降溫(人才供過于求)。
硬件產業雖然大部分已經有步入夕陽產業的趨勢,但是曾經一度被宣稱沒啥好搞的供電網絡最近也被smart grid搞得神乎其神,美國top5的高校都還設立了相關實驗室。此外,現在物聯網,車聯網,智能家居的概念被炒得火熱,我相信等相關成熟的支持技術(能量采集,低功耗通信)以及統一的開發平臺一旦出現,硬件工程師的需求只會更多,雖然這些產品依舊只有那些有背景的大公司才做得動(不過因為歐美國家電子產業上的封鎖,國家也在硬件設計上砸了很多銀子,初創企業也會慢慢增加,相信國內的相關機遇也會更多)。而且畢竟軟件產業還是依靠硬件,如何設計低功耗,高穩定性,能夠承載大吞吐量計算量的硬件也是這個產業的挑戰,畢竟人工智能,機器學習,視覺處理等領域是很吃硬件計算量的。沒有強大的硬件支持,阿狗要想打敗李世乭還是癡心妄想吧。
本人現在在一家為硬件的公司設計軟件的百強軟件公司實習,做的工作大部分還是偏軟件,所以本身對工作常態也并沒有非常深入的自己的感受。但是就我觀察身邊的同事以及跟別人的交流來看,不管是做軟件硬件,都是要:對。著。電。腦。。。
軟件工程師平時就是上班啊調試程序,比較低級的碼農只能給高級軟件工程師打打下手,幫他們做測試,實現他們設計好的東西。當然做到高級工程師了才有能力開發設計自己公司的產品。
如果在初創公司工作節奏更緊張,如果趕上產品要上線可能需要加班調試。遇到程序爆炸了可能還需要on call(就是你負責的東西突然出問題了,你的manager直接打個電話給你,你得馬上去公司修bug),至少我知道amazon是有這個機制。 我現在還沒有在純做硬件的公司實習過,但是從我知道的事實來看,硬件工程師不會比軟件工程師輕松。硬件工程師也需要調試電路啊調試腳本啊,反正也有跟軟件工程師交叉的工作。工作環境取決于細分的工作類別。開發FPGA的估計跟碼農一樣坐辦公室,搞MEMS的、嵌入式的就長期入駐實驗室了。因為大部分硬件公司都是相對成熟的大企業,所以工作節奏普遍不會像在初創公司那么緊張,不過像在華為這樣的企業就另說了。。。
當然不管是軟件工程師還是硬件工程師,工作強度應該都是高于其他industry的職業的。畢竟這個行業競爭會越來越激烈,這也是聰明人聚集的地方。 至于工資的話,就平均來講,美國這里的軟件工程師年薪會略高于硬件工程師(從glassdoor以及其他門戶的數據來看),但是軟件工程師一樣也有收入低的,硬件工程師的收入也有碾壓軟件工程師的。只要你技術過硬,薪水都不是事兒。
有人說軟件工程師前景更開闊一些,我個人的感覺是不管怎樣,這兩個行業在未來都會有非常非常多的機遇與挑戰(詳細原因見第一點)。不管是軟件設計還是硬件設計,底下都有更多細小的分支(比如說你硬件設計是想做vlsi,dsp,處理器設計,通信,fpga開發還是嵌入式,軟件設計你想做web開發,app開發,軟件開發,嵌入式軟件工程師,操作系統還是distributed system)。 我個人是對兩個大方向都很有興趣,但是我決定自己最終的方向還是嵌入式設計和處理器設計,這兩個行業都應該算是夾在了純硬件設計和純軟件設計的中間。
尤其是產業對嵌入式工程師的要求更高,能夠自己設計mixed signal PCB,自己調試應用代碼寫kernel code,能調試無線通信,基本意味著一個合格的嵌入式工程師要對硬件和軟件相關方面有足夠的知識。我自己是比較討厭做web開發app純開發軟件的工作,因為這些工作的門檻太低,不是科班出身的人可能都能混的比你好得多,體現不出來自己的價值。而且我比較喜歡把電路板和各種元件握在手里的感覺,而且我發現自己能夠設計一個可以用的硬件的時候那種成就感會高于debug之后的成就感。當你發現自己在經受了大學的磨練真正擁有了學習知識的能力以后,豐富的網上資源以及自身的積累都會讓你學習這些網頁app知識非常輕松,所以我個人更喜歡硬件底層,以及和硬件底層打交道的軟件領域。
軟件硬件的課程都不會簡單,而且兩個學科的工作量不是其他學科能比的(學工科的天天做project呆lab,學統計的上完課就回家看電影。。)所以要想學好,還是需要花一定精力,尤其美國的大學工科院系workload相對國內高校來說有增無減。確定這是你想要的,再給予考慮。
本文由安徽海鴻計算機技術有限公司原創,轉載時請注名
嵌入式開發網址:
http://www.sxytw.cn/