雙非同學,自學編程,畢業(yè)一年逆襲百度!
大家好,我是魚皮,最近秋招快到了,我就想著給大家找一些優(yōu)秀的程序員面經分享。希望可以幫助準備求職的同學更穩(wěn)地上岸,同時幫助學編程的小伙伴們更好地明確學習路線和方法。
今天要分享的呢,是一位 雙非非科班 同學小黑的勵志故事,我也會補充一些個人看法,錦上添花。
蕪湖起飛!

面經已得到原作者授權
作者:???Matthew_black
背景
大家好,我是小黑,雙非非科班出身,大四下才開始自學計算機,畢業(yè)后在 4399 做前端,base 廣州。
說是做前端,其實我干的事情非常雜,經常要自己寫后端接口和數(shù)據(jù)庫,部門經理也打算讓我走后端的路,所以滿一年后,我打算找下家專注前端。
魚皮:雙非非科班,大四才開始自學計算機,就找到了一份前端工作,說明肯定是下了很大功夫的。而在工作之后,依然可以堅持自己的學習方向,有明確的目標,這點難能可貴。
面試前的準備
1. 簡歷
校招簡歷可以不帶項目或者實習,有的公司甚至 985 科班就可以進,但社招相對比較側重技術和業(yè)務維度,如果你是業(yè)務巨人,也可以彌補技術的不足,考量的維度會比校招更多維。因此簡歷作為第一關,是至關重要的一環(huán),在開始求職前先好好準備一份簡歷吧~
魚皮:對于名校同學來說,校招簡歷也許可以沒項目或實習經歷。但對于更多普通學校的同學,建議大家多做項目、盡早去找實習,否則簡歷上根本沒有亮點!分享下我自己的寫簡歷技巧和模板,公眾號【程序員魚皮】后臺回復 ”簡歷“ 獲取。
2. 算法
算法主要就是刷 LeetCode,可以不會寫 Middle 題,但不能沒有常用算法的思維。面試季讓自己保持算法的思維非常重要,不止體現(xiàn)在寫算法題上,在和面試官交流到一些源碼思想的時候也可以幫助自己更流利地表達和講述。
樓主的復習思路(菜雞的思路)是好記性不如爛筆頭,一道題 7 天之內一定要再寫一次,才不會被遺忘曲線影響。對于一些較難理解的??碱}目,建議多寫幾次記住思路。寫題目時不一定要在一道題上死磕,做不出來就多看看類似題目,學學算法思想、理清思路再做,一定要找到做題的感覺。

小黑同學也提到了,好記性不如爛筆頭,學算法一定要多寫,不僅寫代碼,還可以寫題解,有助于自己強化記憶和復習。
關于我學算法的方法,可以閱讀這篇文章:刷了 1000 多道算法題,一點心得
3. 復習準備
因為主要的求職目標是前端,所以復習前端為主,但也復習了部分后端的知識。
前端:計網( http、tcp、響應頭請求頭等),前端三劍客(HTML、CSS、JavaScript),Vue 框架(源碼),Webpack(常見優(yōu)化思路),微前端(架構及發(fā)展趨勢),node(Koa 框架),設計模式(主要是 MVVM 和 MVC)。
后端:數(shù)據(jù)庫,Redis,Linux 系統(tǒng),Nginx 等。
再擼幾十篇??兔娼洠腿f事俱備了。
復習的資料和時間安排如下:
第一階段
四月的時候側重基礎,查漏補缺,直接找總結好的博客或者 Github 項目,推薦我男友(不是)的日記:
指路:https://github.com/WindrunnerMax/EveryDay

