到拿下硬件工程師offer的完整路徑)
畢業(yè)季那陣子我真的是被“電子專業(yè)不好找工作”這句話壓得喘不過氣。投了上百份簡歷絕大多數(shù)石沉大海少數(shù)幾個面試也都在技術(shù)面環(huán)節(jié)被問得啞口無言。后來我復(fù)盤了一下不是崗位少而是我的狀態(tài)有問題——手里除了課程設(shè)計和畢業(yè)論文沒有任何一個拿得出手的完整項目面試官一問到“你實際做過什么”“這個電路為什么這么設(shè)計”我基本就只能背教材。痛定思痛之后我給自己定了3個月的實操突擊計劃從焊接、調(diào)試到完整項目落地一步一步補短板。這篇文章就是把那3個月我做過什么、踩過哪些坑、最后怎么拿到硬件工程師offer的完整過程記錄下來希望能給同樣處在迷茫期的電子相關(guān)專業(yè)同學(xué)一點參考。1. 先搞清楚硬件工程師到底需要什么能力1.1 拆解崗位需求別再盲目刷題我一開始也走了彎路覺得找不到工作是因為理論不夠扎實于是抱著《模擬電子技術(shù)》《數(shù)字電子技術(shù)》重新啃啃了一周發(fā)現(xiàn)效率極低而且面試時根本用不上。后來我仔細(xì)分析了招聘網(wǎng)站上幾十個硬件工程師崗位的JD提煉出高頻出現(xiàn)的關(guān)鍵詞原理圖設(shè)計、PCB Layout、元器件選型、單片機編程、調(diào)試測試、焊接能力、文檔輸出。這些關(guān)鍵詞拼在一起其實就是一句話能獨立把一個電路從想法變成能穩(wěn)定運行的實物。搞明白這個邏輯之后我就不再糾結(jié)“我是不是應(yīng)該先把某某理論課再學(xué)一遍”這種問題了。硬件工程師的核心價值在于把理論轉(zhuǎn)化為產(chǎn)品學(xué)校里的考試考的是“怎么算”而實際工作是“怎么用”。所以我3個月的計劃完全圍繞項目展開理論知識用到什么補什么而不是倒過來先堆理論再動手。這里有一個很重要的心態(tài)轉(zhuǎn)變從學(xué)生思維變成工程師思維。學(xué)生思維是“我學(xué)完了再動手”工程師思維是“我要做這個所以需要學(xué)那個”帶著目標(biāo)去學(xué)效率完全不一樣。1.2 明確實操訓(xùn)練的四個方向拆解完崗位需求之后我給自己定了四個能力維度后面的所有訓(xùn)練都是圍繞這四個維度展開的電路設(shè)計能力能看懂?dāng)?shù)據(jù)手冊會根據(jù)需求選型能設(shè)計原理圖。版圖設(shè)計能力會用EDA工具畫PCB了解基本的布局布線規(guī)則。嵌入式基礎(chǔ)能力至少熟悉一種單片機能寫簡單的控制程序。調(diào)試與測試能力會用萬用表、示波器、邏輯分析儀能定位問題。這四個維度對應(yīng)到實際交付物上就是兩個完整的硬件項目。注意是完整項目不是開發(fā)板例程。開發(fā)板例程是別人搭好的電路你只是下載個程序跑一下這不算你的能力。面試官也心知肚明所以一看你寫在簡歷上的項目是“基于STM32開發(fā)板的某某實驗”基本就不會深問了。真正的項目應(yīng)該是你自己選型、自己畫板、自己焊接、自己調(diào)試即使功能不復(fù)雜但整個流程走完你的收獲和面試時能講出來的內(nèi)容是完全不同的。2. 三個月實操計劃的設(shè)計思路2.1 時間規(guī)劃按月拆解目標(biāo)明確不焦慮3個月聽起來不長但如果規(guī)劃合理其實足夠完成從“只會理論”到“能獨立做項目”的轉(zhuǎn)變。我的時間安排是第一個月打基礎(chǔ)第二個月做第一個完整項目第三個月做第二個稍微復(fù)雜的項目同時開始準(zhǔn)備簡歷和面試。第一個月的核心任務(wù)是工具鏈的熟練。我花了一周時間專門練習(xí)焊接買的焊接練習(xí)板和各種封裝的小元件每天焊兩三個小時。一開始焊得歪歪扭扭虛焊連焊是家常便飯到第一周結(jié)束基本能比較流暢地焊完一塊直插元件的小板子。第二周開始學(xué)EDA工具我選的是立創(chuàng)EDA因為上手快、元件庫全而且跟嘉立創(chuàng)打板無縫銜接對新手非常友好。第三周第四周開始接觸單片機編程用的STM32F103C8T6最小系統(tǒng)板把GPIO、定時器、中斷、ADC、I2C、SPI這些外設(shè)都過了一遍。第二個整月做第一個完整項目。我的選題是一個環(huán)境監(jiān)測節(jié)點用STM32讀取溫濕度傳感器和光照傳感器數(shù)據(jù)顯示在OLED屏上同時通過串口上傳到上位機。這個項目覆蓋了傳感器選型、I2C通信、電源電路、顯示驅(qū)動、數(shù)據(jù)校驗這些基礎(chǔ)點難度適中非常適合第一次完整走流程。第三個月做第二個項目難度要上一個臺階。我選的是一個帶閉環(huán)控制的直流電機調(diào)速系統(tǒng)用編碼器測速PID算法調(diào)速PWM驅(qū)動可以通過按鍵設(shè)定目標(biāo)轉(zhuǎn)速OLED實時顯示實際轉(zhuǎn)速和PID參數(shù)。這個項目涉及閉環(huán)控制的概念面試時非常加分因為大部分應(yīng)屆生都只會做開環(huán)的東西你能做過閉環(huán)至少說明你理解反饋這個概念而且動手能力過關(guān)。2.2 工具和材料準(zhǔn)備一次性配齊不折騰實操最怕什么最怕做到一半發(fā)現(xiàn)缺個元件、缺個工具然后快遞等三天熱情全涼了。所以我在開始之前就把工具和材料一次性配齊了。工具方面電烙鐵建議買帶數(shù)顯調(diào)溫的我用的是T12焊臺回溫快新手也容易上手、焊錫絲選含助焊芯的直徑0.6mm或0.8mm比較合適、助焊劑、吸錫帶、鑷子、斜口鉗、剝線鉗、萬用表、直流穩(wěn)壓電源、示波器預(yù)算有限可以先買一個幾百塊的便攜款或者用虛擬示波器、邏輯分析儀便宜的USB邏輯分析儀就夠用調(diào)試I2C、SPI、UART非常香。元件方面不用貪多常用的電阻電容電感各買若干種規(guī)格常用的二極管三極管、穩(wěn)壓芯片AMS1117系列必備、運放LM358、LM324、比較器LM393、傳感器模塊、單片機最小系統(tǒng)板、各種連接線杜邦線基本就能覆蓋絕大多數(shù)項目需求。我這里特別想說一下示波器的問題很多人覺得貴就跳過但硬件調(diào)試沒有示波器真的很難受你排查一個信號有沒有、頻率對不對、時序?qū)Σ粚τ萌f用表只能測出有沒有電壓完全看不到波形。如果預(yù)算實在有限可以買一個USB虛擬示波器兩三百塊的那種帶寬低一點但看低速信號完全夠用我自己的邏輯分析儀就是這么干的幾十塊錢幫了大忙。3. 核心實操環(huán)節(jié)的細(xì)節(jié)全記錄3.1 焊接技能的刻意訓(xùn)練焊接是硬件工程師的基本功可以不精但不能不會。面試官基本不會讓你現(xiàn)場焊東西除非是崗位特別要求但在實際工作中你畫的板子要調(diào)試調(diào)試就離不開焊接。而且焊接水平直接影響調(diào)試效率——焊一個虛焊排查問題可能要花半天這個時間成本太高了。我在練習(xí)焊接時總結(jié)出幾個關(guān)鍵要點。第一烙鐵溫度要合適有鉛焊錫大概320到360度比較合適溫度太低焊錫不流動容易造成虛焊溫度太高容易燙壞焊盤和元件。第二焊接順序有講究先焊矮的元件再焊高的元件先焊貼片再焊直插不然高的元件會擋住烙鐵頭影響操作。第三焊點質(zhì)量的判斷標(biāo)準(zhǔn)就是一個字——潤。有鉛焊錫的焊點應(yīng)該是光亮、圓潤、呈圓錐狀的如果焊點表面發(fā)灰、發(fā)暗多半是溫度不夠或者焊接時間太長助焊劑已經(jīng)揮發(fā)完了。第四拆焊技巧也必須練兩個腳的元件用烙鐵頭同時加熱兩個焊點就能取下來多腳的芯片就得上吸錫帶或者用低熔點合金這個練熟了對后期調(diào)試時換元件非常有幫助。我練習(xí)焊接時還有個特別的技巧不要只用練習(xí)板練直接找一些廢舊電路板來拆焊。舊電腦主板上密密麻麻的貼片電阻電容拆一個少一個拆完再焊回去既練了拆焊又練了焊接而且拆下來的元件還能用。我當(dāng)時拆了一堆舊板子上的電解電容和貼片電阻攢了一大盒后面DIY項目時經(jīng)常用到省了不少錢。3.2 原理圖設(shè)計從數(shù)據(jù)手冊開始做硬件設(shè)計第一課就是讀數(shù)據(jù)手冊。很多新手拿到芯片第一反應(yīng)就是找中文教程但正經(jīng)的設(shè)計流程一定是先看芯片的數(shù)據(jù)手冊搞清楚它的引腳定義、電氣特性、推薦電路然后再畫原理圖。以我做的環(huán)境監(jiān)測節(jié)點為例核心芯片選的是STM32F103C8T6。我第一次畫原理圖時對它的電源電路很不確定因為它有VDDA、VSSA這些引腳不知道該接什么。后來仔細(xì)讀數(shù)據(jù)手冊才明白VDDA是模擬電源引腳需要接一個磁珠或小電阻再連接到VDD同時加一個去耦電容這樣能減少數(shù)字噪聲對模擬電路的影響。這個細(xì)節(jié)如果不看數(shù)據(jù)手冊直接抄開發(fā)板的原理圖可能永遠(yuǎn)都不會理解。面試時如果被問到“為什么這里要加一個磁珠”你能說出來是因為模擬電源和數(shù)字電源之間的隔離面試官就會知道你是真的做過設(shè)計而不是抄板。再比如傳感器選型環(huán)境監(jiān)測節(jié)點我用的溫濕度傳感器是SHT30它支持I2C通信精度和功耗都符合需求。選型時要看的關(guān)鍵參數(shù)包括工作電壓范圍、通信接口、測量精度、功耗、封裝形式。為什么選SHT30而不是DHT11因為DHT11精度只有正負(fù)2度SHT30能做到正負(fù)0.3度而且SHT30是標(biāo)準(zhǔn)的I2C接口DHT11是單總線協(xié)議需要自己模擬時序調(diào)試起來更繁瑣。另外SHT30有多個I2C地址可選0x44和0x45一個I2C總線上可以掛兩個SHT30這個特性在某些項目里很有用。這些差異都是我在設(shè)計時通過對比數(shù)據(jù)手冊里的參數(shù)做出來的選擇面試時把這些講清楚遠(yuǎn)比說“我用過DHT11”有說服力。3.3 PCB Layout布局布線的關(guān)鍵細(xì)節(jié)PCB Layout是新手最容易忽視但面試官最看重的技能之一。我第一個項目的板子畫得很粗糙布局的時候元件隨便擺走線也不注意結(jié)果打樣回來后發(fā)現(xiàn)很多問題電源走線太細(xì)導(dǎo)致壓降大高速信號線太長導(dǎo)致波形畸變晶振離MCU太遠(yuǎn)導(dǎo)致起振困難。這些問題如果不是自己走一遍打樣回來調(diào)試的流程永遠(yuǎn)體會不到布局布線的重要性。我總結(jié)的PCB布局布線核心規(guī)則主要有幾條。第一先布局后布線元件位置決定走線難度。布局時優(yōu)先把核心芯片放在板子中心晶振、去耦電容盡量靠近芯片引腳模擬部分和數(shù)字部分分區(qū)放置。第二電源線要寬地線要完整。我的經(jīng)驗是電源線至少1mm寬地線能鋪銅就鋪銅盡量不要用細(xì)線走地。第三去耦電容要靠近電源引腳而且連接方式要正確——去耦電容的一個焊盤直接打孔到地平面另一個焊盤盡量靠近電源引腳走線這樣才是有效的去耦。如果我當(dāng)時把這些規(guī)則吃透第一個項目的調(diào)試時間至少能縮短一半。還有一個新手很容易犯的錯走線走完了才發(fā)現(xiàn)某一個網(wǎng)絡(luò)還有沒連上的然后用一根很長的繞線去連接。這種“飛線”不僅影響美觀還容易出問題。正確的做法是在布線之前先把布局調(diào)好用原理圖的連接關(guān)系去指導(dǎo)元件擺放——經(jīng)常相連的元件擺在一起這樣布線就會很順暢。如果布線到一半發(fā)現(xiàn)某一根線怎么走都不對問題很可能不是這根線的問題而是前面的布局有問題果斷回去調(diào)整元件位置比硬要繞線好得多。3.4 焊接調(diào)試從硬件到軟件的聯(lián)調(diào)板子打樣回來焊接調(diào)試是整個實操訓(xùn)練中最刺激也最折磨人的環(huán)節(jié)。我第一次焊完板子上電之前用萬用表的蜂鳴檔先測了一遍電源和地之間有沒有短路確認(rèn)沒問題之后才敢接電源。這是非常關(guān)鍵的一步——如果電源和地短路一上電芯片就冒煙了整個板子就廢了。上電之后下一步是檢查各點的電壓。先量電源芯片的輸出對不對AMS1117-3.3輸入5V輸出3.3V用萬用表確認(rèn)一下。然后量MCU的供電引腳3.3V到位沒。接著量晶振兩個引腳正常情況下應(yīng)該量到0.5V左右的直流電壓這是晶振振蕩后引腳上的平均電壓量不到就說明晶振沒起振要檢查晶振負(fù)載電容是否匹配、焊接是否可靠。這些基礎(chǔ)檢查做完才輪到程序下載。程序下載不進去是新手最常見的坑。我的第一個板子就遇到了這個問題用ST-Link連接之后報錯“No target connected”。排查了半個多小時最后發(fā)現(xiàn)是MCU的Boot0引腳電平不對。STM32的Boot0拉高是進入ISP下載模式拉低才是正常Flash啟動模式。我的板子Boot0通過一個10K電阻接地了但是焊接時將電阻虛焊導(dǎo)致Boot0引腳懸空調(diào)試器連不上。用烙鐵補焊之后問題立刻解決。這種情況如果沒有動手實操經(jīng)驗光靠看書是不可能遇到的而遇到一次之后你就能記住一輩子。硬件初始化完成之后就是軟件聯(lián)調(diào)了。我調(diào)試I2C通信時用的是邏輯分析儀看波形先看I2C的START條件對不對再看地址字節(jié)和ACK位有沒有。第一次看I2C波形時發(fā)現(xiàn)SDA線上有數(shù)據(jù)但SCL時鐘線上只有一個脈沖就停了看波形分析發(fā)現(xiàn)是我代碼里I2C時鐘初始化配置錯了導(dǎo)致SCL頻率設(shè)置得太低傳感器響應(yīng)超時。把時鐘配置改對之后I2C通信就正常了。這種聯(lián)調(diào)的過程是把硬件和軟件結(jié)合起來理解的最好方式。4. 兩個完整項目的實戰(zhàn)復(fù)盤4.1 環(huán)境監(jiān)測節(jié)點打通傳感器到上位機的整條鏈路環(huán)境監(jiān)測節(jié)點項目雖然在技術(shù)上不算復(fù)雜但它的價值在于覆蓋了一整條硬件開發(fā)鏈條需求分析、器件選型、原理圖設(shè)計、PCB Layout、焊接調(diào)試、嵌入式編程、上位機通信。每一個環(huán)節(jié)我都踩了坑也都從中收獲了經(jīng)驗。需求方面我要求這個節(jié)點能實現(xiàn)讀取SHT30溫濕度數(shù)據(jù)、讀取BH1750光照強度數(shù)據(jù)、在0.96寸OLED屏上顯示、通過串口發(fā)送到PC上位機、數(shù)據(jù)刷新頻率1Hz。這個需求定義清楚之后選型就變得非常明確。STM32F103C8T6作為主控SHT30溫濕度傳感器走I2CBH1750光照傳感器也走I2C這里要注意兩個設(shè)備的I2C地址不能沖突OLED屏我用的是SSD1306驅(qū)動的I2C版上位機用Python的pySerial庫讀取串口數(shù)據(jù)并打印到終端。PCB設(shè)計時我把傳感器和主控板做在了同一塊板上沒有用模塊插接的方式。這樣做的目的是為了鍛煉整板設(shè)計能力——如果都用現(xiàn)成模塊那其實就是搭積木畫板的賣出點就沒了。第一次畫板時犯了幾個錯SHT30的I2C上拉電阻忘加了后來發(fā)現(xiàn)SHT30模塊上自帶但自己畫板時必須加上I2C總線需要外部上拉電阻才能工作OLED的供電腳和邏輯腳位置搞反了幸好只是主控端的連接反了軟件里改一下IO定義就行如果是板子上的排針定義錯就得割線飛線晶振布局離MCU太遠(yuǎn)導(dǎo)致起振不穩(wěn)定。這些問題讓我真正理解了“設(shè)計就是權(quán)衡”這句話——你不能只顧著布局美觀還要考慮信號完整性。調(diào)試過程中最典型的案例是BH1750的數(shù)據(jù)偏差問題。讀出來的光照度在室內(nèi)是500勒克斯左右但總覺得不太對勁拿手機對照了一下手機顯示的光照度只有200多勒克斯。查了半天最后發(fā)現(xiàn)是PCB設(shè)計的問題——我把BH1750靠近了一個功率電感電感的磁場干擾了傳感器的模擬電路。把傳感器挪遠(yuǎn)一些數(shù)據(jù)就準(zhǔn)確了。這個案例對我的啟發(fā)非常大硬件工程師不僅要能“把功能做出來”還要能“把性能做好”有時候功能能跑但數(shù)據(jù)不對這比完全沒輸出更讓人頭疼也更考驗調(diào)試能力。這個項目完成后我的收獲不只是“我做出了一個能跑的板子”而是“我知道從無到有做一個產(chǎn)品需要經(jīng)歷什么”。面試時把這個項目的架構(gòu)畫出來講清楚每個模塊為什么這么選、中間踩過什么坑、最后怎么解決的面試官會覺得你是一個真正有項目經(jīng)驗的人。4.2 直流電機調(diào)速系統(tǒng)閉環(huán)控制帶來的面試加分第二個項目我做的是帶PID閉環(huán)控制的直流電機調(diào)速系統(tǒng)這個項目明顯比環(huán)境監(jiān)測節(jié)點高一個level。硬件上多了電機驅(qū)動電路我用的L298N驅(qū)動模塊但板子上設(shè)計成可以直接插L298N模塊的方式?jīng)]有把大電流電路畫進主板里多了編碼器接口電路電機自帶的霍爾編碼器軟件上PID控制算法的實現(xiàn)。為什么選擇這個項目因為閉環(huán)控制是硬件工程師面試的高頻考點。大部分應(yīng)屆生對閉環(huán)的理解只停留在概念層面真正自己用PID控制過程量的經(jīng)歷是比較稀缺的。如果你能在簡歷上寫“實現(xiàn)了一個基于增量式PID的直流電機閉環(huán)調(diào)速系統(tǒng)”面試官大概率會深問你幾個問題PID參數(shù)怎么調(diào)的采樣周期怎么定的電機換向時需不需要死區(qū)這些問題的答案都能體現(xiàn)你的實操深度。我在設(shè)計與實現(xiàn)這個項目時第一步是確定系統(tǒng)的物理結(jié)構(gòu)12V直流減速電機帶霍爾編碼器、L298N驅(qū)動、STM32主控板、按鍵輸入、OLED顯示?;魻柧幋a器是AB相輸出通過定時器的編碼器模式讀取轉(zhuǎn)速方向定時器TIM4的編碼器模式可以直接識別A相B相信號的相位差不需要外部中斷來處理方向判斷這個設(shè)計大大簡化了軟件邏輯。PID控制算法的實現(xiàn)上首先我實現(xiàn)了增量式PID因為和位置式PID相比增量式只輸出控制增量不會產(chǎn)生積分飽和的問題而且準(zhǔn)和停的效果更好。采樣周期我設(shè)為10ms對應(yīng)的控制頻率是100Hz對于電機這個慣性較大的被控對象來說足夠了。PID參數(shù)整定我用的是最樸素的試湊法先只加P從小往大調(diào)直到系統(tǒng)出現(xiàn)臨界振蕩記錄此時的比例增益為Ku約為3.2然后根據(jù)Ziegler-Nichols經(jīng)驗公式初步設(shè)置PID參數(shù)在此基礎(chǔ)上微調(diào)。這個過程看似“老土”但它讓你真正理解了PID的每一項參數(shù)會對系統(tǒng)有什么影響——P大了超調(diào)I大了振蕩D大了噪聲放大。硬件調(diào)試中遇到的一個棘手問題是編碼器信號抖動。電機一啟動編碼器的A相和B相信號波形簡直慘不忍睹毛刺多、上升沿不陡。用示波器看了之后確認(rèn)這是共地問題——電機驅(qū)動電流大地線上的壓降在編碼器信號上疊加了噪聲。解決辦法是在編碼器信號線上加低通RC濾波同時把驅(qū)動板和主控板的地進行單點連接。這個問題的解決讓我深刻體會了一個原則硬件調(diào)試時要習(xí)慣用示波器看信號質(zhì)量而不是只用萬用表量“通不通”。這個項目做下來我的另一個收獲是學(xué)會了斗數(shù)據(jù)手冊。為了搞清楚電機編碼器的分辨率我的電機是每轉(zhuǎn)13線AB相輸出對應(yīng)四倍頻后每轉(zhuǎn)52個脈沖我翻了好幾頁電機規(guī)格書還去查了L298N和TB6612的區(qū)別。TB6612比L298N更適合這個場景因為它的壓降低、發(fā)熱小、體積小我當(dāng)時為了省事用了L298N其實做一個正經(jīng)設(shè)計用TB6612會更合理。如果再做一次我會直接選TB6612。5. 求職準(zhǔn)備與面試實戰(zhàn)5.1 簡歷怎么寫項目經(jīng)歷要能經(jīng)得起追問實操基礎(chǔ)打牢之后求職階段的信息差也很重要。硬件工程師的簡歷項目經(jīng)歷部分是核心怎么寫決定了你能不能拿到面試機會。我的寫作思路是“1個自我評價2個核心項目若干技能清單”的結(jié)構(gòu)。自我評價不要寫“性格開朗、學(xué)習(xí)能力強”這種空話要寫“能獨立完成單片機系統(tǒng)硬件設(shè)計具備扎實的焊接與調(diào)試能力熟悉常用測試儀器的使用”有實際的東西支撐。項目經(jīng)歷的描述要遵循“三段式”背景與目標(biāo)為什么要做這個、你的角色與實現(xiàn)方案你做了什么、結(jié)果與收獲做得怎么樣學(xué)到了什么。比如環(huán)境監(jiān)測節(jié)點這個項目我寫的是“設(shè)計并實現(xiàn)了一個基于STM32的環(huán)境監(jiān)測節(jié)點負(fù)責(zé)原理圖設(shè)計、PCB Layout雙層板與焊接調(diào)試實現(xiàn)了SHT30溫濕度與BH1750光照數(shù)據(jù)的采集與OLED顯示通過UART與上位機通信實測運行穩(wěn)定”。一句話把項目內(nèi)容和你的貢獻講清楚面試官一看就知道你在這個項目里干了什么活。簡歷里寫技能要誠實不要寫“精通”這個詞。精通意味著你在那個領(lǐng)域已經(jīng)達(dá)到專家水平而應(yīng)屆生幾乎不可能精通任何東西。我的寫法是“熟練使用”還是“了解”用得非常小心。比如“熟練使用STM32系列單片機進行嵌入式開發(fā)”“熟悉模擬電路設(shè)計基礎(chǔ)與常用傳感器的應(yīng)用”“了解PID控制原理并具備實際調(diào)參經(jīng)驗”。這種表述真實可信面試官也不會因為“熟練”兩個字就專門挑你的刺因為面試時聊兩句就知道你真實水平了。還有一個特別重要的點項目經(jīng)歷寫到簡歷上就必須能經(jīng)得起追問。面試官不會只問“你做了什么”一定會追問“為什么這么做”“還有什么方案”“如果條件變了你怎么改”。所以在面試之前我把兩個項目的每一個關(guān)鍵決策都重新過了一遍用“面試官可能會問什么”的思維梳理了一遍。比如環(huán)境監(jiān)測節(jié)點項目中面試官可能會問“為什么選I2C接口的傳感器而不是SPI”我的回答是“I2C只需要兩根線布線更簡單對于傳感器這種低速設(shè)備完全夠用SPI速度更快但需要更多引腳而且每個從設(shè)備都需要單獨的片選信號連線復(fù)雜?!边@種問題想清楚了面試時才不會卡殼。5.2 面試問題清單技術(shù)面反客為主硬件工程師的技術(shù)面試問題風(fēng)格跟軟件崗差別很大。軟件崗喜歡考算法和八股硬件崗更看重你對實際工程問題的理解和解決問題的能力。我整理了一個自己面試時被問過的高頻問題清單供大家參考電源設(shè)計相關(guān)LDO和DC-DC的區(qū)別什么時候用LDO什么時候用DC-DC這個問題的核心考察點是當(dāng)輸入輸出壓差小且負(fù)載電流不大時用LDO更簡單效率不追求極致、紋波要求高時LDO有優(yōu)勢壓差大、電流大時用DC-DC但DC-DC有開關(guān)噪聲布局布線要求更高。信號完整性相關(guān)什么是阻抗匹配什么時候需要考慮回答要提到差分信號、高速數(shù)字信號如USB、以太網(wǎng)走線需要控制阻抗常規(guī)低速信號不用太擔(dān)心但晶振信號線要盡量短。抗干擾相關(guān)板子上的信號受到干擾會怎么排查這個我會結(jié)合編碼器抖動的案例來回答先看波形確認(rèn)噪聲來源再確定是共地問題還是電源濾波不足再對癥下藥。元器件選型相關(guān)如果給你一個需求你怎么選主控芯片我會從主頻、Flash和RAM大小、外設(shè)資源有幾個UART、I2C、SPI、定時器、功耗、封裝、價格、供貨穩(wěn)定性和開發(fā)資料成熟度幾個方面來考慮。調(diào)試工具相關(guān)示波器的帶寬是什么意思為什么帶寬要夠帶寬決定你能觀測到的信號頻率范圍測3.3V的數(shù)字信號至少需要500MHz帶寬對于5ns的上升沿不然能看到的大概率是變形后的波形。這些問題回答得好不好直接取決于你這3個月的實操積累。因為只有你真的焊過板子、看過波形、排過故障才能講出那些只有“動手”才能獲得的細(xì)節(jié)。不要背答案要講“我遇到這個問題的場景我當(dāng)時的排查思路最后解決的辦法”這種有故事的表達(dá)遠(yuǎn)比干巴巴的答案更具說服力。5.3 談薪與offer選擇別只看薪資還要看平臺拿到offer之后選擇也很有講究。我現(xiàn)在回頭看第一份工作的選擇對職業(yè)發(fā)展影響非常大平臺、業(yè)務(wù)方向、帶你的導(dǎo)師這些都比起薪重要得多。如果你手上同時有幾個offer我建議按這個優(yōu)先級來考慮第一優(yōu)先級是行業(yè)方向你做的東西是不是未來的發(fā)展方向比如汽車電子、工業(yè)控制、醫(yī)療電子、AIoT這些方向的積累在市場上是通用的第二優(yōu)先級是平臺大公司流程規(guī)范、培訓(xùn)體系完善創(chuàng)業(yè)公司能接觸更多模塊、成長快但抗風(fēng)險能力弱第三優(yōu)先級才是薪資薪資差距在5000以內(nèi)都可以接受但平臺和方向的差距在三年后會非常明顯。面試的時候有一個問題一定要問清楚團隊現(xiàn)在的技術(shù)積累在哪個階段有沒有做過類似產(chǎn)品的經(jīng)驗如果團隊還在從0到1的階段那你進去之后要承擔(dān)很多驗證性的工作成長快但壓力大如果團隊已經(jīng)有成熟的產(chǎn)品線那你會更多接觸到量產(chǎn)中的問題——質(zhì)量、可靠性、成本控制這些經(jīng)驗在職業(yè)發(fā)展后期非常值錢。我最后選的是一家做工業(yè)控制方向的公司產(chǎn)品涉及傳感器采集、電機控制、通信模塊面試時的技術(shù)主管看起來是務(wù)實型的老工程師聊技術(shù)問題時給我的感受是“這個人能學(xué)到東西”這種判斷我認(rèn)為比薪資更重要。6. 給同樣處境的同學(xué)的建議與避坑指南6.1 3個月實操期最容易踩的5個坑經(jīng)歷了這3個月我總結(jié)出幾個新手實操時最容易掉進去的坑寫在這里給大家提個醒。第一個坑是貪多嚼不爛。很多同學(xué)一開始熱情高漲想一個月同時學(xué)會STM32、畫板、焊板、學(xué)Python最后什么都沒學(xué)精。正確的做法是聚焦。3個月能做好兩個項目已經(jīng)非常優(yōu)秀了三心二意只會什么都做不成。第二個坑是過度依賴模塊和開發(fā)板?,F(xiàn)在網(wǎng)上便宜的模塊太多了溫濕度模塊、WiFi模塊、語音識別模塊買來插上就能用。但如果你想靠這些模塊找硬件工程師的工作那就危險了。面試官問你這個模塊內(nèi)部是什么原理、為什么它壞了、怎么排查你就答不上來了。建議自己做核心電路模塊只作為輔助參考。第三個坑是忽視文檔輸出。做項目不只是把板子做出能跑就行還要養(yǎng)成寫文檔的習(xí)慣。原理圖設(shè)計說明、器件選型依據(jù)、調(diào)試過程記錄、問題排查筆記這些都是非常寶貴的學(xué)習(xí)材料也是面試時可以展示的東西。我自己把每個項目的調(diào)試過程都寫成了筆記面試時翻出來看既能幫我回憶細(xì)節(jié)也能展示給面試官看這是一個加分項。第四個坑是只做硬件不碰軟件或只做軟件不碰硬件。硬件工程師的崗位邊界現(xiàn)在越來越模糊純硬件崗位在減少“軟硬結(jié)合”的崗位在增加。就算你是以硬件為主的崗位也至少要懂得單片機軟件的基本流程因為硬件調(diào)試離不開軟件配合。反過來做軟件也至少要能看懂原理圖不然出了問題不知道從哪查起。第五個坑是遇到問題就放棄不堅持排查到底。硬件調(diào)試中90%的時間都在“找問題”今天信號不對、明天程序跑飛、后天通信中斷這些是硬件工程師的日常。很多人做項目遇到一個棘手問題就放著不管了這會讓項目永遠(yuǎn)停留在“半成品”狀態(tài)。我自己的經(jīng)驗是只要不放棄大多數(shù)問題在3天內(nèi)都能解決。堅持排查的過程才是成長最快的階段。6.2 實操訓(xùn)練如何保持持續(xù)產(chǎn)出3個月的實操訓(xùn)練最大的敵人不是難度而是時間跨度帶來的懈怠感。我用的方法是以“周”為單位設(shè)立小目標(biāo)每周結(jié)束復(fù)盤一次做一個工作匯報給自己看。比如第一周的目標(biāo)是“焊接水平達(dá)到能焊0.5mm間距的貼片芯片通過視覺檢查無明顯虛焊”第二周的目標(biāo)是“用立創(chuàng)EDA畫出一塊環(huán)境監(jiān)測節(jié)點主板通過DRC驗證”第三周的目標(biāo)是“用STM32驅(qū)動SHT30成功讀取溫濕度并在串口輸出”。這樣做的好處是每次完成的成就感都很強而且不會迷失大方向。另外一個保持持續(xù)產(chǎn)出的小技巧是把做出來的東西“曬”出來。我在那3個月里養(yǎng)成了在論壇和社區(qū)記錄自己項目進度的習(xí)慣不是為了求關(guān)注而是為了逼自己把項目做完整因為半成品曬出來會被別人指出問題這反而是一種督促。剛開始曬的時候被幾個熱心網(wǎng)友指出過電路設(shè)計的Bug那種場面雖然有點尷尬但確實是快速進步的方式。6.3 實操3個月后的認(rèn)知升級這3個月除了讓我拿到了offer更重要的是改變了我對“學(xué)習(xí)”這件事的理解。上學(xué)的時候我們習(xí)慣了一道題一道題地刷一個知識點一個知識點地記但工程實踐不是這樣的——它不是線性的而是一個“完成一個完整目標(biāo)”的過程。你需要同時用上電路知識、編程知識、工具使用能力和問題排查能力哪一塊缺了就補哪一塊。這種“做中學(xué)”的方式比單純的學(xué)習(xí)高效太多了。如果說理論課是“認(rèn)識零件”那實操就是“裝配整機試車維修”的全過程。大學(xué)四年學(xué)了很多元件、很多理論但只有真正動手做項目時那些知識才被真正“激活”了。我做一個直流電機調(diào)速系統(tǒng)時才發(fā)現(xiàn)自己以前學(xué)的模電知識在處理MOSFET驅(qū)動電路時竟然派上了用場做環(huán)境監(jiān)測節(jié)點時才發(fā)現(xiàn)I2C協(xié)議在教材里三頁紙上是一個樣在實際示波器上又是另一個樣。所以如果你現(xiàn)在也在為找工作發(fā)愁我真心建議你把刷題、焦慮的時間換成動手做項目的時間。去畫出第一張原理圖去打第一塊板子去寫第一段控制程序去踩第一個坑然后再去解決它。這3個月的實操補課讓我拿到了offer但更重要的是它讓我真正變成了一個“能動手”的工程師而不是一個“只會在紙上算題”的學(xué)生。最后再分享一個小技巧把自己做的項目整理成一個在線作品集截圖、視頻、調(diào)試筆記、原理圖、PCB圖都放上去。面試的時候直接甩給面試官看比任何簡歷上的文字都更有說服力。我就是這么拿到最終的那個硬件工程師offer的——筆試成績不算高但面試官看完我的項目記錄之后對我說了一句讓我至今難忘的話“你是真的有動手能力我們組就需要這樣的人?!?