
2020年的秋招季對國內所有應屆生來說都太特殊了——疫情讓傳統的宣講會、現場筆試集體消失視頻面試線上筆試成了絕對主流。作為一個目標明確想進大廠的前端應屆生我在那幾個月里經歷了簡歷海投無聲、筆試翻車、三面掛掉、被HR泡池子的一系列打擊也終于拿到了幾個還算滿意的大廠offer。整個過程真真切切讓我體會到了什么叫不進則退。這篇文章不打算寫成標準的面經模板也不會把面試題變成八股文清單。我想聊聊那些面試官不會寫在面經里、但真正決定你能否上岸的東西簡歷怎么從篩選中活下來、八股文到底怎么背才能變成自己的、機試的穩定性怎么練、遠程面試有哪些額外得分點以及秋招這種長達三個月的持久戰心態和復盤到底有多重要。如果你也在準備前端大廠面試或者還在猶豫要不要沖一下這篇東西希望能給你一些真正的參考。1. 2020年秋招的真實底色遠程面試全面鋪開海投模式失效了1.1 疫情讓秋招節奏徹底變了先聊時間背景。2020年的秋招很多公司從7月就開始啟動提前批8月底到9月初是正式批的井噴期10月開始陸續進入尾批和補招。表面看起來時間線和往年差不多但實際節奏已經被線上化打亂了。最大的變化是筆試和面試全面線上化。往年大廠校招筆試基本都在學校里統一機房進行2020年則普遍改成牛客網、賽碼網這類在線筆試平臺在家開攝像頭就能考。面試更是從兩輪技術面一輪HR面的線下流程變成了視頻面為主甚至出現了一整天連面四輪的魔鬼安排。我當時最夸張的一天上午兩場視頻面試下午一場筆試晚上還有一個電話面整個人精力被撕成碎片。線上化帶來的第二個變化是海投模式開始失效。以前大家覺得多投簡歷總能有幾個回音但2020年很多公司用了AI篩選簡歷、統一題庫筆試沒有內推或者簡歷里沒有突出的關鍵詞基本就在系統里石沉大海。我初期海投了大概200份簡歷最終得到筆試機會的不到30家拿到面試的更少。這個數據不是勸退而是想說海投的低效性在線上化之后被放大了精準投遞和找內推的性價比遠高于盲目海投。1.2 不進則退不是口號是這場秋招給我的最大教訓說實話以前我對不進則退這四個字的理解只停留在雞湯層面但2020年秋招親身經歷之后我把它當成了自己求職觀的地基。為什么這么說因為前端技術棧的迭代速度在2020年實在太快了。我記得年初還在用React 16的hooks方案年中Vue 3 beta發布、Vite開始冒頭年末Webpack 5正式發布、Snowpack這類工具也開始被討論。如果你只是按部就班地學完了React或Vue的基礎用法沒有跟進最新的工程化實踐、沒有研究過性能優化的底層原理、沒有了解微前端和Serverless這些新方向面試官隨便追問兩句就露餡了。更直接的體現是面試題目的難度升級。2019年之前前端大廠校招面經還能看到不少講講event loop手寫防抖節流這類基礎題但2020年之后同樣一道題會往上疊加好幾層先講event loop再追問宏任務微任務的具體執行場景再讓你結合React的調度機制分析一個真實頁面的卡頓原因。也就是說面試官想看的不再是你會不會背概念而是你的知識體系能不能支撐他去深挖。這也是我把不進則退放在標題最前面的原因——秋招里的每一個競爭者都在進步尤其是目標明確的人在三個月里進步的速度是驚人的你稍稍松一口氣就會被甩在后面。2. 簡歷不是寫出來的是篩出來的如何讓你的簡歷活過第一輪2.1 技術棧別追求大而全要和目標崗位精準對齊簡歷是第一關但很多人對簡歷的理解有偏差。簡歷不是你的技術自傳不是所有學過的技術都往上堆而是你與目標崗位的匹配度說明書。我在秋招前期犯過一個典型錯誤把Vue、React、Angular、小程序、Node、Flutter全都寫進技術棧覺得這樣顯得自己全能。實際上HR和面試官看到這種簡歷第一反應是這人是不是都只學了皮毛。后來我痛定思痛把技術棧按精通熟練了解三個層級做了嚴格區分——精通只保留兩三項JavaScript和TypeScript、React及其生態、前端工程化方向熟練放Vue、小程序、Node了解才放Flutter、GraphQL這些接觸過的邊緣方向。投遞不同公司的時候我會根據JD微調技術棧排序比如這家公司主要用Vue就把Vue提到前面。這個做法的邏輯在于大廠校招面試官一天可能要面十幾個候選人簡歷上精通兩個字如果不能在你的項目經歷里得到證實那就是減分項。精而準永遠比大而全更有說服力。2.2 STAR法則量化項目每一個字都要能扛住追問項目經歷是簡歷的主體也是面試環節面試官問得最細的部分。我見過很多同學的項目描述是這樣的負責XX系統前端開發實現XX功能——這種描述等于什么都沒寫。我自己后來總結了一套項目描述方法可以叫它STAR法則的前端版背景Situation這個項目是什么場景、給誰用、解決什么問題。任務Task你在其中負責哪一部分是整體架構還是某個業務模塊。行動Action具體做了什么技術選型和實現方案為什么這么選。結果Result量化成果比如首屏加載時間從3.2s降到1.1s、線上bug量下降40%、支持日活10萬用戶等。其中量化結果這一項是我吃過虧才重視起來的。第一次寫簡歷的時候我寫優化了首屏加載速度面試官問優化了多久怎么測量的具體優化了哪幾個點我支支吾吾答不上來面試氣氛瞬間降到冰點。后來我把每個項目都補上了數據比如通過路由懶加載、圖片CDN加速、gzip壓縮等方案將首屏加載時間從3.2s降到1.1sLightHouse FCP指標這樣面試官再追問我就能順著數據往下講而且每個數據背后都有真實的優化點支撐。還有一個關鍵原則簡歷里的每一個項目和技術點都要做好被深挖三層的準備。比如你寫了使用Web Worker處理大文件上傳面試官會追問為什么不用主線程SharedArrayBuffer和postMessage的區別是什么大文件分片的粒度怎么定斷點續傳的hash怎么計算如果你答不上來寧可不要寫這個項目。簡歷上每一個亮點都應該是你真正能吃透的知識點。2.3 投遞策略從海投到定向狙擊投遞策略這件事我是踩了坑之后才認真對待的。初期我海投了大概200多份簡歷從頂級大廠到不知名小公司都投結果回復率極低大部分都是簡歷已進入人才庫的官方拒絕信。后來我把策略改成了定向狙擊目標篩選列出20家想去的公司認真研究每一家的業務方向、技術棧、校招流程。內推優先通過各種渠道找內推包括學長學姐、技術社區、牛客網的內推帖。內推除了能免簡歷篩選或優先篩選更重要的是能幫你把簡歷遞到業務線真實的技術面試官手里看到的機會完全不同。定制簡歷針對不同公司的技術棧微調簡歷里的項目排序和技術棧優先級但保證真實性絕對不編造。說實話定向投遞之后我收到的面試邀請率有了明顯提升從之前的十投一響變成了五投二響。這不是玄學而是因為簡歷和目標崗位的匹配度直接決定了系統篩選中被撈起來的概率。3. 八股文準備的核心邏輯背答案不如構建知識網絡3.1 計算機基礎大廠前端的隱形分水嶺前端面試八股文往往被人詬病但不可否認它確實是校招篩人的重要手段。我在準備過程中最大的體會是八股文不能死背要構建知識網絡尤其是計算機基礎這塊。很多前端同學會忽略計算機網絡、操作系統、數據結構這些基礎課覺得我是前端為什么要看這些但大廠面試官看重的恰恰是這部分。我記得在字節的第三輪技術面中面試官問了一個問題從你在地址欄輸入URL到頁面顯示整個過程發生了什么這道題看起來是經典八股但真正的難點在后續追問DNS解析的細節是什么TCP握手為什么是三次HTTPS握手過程中證書驗證是怎么做的瀏覽器渲染進程和網絡進程是怎么通信的如果只背過答案模板答不出兩層就會卡住。我的準備方法是把輸入URL到頁面顯示作為一個主線把計算機網絡、瀏覽器原理、渲染機制全部串起來。比如DNS解析對應網絡層TCP/IP協議、HTTP緩存在協議層瀏覽器進程架構、渲染管線、回流重繪在渲染層然后每層再往外擴展。這樣任何一個環節被提問我都能定位到自己知識網絡中的位置從上游和下游去補充答案而不是就事論事背一段死答案。3.2 前端核心知識點要有自己的面試答題框架前端本身的八股文也不能零散地記要有答題框架。我拿瀏覽器緩存舉例說明我的整理方法第一步明確這個知識點的層級瀏覽器緩存屬于HTTP協議層 瀏覽器機制層可以從HTTP緩存和HTTP緩存整體策略兩個方向回答。第二步繪制自己的答題邏輯主線HTTP緩存強緩存、協商緩存強緩存ExpiresHTTP/1.0、Cache-ControlHTTP/1.1max-age、no-cache、no-store等指令。協商緩存Last-Modified / If-Modified-SinceETag / If-None-Match。為什么有ETag還要Last-Modified各自有什么問題Last-Modified粒度是秒文件修改但內容沒變也會重新驗證ETag基于內容哈希更精確。緩存位置Memory Cache內存、Disk Cache硬盤、Service Worker緩存。緩存策略的實際應用結合前端工程化比如hash文件名版本控制、打包時的gzip、CDN的cache-control配置。第三步準備一個實際場景上線一個前端版本后老用戶緩存不失效怎么辦這個問題在真實工作中經常遇到答案就是文件名hash 發布時修改index.html的Cache-Control為no-cache。準備完這個場景之后面試官再深入問打包輸出帶hash的文件為什么能解決緩存問題我也可以順著hash計算的原理答下去。零散背八股和構建知識網絡的區別就在這里死背只能回答是什么而知識網絡能回答為什么和怎么辦。面試官往往更看重后面的部分。3.3 手寫代碼題高頻題不能只是見過前端面試的手寫題是很多人的噩夢。防抖節流、深拷貝、Promise.all、數組扁平化、柯里化、new的實現、call/apply/bind實現、數組去重、事件總線……這些題目幾乎每家都會出。我對手寫題的態度是不能只停留在見過、能寫出來的程度要理解每一個實現的邊界條件和性能考量。以深拷貝為例如果只寫一個遞歸遍歷Object.assign面試官會讓你補上函數、正則、Date、循環引用、Symbol、Map/Set這些特殊類型的處理。準備的時候我專門花了一個晚上把所有邊界case全整理了一遍基礎類型直接返回函數、Date、RegExp、Map、Set分別處理Symbol作為key也要保留WeakMap解決循環引用以及為什么要用WeakMap而不是Map——防止內存泄漏等到面試的時候手寫深拷貝就變成了一道加分題而不是送命題。類似的還有手寫Promise.all的時候要考慮reject之后的狀態處理、傳入空數組的返回、以及返回值數組的索引對應關系。這些細節只有自己完整實現過一遍才能在實際面試中順手寫出來。4. 機試與算法從刷題量到解題穩定性的跨越4.1 刷題路線怎么定大廠校招的算法筆試一般分為兩類一類是ACM風格的在線編程題牛客網平臺一類是偏工業場景的算法題。2020年秋招機器筆試的特點是題目數量不多1-2題到3-5題不等但時間緊、數據范圍大、要求一次性通過所有測試用例也就是說暴力解能過一部分case但不給全部分數的情況很普遍。我的刷題路線是數據結構基礎數組、鏈表、棧、隊列、哈希表、二叉樹→ 基礎算法思想遞歸、二分、排序、雙指針、滑動窗口→ 進階算法動態規劃、貪心、回溯、圖、并查集→ 高頻題字節跳動、騰訊、阿里等公司的高頻面經題。最推薦的刷題順序是先按知識點專題刷再按公司真題刷。按專題刷是為了形成看到題目就能定位到數據結構和算法思想的條件反射按公司真題刷是為了適應出題風格和題目難度。LeetCode的劍指Offer系列、牛客網的公司真題庫都是不錯的練習材料。4.2 機試翻車的幾個典型場景機試翻車的原因很多時候不是算法不會而是輸出格式、輸入處理、邊界條件這些軟細節出了問題。我總結了自己和周圍同學的幾個高頻翻車場景輸入輸出問題。牛客網常見的輸入模板是parseInt(readline())但有些題目有多行輸入、每行長度不同如果沒注意讀入空行或者多余空格就會導致亂碼。練習時一定要熟悉牛客在線編程的輸入輸出格式最好把幾種常見模板背下來。數組越界和空數組。寫二分、雙指針、滑動窗口的時候初始條件和while循環的邊界是否覆蓋空數組、單元素數組是很好拿分但也很好丟分的地方。建議平常練習就養成先跑邊界測試的習慣。精度問題。涉及浮點數比較時不要直接要用Math.abs(a - b) 1e-9。涉及大數運算時要用BigInt或字符串處理。時間復雜度的誤判。比如數據范圍是10的5次方你寫了個O(n2)的解法結果超時。做題的時候要快速根據數據范圍估算復雜度是不是能過。還有一個容易忽略的點是寫完代碼一定自己跑一遍示例。我見過不少同學在牛客網提交了就干等結果因為漏了分號、數組下標寫錯而WAWrong Answer這非常可惜。在本地IDE或者草稿紙上模擬一遍輸入輸出能幫你避免大量低級錯誤。4.3 時間分配的優先級秋招期間不可能把所有時間都放在刷題上還有八股文、項目復盤、面試技巧需要準備。我的時間分配大概是這樣的前期7月到8月中旬每天固定2小時刷算法題1小時整理前端知識網絡1小時復盤項目。前期末到中旬8月中旬到9月算法的時間減到每天1到1.5小時重點刷高頻真題同時開啟面試復盤環節——每次技術面結束后當天就把被問到的問題整理進知識庫。中后期9月到10月算法主要以保持手感為主不再做新題每天1道hard或者2道medium加上之前整理的錯題集中重做。面試復盤和八股文優先級提高因為面試邀請變得密集實時更新自己的知識盲區變得很重要。說實話沒有人能面面俱到關鍵是在正確的時間做正確的事。7月一開始就把大量時間花在背八股文上等到9月面試高峰期才發現算法手感丟了這種血淚教訓我見過不止一次。5. 面試現場復盤遠程面試有哪些你看不見的得分點5.1 自我介紹和項目介紹怎么講出亮點遠程面試、尤其是視頻面試和線下面對面的感受完全不同畫面卡頓、延遲、雙方互動節奏都會影響發揮。這讓我意識到遠程面試的自我展示需要更加結構化。自我介紹不是流水賬千萬不要從大一說到大四。我的套路是一句話定位我是誰來自哪所學校主攻前端方向 兩個亮點在校期間做了XX項目主要貢獻是XX 一個目標希望有機會加入貴公司在XX方向繼續深入總時長控制在1分鐘左右。自我介紹最重要的作用是給面試官一個鉤子讓他順著你最想被深挖的地方提問。項目介紹更不能平鋪直敘。我后來總結了一個技術亮點第一的講法不按時間線講項目而是先拋最亮眼的技術點。比如這個項目最核心的突破是我們用Web Worker解決了大數據量導出的卡頓問題具體方案是……——這樣面試官就會順著這個技術點往下問主動權就掌握在你手里了。如果按時間線從需求講到設計再講實現面試官大概率會從你最薄弱的環節開始提問。5.2 面試中的追問鏈怎么應對大廠面試最明顯的特點就是追問特別深。一個講一下React的渲染流程可能被一路追問到Fiber、優先級調度、時間切片、中斷恢復。能不能接得住追問是面試官判斷你是不是真的會的分水嶺。我應對追問的方法論是永遠用現象→原理→實踐的結構回答問題。比如被問到React中setState是同步還是異步這個問題我會先回答現象在React 18之前在事件處理函數中是異步的在setTimeout或原生事件中是同步的然后講原理React內部通過一個執行上下文標志isBatchingUpdates來控制批量更新getDerivedStateFromProps和componentDidUpdate的調用時機決定了更新是否被合并最后講實踐這個特性在開發中意味著什么比如在setState之后不能立刻讀state值要使用回調函數或者在componentDidUpdate中讀取。哪怕被追問到不會的地方也不要直接說不知道。更好的表達是這塊我目前的理解是……可能方向上有偏差您可以指正然后把自己知道的相關內容說出來。面試官要的不是一個行走的百科全書而是面對未知問題時展現出來的思維方式和學習能力。5.3 反問環節這才是拉開差距的地方很多同學把反問環節當成走過場問一句部門主要做什么就結束了。但實際上反問環節是展示你思考深度和個人取舍的最佳時機。我一般在反問環節會問以下問題關于團隊技術棧目前團隊在前端技術棧上主要用Vue還是React未來的演進方向是什么如果有新的項目立項平臺怎么決定用哪套框架——這展示了你對技術選型的關注也幫自己判斷這個團隊是否技術驅動。關于新人培養校招同學入職后的培訓體系是什么樣的第一年大概會接觸到什么樣的項目——問這個問題能讓你在多個offer之間做取舍也表明你不是隨便找個工作就完事。關于業務方向這個團隊目前主要服務哪些業務方業務在快速發展期還是成熟期——這可以幫你了解團隊的氛圍和晉升空間。反過來千萬別問的薪資待遇HR面再聊、加班情況會給人抗壓能力不行的印象、我面試表現怎么樣這是面試官最忌諱的等。反問環節不是提問機會是你展示決策能力的機會。6. 秋招全程時間線與心態管理Offer靠實力也靠撐到最后6.1 我的秋招時間線復盤復盤自己的秋招時間線我覺得有幾個關鍵節點是可以優化的。我把自己真實的秋招經歷做了一個簡化時間線供大家參考時間階段主要動作復盤反饋7月初-7月中旬準備期確定方向、篩選目標公司、開始刷題方向確定得太晚應該4-5月就開始7月中旬-8月中旬基礎夯實刷LeetCode基礎、整理前端知識網絡八股文和算法并行推進每天保證3小時很有用8月中旬-9月初提前批沖刺投遞提前批、參加線上筆試和初次面試提前批的競爭也很激烈但不投更虧9月-10月正式批高峰期密集筆試、技術面、HR面這個階段的面試邀請開始爆發一定要做好記錄和復盤10月底-11月尾批補招部分公司加面、比較offer、最終簽約Offer比較時不要只看base要看技術和業務成長這個時間線看起來很簡單但實際操作中每個階段都會遇到突發情況比如一個筆試和另一個面試撞車、某個公司三面拖了兩周沒消息、提前批被掛但正式批重新發起……所以我強烈建議做一份秋招管理表格把每家公司投遞的時間、筆試狀態、面試輪次、面試官問過的問題、你的復盤全部記錄下來。秋招后期你會發現這個表格就是你最寶貴的經驗庫。6.2 焦慮、被掛、自我懷疑這些情緒怎么處理秋招是一場長達三個月的心理戰我認識的大部分同學包括我自己中途都有過崩盤的瞬間。記得我9月份有一次三面被掛原因是項目中的某個細節回答得不夠深入那個問題其實我準備過但因為緊張沒發揮好。掛完之后我整個人都泄氣了連續兩天不想看任何技術內容覺得自己三個月白準備了。后來怎么調整過來的我發現幾個方法很有效固定時間焦慮把焦慮集中在某個固定時間比如每次面試完之后的半小時允許自己沮喪、吐槽、吃頓好的。其余時間告訴自己這是工作時間一切情緒等休息時再處理。這個方法看似荒謬但親測有效它能把情緒從工作狀態中隔離出去。和面友保持聯系找幾個同樣在秋招的朋友組成一個相互監督、相互打氣的小群。彼此分享面經、互相做模擬面試遇到面試被掛的時候群里吐吐槽你會發現你不是一個人。這種歸屬感對心態非常重要。復盤優先于情緒面試被掛不要只沉浸在難過里當天就把面試過程記錄下來找出最薄弱的一個點第二天花時間補上。當你還有目標去完成的時候情緒反而不會無限蔓延。保持規律的作息和運動秋招期間很容易熬夜復習、暴飲暴食但作息紊亂會讓焦慮加倍。每天至少保證7小時睡眠每周做3次運動哪怕是跑跑步對穩定情緒非常有幫助。6.3 復盤系統每次面試結束后的30分鐘比面試本身更重要最后想重點講講面試復盤這是我認為整個秋招中最核心的方法論也是不進則退最好的反義詞每一次面試后如果能快速從失敗中提取經驗那你就不是退而是往前走了半步。我自己的復盤流程是這樣的面試結束后立刻找一個安靜的地方花30分鐘回答這四個問題自我介紹和項目介紹是否流暢有沒有卡殼面試官問了哪些問題每個問題我是否有完整的答題框架哪些問題沒答好卡在哪里了是知識盲區還是表達問題如果明天再面一次我在哪個點上可以做至少10%的改進然后當天晚上把這道題的相關知識整理進知識庫。比如面試官問了我HTTP/2的多路復用和HTTP/1.1的隊頭阻塞我當天晚上就會把HTTP/1.1、HTTP/2、HTTP/3的協議演進、多路復用的實現細節、隊頭阻塞產生的原因和解決辦法全部過一遍并寫成一個結構化筆記。為什么要堅持這樣做因為面試是最高效的查漏補缺方式。你花一個月的思考整理的面試題可能面一次試就被精準暴露出來了。如果每次面試后30分鐘的復盤總結能夠被嚴格執行你會發現自己的面試能力在快速拉升——第一場面試可能只能撐25分鐘就被問倒第五場面試可能就能撐到50分鐘到了第十場你已經能主動把控面試節奏了。這個進步的曲線就是對抗不進則退的實際證明。最后再分享一個小技巧秋招結束后回頭看我最大的感悟有兩點第一大廠面經最核心的價值不是讓你背熟答案而是讓你看清面試官考察的邏輯第二不要把求職過程當成被打分的過程而要把每次面試當成一次免費的技術診斷和行業交流——這樣心態會穩很多表達也會放松不少。最后分享一個我長期使用的小技巧把面試官問過但你答得不好的問題專門整理一個痛點清單每周五晚上翻一遍看看這周有哪些痛點已經變成必須會的常識。一周一周下來你會發現這份清單越來越短而你面對下一場面試的信心會越來越足。秋招很難但扛過去以后回頭看你會感謝那個不斷把退轉化為進的自己。