他的博客總結的很齊全,分類也很完善,復習基礎的時候基本每天看個四五個小時,對于我這種基礎不扎實的菜雞非常友好,建議大家去看看。
第二階段
五月份的復習側重框架和業(yè)務優(yōu)化,組織了幾場模擬面試,發(fā)現(xiàn)自己對 Vue 完全不熟練,所以把 Vue 文檔和源碼分析從頭到尾 看了幾遍 ,漸漸理解了一些面試官的問題。
對于業(yè)務優(yōu)化方面,要總結好自己在日常業(yè)務遇到的坑和優(yōu)化點,如優(yōu)化了首屏加載??梢詮亩鄠€維度去講,組織語言的時候盡量從各點出發(fā),不要雜糅成一團,否則即使說對了也會讓面試官覺得你思路很亂。
五月的時間我基本用來復習框架和看一些進階的??键c如 ES6 和 Webpack 等,而算法是貫穿整個求職周期的,所以在這個月也簡單復習下。
Vue 源碼分析:https://vue-js.com/learn-vue/
更細的知識點之前收藏了一篇大佬寫的文章,上中篇基本涵蓋了全部前端 Js 知識點,給有興趣的同學指路:
復習小點總結:
上:https://juejin.cn/post/6844903776512393224
中:https://juejin.cn/post/6844903801153945608
魚皮認為這是一個非常好的復習路線。先打基礎,再由淺入深地看框架,并且結合項目和工作實踐去分析框架(中間件)的作用,在整個過程中持續(xù)復習算法、閱讀面經。
對于想學習前端的朋友,也推薦看看我梳理的 前端學習路線,幫助你快速了解前端的重點知識。
4. 好書推薦
看一些好書能幫助理清一些枯燥的知識點,比如計網和 JS 一些概念性的東西(作用域等),這里推幾本好書,在面試季前可以多翻翻,有助于復習理解:
《你所不知道的 JS 上中下卷》
推薦理由:挺不錯的一本書,把js口語化,語言風格詼諧,示例更多,更易理解

《JavaScript 高級程序設計》(也叫紅寶書)
推薦理由:入門級的教科書,新手菜雞常備

《Tcp / Ip 協(xié)議簇》
推薦理由:被大佬安利的一本好書,把 Tcp 握手和揮手描述的特別細,如果你在面試時也可以這么描述,也許能博得面試官丟丟好感。
《深入淺出 Node》
推薦理由:Node 文檔還是偏運用層面,有用到才去查,生啃有點吃力,所以可以通過這本書入門。
《深入淺出 Webpack》(暫未開卷,打算近期啟動)
《ES6 入門教程》
推薦理由:阮老師著作,看就完了,不多述

