你們好,我是魚皮,最近秋招快到了,我就想着給你們找一些優秀的程序員面經分享。但願能夠幫助準備求職的同窗更穩地上岸,同時幫助學編程的小夥伴們更好地明確學習路線和方法。php
今天要分享的呢,是一位 雙非非科班 同窗小黑的勵志故事,我也會補充一些我的見解,錦上添花。css
蕪湖起飛!前端
面經已獲得原做者受權vue
做者:牛客 Matthew_blacknode
你們好,我是小黑,雙非非科班出身,大四下才開始自學計算機,畢業後在 4399 作前端,base 廣州。react
說是作前端,其實我乾的事情很是雜,常常要本身寫後端接口和數據庫,部門經理也打算讓我走後端的路,因此滿一年後,我打算找下家專一前端。jquery
魚皮:雙非非科班,大四纔開始自學計算機,就找到了一份前端工做,說明確定是下了很大功夫的。而在工做以後,依然能夠堅持本身的學習方向,有明確的目標,這點難能難得。webpack
校招簡歷能夠不帶項目或者實習,有的公司甚至 985 科班就能夠進,但社招相對比較側重技術和業務維度,若是你是業務巨人,也能夠彌補技術的不足,考量的維度會比校招更多維。所以簡歷做爲第一關,是相當重要的一環,在開始求職前先好好準備一份簡歷吧~git
魚皮:對於名校同窗來講,校招簡歷也許能夠沒項目或實習經歷。但對於更多普通學校的同窗,建議你們多作項目、儘早去找實習,不然簡歷上根本沒有亮點!分享下我本身的寫簡歷技巧和模板,公衆號【程序員魚皮】後臺回覆 」簡歷「 獲取。程序員
算法主要就是刷 LeetCode,能夠不會寫 Middle 題,但不能沒有經常使用算法的思惟。面試季讓本身保持算法的思惟很是重要,不止體如今寫算法題上,在和麪試官交流到一些源碼思想的時候也能夠幫助本身更流利地表達和講述。
樓主的複習思路(菜雞的思路)是好記性不如爛筆頭,一道題 7 天以內必定要再寫一次,纔不會被遺忘曲線影響。對於一些較難理解的常考題目,建議多寫幾回記住思路。寫題目時不必定要在一道題上死磕,作不出來就多看看相似題目,學學算法思想、理清思路再作,必定要找到作題的感受。
小黑同窗也提到了,好記性不如爛筆頭,學算法必定要多寫,不只寫代碼,還能夠寫題解,有助於本身強化記憶和複習。
關於我學算法的方法,能夠閱讀這篇文章:刷了 1000 多道算法題,一點心得
由於主要的求職目標是前端,因此複習前端爲主,但也複習了部分後端的知識。
前端:計網( http、tcp、響應頭請求頭等),前端三劍客(HTML、CSS、JavaScript),Vue 框架(源碼),Webpack(常見優化思路),微前端(架構及發展趨勢),node(Koa 框架),設計模式(主要是 MVVM 和 MVC)。
後端:數據庫,Redis,Linux 系統,Nginx 等。
再擼幾十篇牛客面經,就萬事俱備了。
複習的資料和時間安排以下:
四月的時候側重基礎,查漏補缺,直接找總結好的博客或者 Github 項目,推薦我男朋友(不是)的日記:
他的博客總結的很齊全,分類也很完善,複習基礎的時候基本天天看個四五個小時,對於我這種基礎不紮實的菜雞很是友好,建議你們去看看。
五月份的複習側重框架和業務優化,組織了幾場模擬面試,發現本身對 Vue 徹底不熟練,因此把 Vue 文檔和源碼分析從頭至尾 看了幾遍 ,漸漸理解了一些面試官的問題。
對於業務優化方面,要總結好本身在平常業務遇到的坑和優化點,如優化了首屏加載。能夠從多個維度去講,組織語言的時候儘可能從各點出發,不要雜糅成一團,不然即便說對了也會讓面試官以爲你思路很亂。
五月的時間我基本用來複習框架和看一些進階的常考點如 ES6 和 Webpack 等,而算法是貫穿整個求職週期的,因此在這個月也簡單複習下。
Vue 源碼分析:vue-js.com/learn-vue/
更細的知識點以前收藏了一篇大佬寫的文章,上中篇基本涵蓋了所有前端 Js 知識點,給有興趣的同窗指路:
複習小點總結:
魚皮認爲這是一個很是好的複習路線。先打基礎,再由淺入深地看框架,而且結合項目和工做實踐去分析框架(中間件)的做用,在整個過程當中持續複習算法、閱讀面經。
對於想學習前端的朋友,也推薦看看我梳理的 前端學習路線,幫助你快速瞭解前端的重點知識。
看一些好書能幫助理清一些枯燥的知識點,好比計網和 JS 一些概念性的東西(做用域等),這裏推幾本好書,在面試季前能夠多翻翻,有助於複習理解:
《你所不知道的 JS 上中下卷》
推薦理由:挺不錯的一本書,把js口語化,語言風格詼諧,示例更多,更易理解
《JavaScript 高級程序設計》(也叫紅寶書)
推薦理由:入門級的教科書,新手菜雞常備
《Tcp / Ip 協議簇》
推薦理由:被大佬安利的一本好書,把 Tcp 握手和揮手描述的特別細,若是你在面試時也能夠這麼描述,也許能博得面試官丟丟好感。
《深刻淺出 Node》
推薦理由:Node 文檔仍是偏運用層面,有用到纔去查,生啃有點吃力,因此能夠經過這本書入門。
《深刻淺出 Webpack》(暫未開卷,打算近期啓動)
《ES6 入門教程》
推薦理由:阮老師著做,看就完了,很少述
另外的,本身還找了一些課程來看,偏向計網的一些課程,如 B 站一些老師的網課,講的也很不錯。
指路:www.bilibili.com/video/BV1c4…
這幾 P 幫我在百度二面講網絡的時候幫了很大的忙,面試官也比較滿意這一點。
魚皮:都是前端方向比較經典的書籍,在編程導航(www.code-nav.cn)能夠免費下載。
接下來是我參與的幾輪大廠面試的經驗分享,包括騰訊、阿里、百度。
我當時正處於剛開始複習的階段,雖然問的東西很是簡單,但真的被虐的很慘 ==
自我介紹
介紹一個滿意的項目,亮點(模塊化思想)
react會嗎(答不會,沒學過)
其餘技術棧(react,angularJs,jquery,vue3掌握狀況)
vue掌握程度(答掌握工具,知悉其中一兩個)
vuex介紹,工做原理(答得很差,複習的很少)
eventBus介紹,和vuex對比,優缺點
若是沒有vuex,會有什麼問題?(組件傳值;避免頻繁請求)
後臺頻繁請求有壓力,有什麼方法能夠避免?
回答:1. 防抖,限流 2. 本地緩存或 sessionStorage
又問:不能用緩存保存有什麼方法?答:Node 中間件,不接受請求
又問:沒有 vuex 怎麼緩存?答:那使用全局變量?
又問:必定要使用全局變量麼? 答:否,但不知道還有啥。。。
組件傳值方式(8 種,詳見朝陽日記)
EventBus 介紹,使用業務場景,和 vuex 對比,優缺點,對 EventBus 熟悉嗎?(答:不熟,這部分挺致命,摳得很細)
子組件如何修改父組件的值(經過 v-model 或者 $emit)
不能用 v-model(等同於問 v-model 實現原理)
v-model: 語法糖,本質是雙向綁定,@input(onInput事件)
vue的雙向綁定缺點,defineProperties缺點(順便答了vue3優化)
vue3瞭解嗎(不瞭解,還沒開始學)爲何是用.value讀值
跨域常見緣由,同源策略做用,沒有跨域會作什麼(答了XSS攻擊,CSRF攻擊會更容易)
XSS 攻擊和 CSRF 攻擊
爲何說CSRF攻擊是利用網頁利用瀏覽器信任?
答 cookie,面試官不滿意,還有別的嗎?答了同個域,回到跨域,同源信任,感受仍是不對
跨域方式(JSONP,設置請求頭)
JSONP缺點
設置多個跨域請求頭的方法(數組) 回到前端響應頭是以什麼樣的形式(答了源,面試官說大致沒錯)
前端到後端請求的詳細過程(301,302,304…)
options預檢請求做用(白給…徹底不熟悉)
函數式編程與面向對象的區別,優缺點(再次白給…)
閉包是函數式編程嗎?(是)
補充項目(多線程壓縮gif,web worker)
避免二次請求,once函數(答了防抖和http2.0限制進程,面試官說沒到後者那麼深)
反問評價(面試官答他們技術棧用的是react,vue用的較少,評價候選人vue基礎並不深,須要好好鞏固,不過只有一年經驗也足夠,要好好沉澱)
面試結果可想而知,幾天後顯示掛了,收到感謝信。
魚皮:能把面試的題目和本身的回答記錄的那麼詳細清楚,說明是面試完馬上覆盤了,這是一個很好的習慣,面試完後必定要積極總結,每一輪的問題都有可能在以後的面試中再次遇到。
面試官居然就是個人內推人,仍是部門 Leader,感受氣場很強,不過仍是專一撕逼,沒被鎮住。
自我介紹
瘋狂問公司項目和業務,你遇到過的問題,怎麼提高運營留存率balabala(撕了半小時業務)
壓測過機器嗎,大概讀或者寫是多少(答十幾萬,讀寫綜合)
實現累充充值接口的思路,如何保證明時性?
看你項目寫了 vue,問點 vue 吧(終於正常問了),v-if 和 v-show 的區別(就這,沒了)
osi 七層模型(面試前沒看,面試官嘲笑我是否是忘了)
webpack
公司架構如何?
公司數據庫如何部署的?(分佈式部署,一臺作源機作映射)
反問(業務,架構)
整個面試體驗不好,感受全程在套方案,不像面試,也許這就是大佬的面試吧。面試結束後,面試官和我說會再找一個候選人橫向對比(指養魚),6 月 7 日下午收到二面通知,於 6 月 8 日晚上二面。
在羣裏認識一個網盤小夥伴,說正好網盤在擴招,叫我去試試,不得不說,百度的招聘系統雖然不是很 nice(常常被一些 hr 實習生亂推),但面試體驗是很是好的,和麪試官也聊得很來,點個贊!
自我介紹
在學校自學了什麼課程?數據結構講幾個?棧和隊列的區別
css 垂直居中
flex 佈局
grid 佈局
移動端佈局,移動端適配
介紹下 ES6(自嗨了十幾分鍾,講了weakMap weakSet,promise等等)
promise 源碼介紹,面試官很自豪的說其實我寫過
學習方式,看什麼書(balabala),紅寶書好看嗎,講下感覺
項目難題
文件斷點續傳思路
node、koa 框架,開始撕業務
反問
一面聊的比較隨心,面試官對個人項目比較感興趣,也和我溝通了一些業務,面試體驗挺好,更像技術交流而不是面試。
魚皮:這輪面試就是典型的一面風格,側重基礎知識的考察,也會問一些業務場景問題,因此基礎仍是要打好。
看了別的小夥伴的面經,覺得二面偏業務,沒想到被背刺了(哭哭)。
自我介紹
狀態碼 304怎麼作 Cache-control有幾個屬性?
tcp與udp區別
tcp如何保證數據穩定?(講了三次握手,滑動窗口,慢開始,擁塞控制,超時重傳,快重傳)
cdn原理,cdn回源怎麼作(一臉懵逼,由於cdn我司分給了運維層作)
掃碼登陸怎麼作,手機端和PC端都要創建長鏈接嗎?
sso單點登陸
小程序作過嗎(大學時作過),和h5區別在哪裏,爲何沒有dom操做,js加載和頁面同時進行嗎?
webpack 介紹下tree-shaking css-treeshaking plugin和loader區別,手寫過plugin嗎?
進程與線程區別,線程間通訊方式
流的概念,node stream流
如何用node讀取20g文件
node和php的區別
vue-if與v-show
vue的模板渲染(源碼)
父子組件的掛載
公司項目亮點(答了前端共享進程池)
什麼時候能來上班?對新公司有什麼期待?
反問環節
毫無疑問,這一仗被打的遍體鱗傷,雖然二面過了,可是一些原理性的東西面試官挖的很深,業務場景題也沒少問,看來仍是要好好讀術~
面試的時候環境很嘈雜,有幾回沒聽清面試官講了什麼,當時家裏網絡也不是很穩定,但總歸聊的還行,涉及一些開放性的論述題目,這個自由發揮,合理真實便可。
自我介紹
描述下你的優缺點
描述下你作過最難的項目思路
爲何想跳槽?
技術棧不一樣,有想太重構嗎?難點在哪?
對本身的團隊定位
遇到的業務溝通問題有什麼解決方案
假如你要從百度離開,你想獲得什麼技能
職業規劃
理想的新公司資源
如何造成自有體系的業務方法論
對百度網盤產品有什麼使用建議?
對加班的見解
反問(部門架構,技術分享週期,帶團隊的方法)
和部門經理聊了會,發現部門經理是比較看重我的職業發展的,整個部門是偏技術交流多一點,技術氛圍很是濃厚,用人也會如千里馬,此刻個人心只想爲百度跳動。
主要是瞭解一些我的資料、年薪待遇,以及去北京的意向等等,比較常規。
6 月 7 日晚上,收到了百度 offer call,同期還有阿里在面因此 argue 了下薪資,大機率是去北京百度了(鄉下人進城),小菜雞的第一次社招之旅到此畫上句號。分享好運,祝各位秋招順利!
以上就是小黑同窗的分享,雙非非科班,自學半年找到前端 4399 公司工做,工做 1 年就獲得了多家大廠的面試機會,而且順利拿到百度 offer。這些經歷看似行雲流水,但從他的面經以及我和他後續的交流中,我發現小黑有不少優秀的特質,好比:
雖然進大廠也講究天時地利人和,但正如我所說的,運氣也是實力的一部分,小黑同窗正是經過努力才一步步走到風口浪尖,而後順勢而爲、主動出擊,纔拿到了使人心動的 offer。瑞思拜!
最後再送你們一些 幫助我拿到大廠 offer 的學習資料:
歡迎閱讀 我從 0 自學進入騰訊的編程學習、求職、考證、寫書經歷,再也不迷茫!
我是魚皮,以爲本文不錯的話,但願朋友們能 點贊 支持下 ❤️