一位項目經理帶著一名硬件工程師和一名軟件工程師一同坐車去參加研討會,結果汽車在半路拋錨,于是三人就“如何修理汽車”展開了激烈的討論。
硬件工程師說:“我可以用隨身攜帶的瑞士軍刀把車壞的部分拆下來,找出原因,排除故障。”
項目經理托著腮幫子邪魅一笑:“根據經營管理學,應該召開會議,根據問題現狀寫出需求報告,制訂計劃,編寫日程安排,逐步逼近,alpha測試,beta1測試和beta2測試解決問題。”
這時,軟件工程師不慌不忙地說出了一句讓硬件工程師和項目經理都噴飯的話:“咱們還是應該把車推回山頂再開下來,看看問題是否重復發生。..”
en.。.段子歸段子,但基于不同的職業習慣,我們大概可以從中看出硬件工程師、項目經理以及軟件工程師這三者在工作上分別扮演著什么樣的角色,也就是所謂的職能分工。
不過扎心的是,跟軟件工程師比起來,硬件工程師的前景似乎不怎么被人看好。
網上總是不乏“硬件不如軟件吃香”、“硬件干活多、待遇低、門檻高”、“十年硬件轉IT,真香!”。..等諸如此類的言論。由于硬件工程師做的事情多且雜,更是慘被戲稱為“高級雜工”。
事實真是如此?搞硬件就真的這么苦逼?沒有什么發展前景?看看資深硬件工程師怎么說!
先來了解一下:什么是硬件?
百度百科上是這么介紹硬件的:“硬件(英文名Hardware),是計算機硬件的簡稱(中國大陸及香港用語,臺灣作硬體),是指計算機系統中由電子,機械和光電元件等組成的各種物理裝置的總稱。這些物理裝置按系統結構的要求構成一個有機整體為計算機軟件運行提供物質基礎。”
也就是說硬件是物理層面的,至少是你能看得到摸得著的東西,它是一種物質載體,物質基礎。廣義來說人類都是生活在物質基礎之上,你可以把所有你能看到的東西都統稱為硬件。當然狹義來說,一般我們所說的軟件和硬件指的是電子領域的。
軟件代碼也是人編寫的,我們所熟知的語言比如C、C++等都是通過編譯器翻譯成匯編語言,然后匯編語言通過匯編器翻譯成二進制機器語言,機器語言操控門電路完成相應的動作。個人覺得,沒有硬件,軟件就沒有存在的意義,硬件是一切的基礎,這里可以看出硬件設計是多重要。
但軟件和硬件又有明顯的區分,至少工作內容區別很大。按照行業內描述硬件屬于底層(一般稱為底層硬件),軟件稱為上層(軟件又分為:底層驅動、上層業務以及應用層等)。
如果非要舉個例子來說明軟件和硬件,那最好的例子就是人,硬件指人的軀體,而軟件指人的思維。
當然,對于非電子領域的人來說,很難想明白計算機是怎么工作的,硬件是怎樣工作的,軟件是怎樣工作的,即使你知道都是0和1,但你沒做過相關工作,你發現不了其中的神奇之處。
其實你只要知道,軟件驅動硬件工作,驅動的激勵是什么?是電訊號!硬件接收到的這個電訊號分為0和1,硬件的響應速度非常快,多快呢?
舉個例子,硬件中常用的串口波特率115200bit per second,一秒鐘115200個0或者1,英語字母是8個bit(可在ASCII表看到,這在大學都學過),那就是一秒鐘可打印14400個字母。
你眨下眼睛一萬多個字母就出來了。當然實際上并沒有這么多,這只是個形象的例子。
但在電路設計上100kHz屬于比較慢的速率了。再比如顯示器一幅圖的刷新頻率在一秒鐘24個以上,我們人眼就看不出來。24幀的數據是非常大的,比如1080p30格式輸出,總的數據量是一秒鐘1920*1080*12*30= 746496000個0或者1,也就是7億個0或者1。
一般來說硬件設計指的是電路設計,這樣說是沒問題的,因為你所有的工作都是圍繞電路設計,最終的目標也是產出一個優秀的電路,能夠滿足各種要求,經歷各種考驗。但實際上我們要求的是產品,而不是單板。
硬件工程師干什么?
硬件工程師(Hardware Engineer)主要負責整個產品的硬件設計。
一個優秀的硬件工程師,不僅需要從外界交流獲取對自己設計的需求,然后匯總,分析成具體的硬件實現。還要跟眾多的芯片和方案供應商聯系,從中挑選出合適的方案。當原理圖完成后,則需要組織人員進行配合評審和檢查,還要和CAD工程師一起工作來完成的設計。
與此同時,要準備好BOM清單,開始采購和準備物料,聯系加工廠家完成貼裝工序。
除了基本理論知識過硬,熟練掌握硬件原理圖設計技術、硬件PCB圖設計、硬件調試之外,還要必備快速學習能力、通信協議和標準的理解、電路設計的能力、溝通和全局控制的能力,物料選型能力、采購能力等等,甚至上到工科理論經濟形勢,下到歷史政治文化科技,都要懂一點。
通過下面一張硬件產品研發團隊的構成圖,大概就能明白硬件工程師在整個研發團隊中扮演著多么重要的角色了:
需要說明的是,在整個項目研發團隊中,有兩個人和所有人打交道,一個就是項目經理,另一個就是硬件工程師。硬件工程師需要和各種研發人員打交道 、協調工作,這也就要求硬件工程師具有豐富的知識面和強大的協調能力,所以硬件工程師在整個研發團隊中做主導作用。
作為一個硬件工程師,需要負責整個產品的研發過程。所以必須對每個時間段進行精確把握。項目都會有項目周期,雖然項目經理在把控時間,但具體的操作還是硬件工程師來搞。對于正常進度的項目來說:
原理圖和詳細設計方案:5周,包括參考設計以及原理圖評審。
PCB布板布線:4周,包括配合結構、PCB進行電路調整或者器件重新選型。
發板及等待回板:2周,這兩周是最閑的,發板同時必須完成BOM上傳,這個不能忘。多看自己的圖!
回板檢查:1周,將自己的板子跑起來,能燒錄uboot,網口能ping通。檢查有無焊接問題。聯系結構進行機器組裝,查看結構有沒有問題。
驅動調試:5周,配合完成所有底層功能的調試。
媒體版本:2周,這個是驅動調試之后第一個整機跑起來的版本,準備拿給測試進行測試。
信號測試:3周,配合信號測試人員完成信號測試。同時給做業務研發人員準備板子給他們研發。
功能測試:2周,配合功能測試人員完成環境測試,防護靜電浪涌測試,以及其他功能測試,EMC測試等。
解BUG等待:2周,解決上述出現的所有BUG!
改板與發板:2周。
。..。..。. 當然,具體時間會隨著產品的復雜程度而變化,上面只做參考,不能一概而論。
關于硬件設計的描述,網上還有一種比較形象的說法:“硬件設計就是根據產品經理的需求PRS(Product Requirement Specification),在COGS(Cost of Goods Sale)的要求下,利用目前業界成熟的芯片方案或者技術,在規定時間內完成符合以下要求的硬件產品(注意:是產品不是開發板)。”具體要求如下:
● PRS功能(Function)
● 電源設計(power Supply)
● 功耗(power Consumption)
● 散熱(Thermal/Cooling)
● 噪音(Noise)
● 信號完整性(Signal Integrity),
● 電磁輻射(EMC/EMI)
● 安規(Safet)
● 器件采購(Component Sourcing)
● 可靠性(Reliability)
● 可測試性(DFT: design for test)
● 可生產性(DFM:design for manufacture)
可以看到,一個成功的硬件設計,主要功能的實現只是所有環節中的一小部分。剛開始工作的時候,覺得板子電路設計完就完成了50%工作,PCB回板主要功能都能實現了,那就完成了80%的工作。實際上不是的,PCB回板主要功能都實現了,連30%工作都沒有。所以不管是時間上,還是階段上,產品的硬件設計時一個漫長過程。
而且你在一個公司做產品硬件設計,一般情況下都是參考成熟的方案,主芯片CPU主要功能的實現最終還是依靠芯片廠商提供的套片方案,一般來說為了降低風險,主要是參考套片方案的參考設計完成,芯片廠商也會提供包括器件封裝,參考設計,仿真模型,PCB參考等等全部資料,在芯片功能越來越復雜的今天,一個片子動不動就幾百上千個PIN,對于一個新項目來說,是沒有時間一頁頁去吃透每個PIN,每個輸入輸出的具體功能,電氣參數的,尤其是對于高速設計,比如DDR3接口,XAUI接口等等。
一般來說,芯片廠商提供的參考設計就是他們經過開發,驗證,測試的最佳方案了,很多情況就是你必須按照參考設計來做,否則硬件可能就有問題,一般來說就是信號完整性問題或者EMC問題。
那有的人就說了,硬件電路設計談不上設計,都是copy成熟電路。芯片廠商提供越來越周到的服務,再加上公司沉淀的技術積累,硬件設計工程師可以完全不動腦子進行電路設計。
這樣一來,硬件工程師的價值似乎越來越低了,畢竟一個產品的核心功能或者技術一般都在IC或者FPGA里面了,硬件工程師一般沒有能力進行核心邏輯設計IC design。
那如果按照這個邏輯軟件設計也談不上設計,都是copy成熟代碼。試問有幾個軟件開發人員不移植別人的代碼?再深入點,有幾個軟件工程師能隨意更改uboot、kernel,不百度C語言語法,不移植業務程序,不去問芯片廠商的技術支持?
即使都是成熟的東西,實際上工作過程中我并沒有發現哪個項目做得很快,同樣一套電路和代碼,成熟產品沒問題,新產品為什么就有問題?最后還是是硬件設計去解決。
對于這上述問題,筆者也曾經困惑過,總是感覺硬件設計沒有什么好搞的了,不就是抄抄參考設計,就跟組裝一臺電腦一樣組裝一個單板嘛。當然隨著項目經驗的增多,尤其從事現在硬件系統級設計的角色,感覺原來自己考慮更多是從一名原理圖設計工程師的角度考慮問題,看問題總是很片面。
就像開始說的,一個成功的硬件設計,功能Function只是一小部分,至于其他的因素和能力,一個硬件工程師的能力取決于能考慮因素越多,越深入,就越是一個優秀的硬件工程師。
所以硬件工程師是吃經驗的,對公司來說培養一個硬件工程師成本很高,硬件不會像軟件一樣代碼錯了修改一下幾分鐘就可以搞定,硬件設計錯了,那有可能全部都要重來,整個項目周期可能就要延遲3周甚至一個月以上。
有個觀點需要說明一下,啥都不懂也可以做出事情,但對個人來說會有發展天花板。硬件方面就像參考電路一樣,你不知道電路怎么工作的也能把它用起來,軟件方面就像uboot和kernel一樣你看不懂也能用起來,但一旦你懂,那就不一樣了。
就像一談到硬件設計,大家都認為是電路設計,好簡單,沒什么難度,但實際上不是的,越到底層越難,責任越大,部門交流越多。懂得越多,學得越容易,就能夠走得越遠。
什么是硬件電路設計?
顧名思義,硬件電路設計就是設計電路的,能夠熟練使用cadence繪制電路與查看PCB。硬件設計中的電路設計是硬件工程師最重要的職責。電路設計考驗的是硬件工程師的設計基本功,即對一些硬件器件的理解以及靈活應用,比如:CPU、電阻/電容/電感、二極管/三極管、保護器件/接口器件、邏輯芯片/邏輯功能、電源等。
硬件電路設計主要針對電路設計,里面涉及的東西比較多,需要足夠的經驗與理論知識。
8年硬件工程師的難言之隱
韓寒執導的電影《飛馳人生》有這么一句經典對白:“中年人的崩潰,是從開口借錢開始的”。
人到中年,各方面都開始走下坡路,當你手捧著泡滿枸杞的保溫杯,看著鏡子里日漸隆起的大肚腩和后移的發際線,再想想“孩子、車子、房子”。..唉聲嘆氣往頭頂一瞅,發現竟然還懸了把“達摩克利斯之劍”,仿佛它隨時都能掉下來將你劈成兩半。
年輕人的痛,氣宇軒昂,中年人的痛,無聲無息!
陳航(化名),年齡30+,擁有8年硬件開發經驗,目前就職于深圳某醫療器械公司,呆了五年還在底層掙扎。
工作上,他自認為從不馬虎,技術也過硬,但一直得不到晉升的機會。眼看著一個個初出茅廬的“小萌新”開始拿著跟自己差不多的薪水,有些甚至已晉升為管理層。
他覺得很迷茫,想跳槽,投了許多簡歷,但沒有任何收到音訊!
現在看來,“另擇良木”這條路對他來說,似乎很難走通。
多年的技術生涯,讓陳航身上帶有部分工程師的“通病”,尤其體現在性格上面,天真(此處帶有貶意)、敏感、膽怯、多慮、木訥,不善言辭,也不善交際,而在思維方面,又明顯過于教條化。
另一方面,對于長年奮斗在底層的陳航來說,嚴重缺乏管理思維模式。所以,即便技術過硬,但缺乏項目管理能力,加上性格過于敏感,一直難有晉升機會。
而另一位畢業8年,轉了三家公司的硬件工程師也表示,雖然自己擁有8年的工作經驗,但是由于工作太雜,雜而不精,所以在面試的時候總會被人挑刺,導致工資很難往上提,更別說晉升管理層了。
作為一名硬件狗,你不應該坐以待斃,要勇于打破職業瓶頸,“高薪”、“管理”兩手抓起來!
都說硬件工程師的薪資取決于能力,一般情況下,硬件工程師都是要歷練很多年才能達到一個比較高水平的,所以不要好高騖遠,腳踏實地,厚積薄發才是王道。
根據近6年內的相關調查數據顯示,來自全國的企業電子工程師崗位要求中,對項目管理能力的要求超過50%。由此可見,項目管理已成為初中級工程師必備能力。
我們再來看看硬件工程師的職業進階線路圖:
從上圖我們可以看出,走“技術路線”的硬件工程師,無論是薪資待遇還是未來的發展潛力,都遠不如走“管理路線”的大佬們。干硬件,即使混到專家級,薪資也就20K-30K的水平。而若晉升為管理層,那么終極目標就是創業,在賺錢方面擁有無限可能。
要想擁抱“高薪”、進入“管理層”,你需要掌握的核心技能大體如下:
1.主導公司產品電路設計開發,樣品制作;
2.分析客戶體驗,領導企業產品升級;
3.決定企業硬件產品核心差距;
4.產品功能、性能決策;
5.掌握產品成本核心;
6.帶領團隊完成硬件功能性和性能要求的邏輯設計等
。..。 都說干硬件這行,入門容易,精深太難!
搞硬件,一方面需要“深”,一方面需要“博”。現代電子電路知識是個大坑,其深如海。一輩子鉆研,如果能在一個小點上精通,就算大能了。
坑爹的是,當個硬件工程師不能光懂硬件,代碼要會寫,結構要了解,按照行業不同,你可能還需要懂得:控制理論,光,機,熱,氣,生物,化學等等各個方面的知識。
這也是為什么很多干硬件的都說自己“差不多什么都會一點,但不精!“
差不多十年前,硬件和軟件還處于勢均力敵的狀態,隨著IC芯片集成度越來越高,硬件工程師的身價也開始隨之下跌。
現如今,做產品都是由供應商提供方案,很多原廠的公版設計需要改動的地方越來越少,并且出了任何問題也都由原廠直接跟進解決。IC集成度越高,硬件設計就越窄,對硬件工程師的要求自然也會越來越低。
總的來說,硬件現在最大的瓶頸就是消費級市場一體解決方案和不斷整合的芯片集成度,這種直接由原廠提供完整“鑰匙”的方案,讓設計風險大幅降低的同時,也削弱了硬件工程師的重要性。
如前所述,硬件的輝煌是在2000年以前,那時硬件還沒有飽和,正處在上升期,隨著硬件的性能提升,軟件利用硬件資源玩出了花,硬件的時代也隨之暗沉,現在上游半導體基本已經出現壟斷化,沒有無序競爭,標準化從薪資到制度都在逐步限死。
搞硬件真的就沒有什么發展前景?
搞軟件是能掙幾年錢,但硬件可以吃一輩子。
硬件工程師可以養老,基本上不存在中年危機。與軟件行業不同,硬件工程師的薪資跟經驗直接掛鉤,很少出現應屆生與在職工程師薪資倒掛的現象。按照艱苦奮斗再創業的節奏,終身就業是大趨勢,硬件工程師是一份可以實現終身就業的工作。
而軟件行業變化速度快,軟件工程師可替代性強,coder能干到架構師高級算法工程師的人鳳毛麟角,能夠中年成功轉管理崗的也不多。而且新員工比老員工薪資高也已經是普遍現象,大齡coder面臨的競爭壓力比同齡硬件工程師大不少。
此外,如果硬件實在搞不下去了,還可以轉項目經理啥的。大多數硬件工程師一般到后期都會轉管理,或自己創業。跟軟件相比,接觸面會比較寬,更容易從全盤去考慮問題。
總之,一個頂級硬件工程師可遇不可求,而一個頂級的軟件工程師一抓一大把。拿蘋果公司來說,他們頂級硬件工程師的工資要比同級別的軟件工程師薪資高。
當然,術業有專攻,不能簡單用誰好誰壞來定論,無論是硬件還是軟件,修煉內功才是王道。
行業的大佬如何看待硬件工程師前程問題?
硬件工程師是這樣一種奇特的工作:在中國大多數從事這個行業的人都沒有入門。那些宣稱由于上游芯片廠家的DEMO越來越成熟,導致硬件工程師成為了“裱糊匠”,到處抄參考設計的,他們自己確實就是這樣,也確實沒有見識過什么是真正資深的硬件工程師。
互聯網的高價吸引了許多優秀人才,使得硬件行業的總體人才水平偏低,更加重了第一條的現狀。其實我也挺看好機械行業的,越是被互聯網抽走了人才的洼地,越是存在巨大的需求。
你不能問那些被迫干機械或硬件的人,他們資質平庸,轉行做軟件也怕學不會算法,他們一定告訴你硬件不行,坑深得很,XXX做軟件水平差還薪資50K/月起。..。..
硬件專家的資質要求很高,沒有上上之資、又有一定的毅力苦功,有高手在起步時帶一下,幾乎不可能有什么成就。
如果說學軟件對數學邏輯功底要求高的話,學硬件還得加上物理、以及特定行業相關的工程應用知識。
用卡爾曼濾波實現干擾狀態下的傳感器數據采集,以便進行過程控制的系統中,究竟是采用屏蔽驅動技術的信號電纜更好呢,還是采用光電或磁電隔離更可靠?
這些問題似乎都不再局限于電路信號范疇,它與成本、材料、應用可靠性、代碼的兼容性都相關了。
好的硬件工程師,似乎是這樣一種專家:他運籌帷幄,熟知每一個技術細節,能一下子反應過來任何問題的可能來源,在成本、功能、性能與客戶體驗之間游刃有余。
回到正題:如果你有超過一般人的天賦,做什么都挺好,不只是硬件。如果你資質一般,去做些一般人也能掙到錢的工作,比如軟件。需求量大嘛,總是可以多容納些濫竽充數的人,更何況一般人也能寫得大差不差。
其實對于“研發工程師”而言,能當得起這個稱呼的人,是為我們設計新產品、創造新價值的人,難道不應該是人群中最聰明的top5%?
你認真誠懇地評價一下自己,就知道自己適合不適合做工程師了。
我覺得硬件很有趣,在某些戰略層面上,硬件設計總是需要科學家級別的人才能勝任。如果你有情懷,不妨可以試試。
最后,這個問題的本意其實有問題,大多數人回答也按照心照不宣的本意在回答,挺有趣。這個問題的真正含義是“我就想和別人一樣地上上班,也一樣努力地工作學習,能否獲得超額的回報?“來錢快肯定是有原因的,要么特別聰明、要么特別勤勞、要么狗屎運特別好。
有人說大部分需求可以隨便抄抄DEMO就能搞定了。我感覺“搞”是這么”搞“了,”定“則未必能“定”了。君不見那么多動不動就被干擾數據亂蹦、一上高低溫就癱瘓,或者好一點精度差、響應慢、偶爾死機要重啟下,這些帶病產品都是哪里來的?
須知DEMO的主要目的是展示“技術可行性“,它最大的問題在于沒有和特定的行業應用相結合。有些為行業定制的DEMO只考慮了技術本身,沒有考慮諸如振動、干擾、環境溫濕度等因素。
而這恰恰就是硬件工程師的最大價值:在技術可行的基礎上,根據現場應用特征,優化其功能、強化其性能、在成本與性能之間找到最佳平衡,讓一個技術可行的方案成為一個商業成功的產品,這才是硬件工程師的榮譽之所在。
我們有些硬件工程師,可能從未想過他所謂的”研發設計“體現在哪里,到底研究了什么、開發了什么、設計了什么?還是僅僅抄襲了什么?
電子工程師這個職業,國內企業的核心競爭力確實在國際競爭中沒有什么優勢,甚至差距還挺大,所以才會有那些“到處抄抄”也就差不多了的看法 - 你的競爭力就是“差不多”的檔次,你個人也是“差不多”的水平,當然企業也好,個人也好,前途也就是“差不多”了。
看一個問題評價是高是低,其實是和個人的標準有關的。你覺得這樣就可以了,換個國家換個環境人家說不定覺得莫名其妙 - 就這種水平還敢自稱工程師?
有人一直在強調“那種資深的高水平工程師很少 - 需求也少”,可能還是有誤解。
我們目前的現狀并非是中低級工程師多,高級資深工程師少,而是基本達到研發能力的工程師少,許多都談不上“研發”二字。說得刻薄一點,我們的“資深”可能是人家的“基礎”。
我不是很能理解,一個大學學了微積分、普通物理、電路原理、信號與系統、模電數電,畢業工作幾年后仍然理直氣壯地說我模電不行、我數電不懂、這個小信號分析我做不了。..。..這和資深搭得上關系嗎?
就算做到了就可以以“資深工程師”自居了?這不是基礎工程師要求么。
記得看過一次報道,一次硬件工程師的招聘,要求面試者講講自己做硬件的心得。結果他掏出一個上家公司的電路板,說你看吧,用了六層板呢。我接觸過一些這樣的工程師,情商極低,缺乏足夠的誠信或道德意識,表達能力差,學習能力弱。
他們喜歡掛在口頭的話就是“要是有高手帶我,多干幾個項目,我經驗就上來了”。他們情愿去現場一趟一趟的調試(所謂的調試依我看幾乎是胡亂試,好了不知道為啥好,壞了也不知為啥壞,很少是按理論指導一步步來),也不愿先在腦袋里仔細分析一遍 - 也可能他們確實沒能力分析。
他們的經驗就像是武功口訣一樣,什么抗干擾要“多點接地或單點接地”啦,或者IC前面要放幾個去耦電容啦,也有什么通信口加個光電隔離啦,似乎口訣越多,經驗越豐富。
你要問他這些口訣背后的電路原理到底是什么?為什么一定要0.1uF?在這個應用場景適合不適合,他就啞口無言了。
其實做任何一行首先要端正態度,你是要做標準的事情,還是要做“不標準差不多”的事情。我一直認為中國存在巨大的機會,其原因很簡單:只要你中規中矩做到工程師的基本要求,你在國內就是領先的,有著巨大優勢的,因為國內的同行或企業存在太多不著調的現象了。
問題是,我們把認真讀書考試平均分也不過90來分的人稱為“學霸“,把能夠將書本理論與研發實踐結合起來的工程師稱為“高手”(連理論與實踐相結合都做不到的工程師不是坑人么?),這不僅是眼光的問題,更是人才供給側改革的問題:大量低端人力資源過剩,高端人才供給不足。這是和我們產業現狀匹配的人才現狀,也是我們未來改進的必由之路:國家產業假如能夠升級,絕對離不開社會人才的升級。
審核編輯 :李倩
-
電路設計
+關注
關注
6666文章
2430瀏覽量
203417 -
匯編器
+關注
關注
0文章
31瀏覽量
11231 -
硬件工程師
+關注
關注
179文章
357瀏覽量
75409
原文標題:硬件工程師前途到底怎樣?看看大佬怎么說,看完跪了
文章出處:【微信號:電子Online,微信公眾號:電子Online】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論