另外的,自己還找了一些課程來看,偏向計網的一些課程,如 B 站一些老師的網課,講的也很不錯。
指路:https://www.bilibili.com/video/BV1c4411d7jb
這幾 P 幫我在百度二面講網絡的時候幫了很大的忙,面試官也比較滿意這一點。
魚皮:都是前端方向比較經典的書籍,在編程導航(https://www.code-nav.cn)可以免費下載。
接下來是我參與的幾輪大廠面試的經驗分享,包括騰訊、阿里、百度。
騰訊云面經(base西安)
1. 一面
我當時正處于剛開始復習的階段,雖然問的東西非常簡單,但真的被虐的很慘 ==
自我介紹
介紹一個滿意的項目,亮點(模塊化思想)
react會嗎(答不會,沒學過)
其他技術棧(react,angularJs,jquery,vue3掌握情況)
vue掌握程度(答掌握工具,知悉其中一兩個)
vuex介紹,工作原理(答得不好,復習的不多)
eventBus介紹,和vuex對比,優(yōu)缺點
如果沒有vuex,會有什么問題?(組件傳值;避免頻繁請求)
后臺頻繁請求有壓力,有什么方法可以避免?
回答:1. 防抖,限流 2. 本地緩存或 sessionStorage
又問:不能用緩存保存有什么方法?答:Node 中間件,不接受請求
又問:沒有 vuex 怎么緩存?答:那使用全局變量?
又問:一定要使用全局變量么? 答:否,但不知道還有啥。。。
組件傳值方式(8 種,詳見朝陽日記)
EventBus 介紹,使用業(yè)務場景,和 vuex 對比,優(yōu)缺點,對 EventBus 熟悉嗎?(答:不熟,這部分挺致命,摳得很細)
子組件如何修改父組件的值(通過 v-model 或者 $emit)
不能用 v-model(等同于問 v-model 實現(xiàn)原理)
v-model: 語法糖,本質是雙向綁定,@input(onInput事件)
vue的雙向綁定缺點,defineProperties缺點(順便答了vue3優(yōu)化)
vue3了解嗎(不了解,還沒開始學)為什么是用.value讀值
跨域常見原因,同源策略作用,沒有跨域會做什么(答了XSS攻擊,CSRF攻擊會更容易)
XSS 攻擊和 CSRF 攻擊
為什么說CSRF攻擊是利用網頁利用瀏覽器信任?
答 cookie,面試官不滿意,還有別的嗎?答了同個域,回到跨域,同源信任,感覺還是不對
跨域方式(JSONP,設置請求頭)
JSONP缺點
設置多個跨域請求頭的方法(數(shù)組) 回到前端響應頭是以什么樣的形式(答了源,面試官說大體沒錯)
前端到后端請求的詳細過程(301,302,304…)
options預檢請求作用(白給…完全不熟悉)
函數(shù)式編程與面向對象的區(qū)別,優(yōu)缺點(再次白給…)
閉包是函數(shù)式編程嗎?(是)
補充項目(多線程壓縮gif,web worker)
避免二次請求,once函數(shù)(答了防抖和http2.0限制進程,面試官說沒到后者那么深)
反問評價(面試官答他們技術棧用的是react,vue用的較少,評價候選人vue基礎并不深,需要好好鞏固,不過只有一年經驗也足夠,要好好沉淀)
面試結果可想而知,幾天后顯示掛了,收到感謝信。
魚皮:能把面試的題目和自己的回答記錄的那么詳細清楚,說明是面試完立刻復盤了,這是一個很好的習慣,面試完后一定要積極總結,每一輪的問題都有可能在之后的面試中再次遇到。
阿里 - 創(chuàng)新事業(yè)群 UC 事業(yè)部面經
1. 一面 Leader 面
面試官竟然就是我的內推人,還是部門 Leader,感覺氣場很強,不過還是專注撕逼,沒被鎮(zhèn)住。
自我介紹
瘋狂問公司項目和業(yè)務,你遇到過的問題,怎么提升運營留存率balabala(撕了半小時業(yè)務)
壓測過機器嗎,大概讀或者寫是多少(答十幾萬,讀寫綜合)
實現(xiàn)累充充值接口的思路,如何保證實時性?
看你項目寫了 vue,問點 vue 吧(終于正常問了),v-if 和 v-show 的區(qū)別(就這,沒了)
osi 七層模型(面試前沒看,面試官嘲笑我是不是忘了)
webpack
公司架構如何?
公司數(shù)據(jù)庫如何部署的?(分布式部署,一臺做源機做映射)
反問(業(yè)務,架構)
整個面試體驗很差,感覺全程在套方案,不像面試,也許這就是大佬的面試吧。面試結束后,面試官和我說會再找一個候選人橫向對比(指養(yǎng)魚),6 月 7 日下午收到二面通知,于 6 月 8 日晚上二面。
百度 - 百度網盤事業(yè)部面經
在群里認識一個網盤小伙伴,說正好網盤在擴招,叫我去試試,不得不說,百度的招聘系統(tǒng)雖然不是很 nice(經常被一些 hr 實習生亂推),但面試體驗是非常好的,和面試官也聊得很來,點個贊!
一面 mentor 面
自我介紹
在學校自學了什么課程?數(shù)據(jù)結構講幾個?棧和隊列的區(qū)別
css 垂直居中
flex 布局
grid 布局
移動端布局,移動端適配
介紹下 ES6(自嗨了十幾分鐘,講了weakMap weakSet,promise等等)
promise 源碼介紹,面試官很自豪的說其實我寫過
學習方式,看什么書(balabala),紅寶書好看嗎,講下感受
項目難題
文件斷點續(xù)傳思路
node、koa 框架,開始撕業(yè)務
反問
一面聊的比較隨心,面試官對我的項目比較感興趣,也和我溝通了一些業(yè)務,面試體驗挺好,更像技術交流而不是面試。
魚皮:這輪面試就是典型的一面風格,側重基礎知識的考察,也會問一些業(yè)務場景問題,所以基礎還是要打好。
二面 商務運營部長面
看了別的小伙伴的面經,以為二面偏業(yè)務,沒想到被背刺了(哭哭)。
自我介紹
狀態(tài)碼 304怎么做 Cache-control有幾個屬性?
tcp與udp區(qū)別
tcp如何保證數(shù)據(jù)穩(wěn)定?(講了三次握手,滑動窗口,慢開始,擁塞控制,超時重傳,快重傳)
cdn原理,cdn回源怎么做(一臉懵逼,因為cdn我司分給了運維層做)
掃碼登錄怎么做,手機端和PC端都要建立長連接嗎?
sso單點登錄
小程序做過嗎(大學時做過),和h5區(qū)別在哪里,為什么沒有dom操作,js加載和頁面同時進行嗎?
webpack 介紹下tree-shaking css-treeshaking plugin和loader區(qū)別,手寫過plugin嗎?
進程與線程區(qū)別,線程間通信方式
流的概念,node stream流
如何用node讀取20g文件
node和php的區(qū)別
vue-if與v-show
vue的模板渲染(源碼)
父子組件的掛載
公司項目亮點(答了前端共享進程池)
何時能來上班?對新公司有什么期待?
反問環(huán)節(jié)
毫無疑問,這一仗被打的遍體鱗傷,雖然二面過了,但是一些原理性的東西面試官挖的很深,業(yè)務場景題也沒少問,看來還是要好好讀術~

三面 部門經理面
面試的時候環(huán)境很嘈雜,有幾次沒聽清面試官講了什么,當時家里網絡也不是很穩(wěn)定,但總歸聊的還行,涉及一些開放性的論述題目,這個自由發(fā)揮,合理真實即可。
自我介紹
描述下你的優(yōu)缺點
描述下你做過最難的項目思路
為什么想跳槽?
技術棧不同,有想過重構嗎?難點在哪?
對自己的團隊定位
遇到的業(yè)務溝通問題有什么解決方案
假如你要從百度離開,你想得到什么技能
職業(yè)規(guī)劃
理想的新公司資源
如何形成自有體系的業(yè)務方法論
對百度網盤產品有什么使用建議?
對加班的看法
反問(部門架構,技術分享周期,帶團隊的方法)
和部門經理聊了會,發(fā)現(xiàn)部門經理是比較看重個人職業(yè)發(fā)展的,整個部門是偏技術交流多一點,技術氛圍非常濃厚,用人也會如千里馬,此刻我的心只想為百度跳動。

四面 hr 面
主要是了解一些個人資料、年薪待遇,以及去北京的意向等等,比較常規(guī)。
戰(zhàn)果
6 月 7 日晚上,收到了百度 offer call,同期還有阿里在面所以 argue 了下薪資,大概率是去北京百度了(鄉(xiāng)下人進城),小菜雞的第一次社招之旅到此畫上句號。分享好運,祝各位秋招順利!
以上就是小黑同學的分享,雙非非科班,自學半年找到前端 4399 公司工作,工作 1 年就得到了多家大廠的面試機會,并且順利拿到百度 offer。這些經歷看似行云流水,但從他的面經以及我和他后續(xù)的交流中,我發(fā)現(xiàn)小黑有很多優(yōu)秀的特質,比如:
有明確的目標和規(guī)劃
善于自主學習,懂得利用優(yōu)秀資源
懂得復盤總結
努力,堅信勤能補拙
有信念,工作之后依然持續(xù)學習
懂得把握機會,在合適的時間迅速出擊

雖然進大廠也講究天時地利人和,但正如我所說的,運氣也是實力的一部分,小黑同學正是通過努力才一步步走到風口浪尖,然后順勢而為、主動出擊,才拿到了令人心動的 offer。瑞思拜!

最后再送大家一些 幫助我拿到大廠 offer 的學習資料:
指路:https://t.1yb.co/qOJG
歡迎閱讀 我從 0 自學進入騰訊的編程學習、實習、求職、考證、寫書經歷,不再迷茫!
指路:https://t.1yb.co/w66s
我是魚皮,覺得本文不錯的話,希望朋友們能 點贊 支持下 ??
