大廠面試過程復盤(微信/阿里/頭條,附答案篇)

2021-02-21 拿OFFER
背景

本人前端,3年經驗,由於個人的原因,決定跳槽,於是大概3月開始找工作,總歷時大概2個月,面試了微信/阿里/頭條,三家都拿到了offer,來分享一下面經。

問題比較多,而且很多面試題都是跟個人項目相關的,項目相關的問題借鑑意義不大,所以這裡總結一些與項目無絕對關係的問題,歡迎圍觀~

整體流程

這裡,我梳理了一些自己的心得,先放個思維導圖。

微信筆試數組交集,編寫一個函數,輸入兩個數組,輸出它們的交集。輸出數組中不含重複的元素,元素排列順序可隨意。

原題地址:https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/

二叉樹的搜索,輸入一個普通二叉樹的根節點,實現一個調度器,調用調度器的next()方法,將返回二叉樹中下一個最小的數;調用迭代器的hasNext()方法,將返回是否存在下一個數。二叉樹節點是整數,無序。

原題地址:https://leetcode-cn.com/problems/binary-search-tree-iterator/

三角形個數,輸入一個非負整數的數組,如果將數組元素選作三角形的邊長,編寫一個函數,輸出這個數組可構成的三角形數量。

原題地址:https://leetcode-cn.com/problems/valid-triangle-number/

數組切分問題,輸入一個正序排列的整型數組,如果它可以被切分為1個或多個子序列,輸出True,反之False。子序列需為連續的整型數組,並且長度至少為3。
例1:
輸入: [1,2,3,3,4,5]
輸出:True
解釋:可以切分為2個各自連續的子序列:
1, 2, 3
3, 4, 5
例2:
輸入: [1,2,3,3,4,4,5,5]
輸出:True
解釋:可以切分為2個各自連續的子序列:
1, 2, 3, 4, 5
3, 4, 5
例3:
輸入: [1,2,3,4,4,5]
輸出:False
解釋:無法切分出長度至少為3的子序列。

原題地址:https://leetcode-cn.com/problems/split-array-into-consecutive-subsequences/

一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法.
function test(a,b) {
  console.log(b)
  return {
    test:function(c){
      return test(c,a);
    }
  };
}

var retA = test(0);  
retA.test(2);  
retA.test(4);  
retA.test(8);
var retB = test(0).test(2).test(4).test(8);
var retC = test('good').test('bad');  
retC.test('good');  
retC.test('bad');

原題地址:https://leetcode-cn.com/problems/kth-largest-element-in-an-array/

for (var i = 0; i < 4; i++) {
  setTimeout(function() {
    console.log(i);
  }, 300);
}

PS:一面筆試要求是30分鐘,前4道算法題,二面筆試題是15分鐘

與項目關係不大的問答題節流防抖(實現/場景/源碼,如lodash實現原理)(https://www.cnblogs.com/LuckyWinty/p/5949970.html#4564734)事件循環(瀏覽器/node/版本差異)(https://mp.weixin.qq.com/s/QgfE5Km1xiEkQqADMLmj-Q)setTimeout 實現原理(https://mp.weixin.qq.com/s/7qTRSMqaqG8XZ9rpEBhYNQ)Promise 原理(https://juejin.im/post/5d6f7c83e51d4561c541a712)前端錯誤監控及容災(https://mp.weixin.qq.com/s/prf-mXexBh1Ie-ctq9FnzA)性能優化(https://mp.weixin.qq.com/s/qXFd3f7CkEzz4u_1zl-TSw、https://mp.weixin.qq.com/s/dy1u2g9TeCoq2WOdPLqAXw、https://mp.weixin.qq.com/s/DJ8Fdq1_cIoW0_NYekZwFw、https://mp.weixin.qq.com/s/azeUIx0EA86EFQrtIRUKwQ、https://mp.weixin.qq.com/s/wDKKj5R8SYm-_75Zn1y30A、https://mp.weixin.qq.com/s/BOdnCYbMQfmCpUC3w3KZqw、https://mp.weixin.qq.com/s/FdG7uVIDXltNyskL3qh8Cw、太多了,貼不過來了,自己再總結吧)談談 node 的內存洩漏(我的總結暫時沒時間寫,可以看看這篇,https://zhuanlan.zhihu.com/p/25736931)開發過程中遇到的最大挑戰是什麼(梳理項目,得出難點)學習的動力怎麼來的,如何維持(有興趣可以留意一下我的直播)瀏覽器的渲染機制是怎樣的(https://mp.weixin.qq.com/s/wcw30EUb2ds3AoW176WGeg)SSR 作用及優缺點(seo/首屏快/開發成本高等,我項目用的是vue ssr,沒專門總結,可以先看這個,https://zhuanlan.zhihu.com/p/35871344)webpack 及瀏覽器的技術分享目的是什麼,分享了什麼,怎麼做的分享(https://mp.weixin.qq.com/s/1FySzmVrNjS6wjgqALC96g、https://mp.weixin.qq.com/s/wcw30EUb2ds3AoW176WGeg)如何進行項目重構(知乎很多討論,直接去參考就可以了,或者看看這個https://www.itzhai.com/refactoring/refactoring-principle.html)進程與線程的區別(https://www.zhihu.com/question/25532384)CI/CD(https://mp.weixin.qq.com/s/MbeW8UNZ1fPekWcaNqmsCQ)

PS:由於面試全過程歷時比較長,一些題目已經忘記了。大概記得這麼點,然後很看項目,每一輪都詳細問了項目~

可能感興趣的問答

我本人一共 4 輪技術面 + 1 輪HR面。目前微信職級為9級以下的技術崗不用經過面委,9級以下的一般4輪技術面,內部轉崗可3輪技術面,9級及以上的需要走面委面試,大概形式是做份ppt去講自己的項目經歷及其他技術項。9級及以上的就5-10輪技術面不等。

我本人總歷時一個多月(相對來說算很快了),所以如果你要面騰訊,千萬不要裸辭,不對,面什麼都不要裸辭,這年頭不好混,慫一點。

內推->一面->二面->三面->四面->HR面->口頭offer->正式offer->背調->入職

每個階段耗時一到兩周的時間

目前微信總部在廣州,大部分的組都在廣州,其中微信支付在深圳。

多,基本上就是算法+項目

阿里筆試n階樓梯問題(尾遞歸的優化[函數最後調用自身可以減少中間變量|化遞歸為循環去優化]/備忘錄優化)節流防抖的實現(分析筆試答案時問到,總結差別,說出應用場景)(https://www.cnblogs.com/LuckyWinty/p/5949970.html#4564734)深拷貝(類型考慮/Symbol/Date等的構造/循環優化/共用引用優化等),這裡貼2篇文章給大家參考,https://juejin.im/post/5d6aa4f96fb9a06b112ad5b1,https://mp.weixin.qq.com/s/M7KBX3w2KqlWhZFHJSYP6Q)問答題輸入URL後發生了什麼(https://mp.weixin.qq.com/s/DLq_GIkdnuOayThfi3jI0A)事件循環說一下(https://mp.weixin.qq.com/s/QgfE5Km1xiEkQqADMLmj-Q)JS有幾種基本類型,分別是什麼,與對象的區別(不貼連結了,我認為是前端的都應該知道)JS 執行過程中是如何保存上下文的(堆和棧,可以看極客時間的《瀏覽器工作原理》,或者參考我這裡,https://mp.weixin.qq.com/s/klZ6j3Gj9cwHGQFys6Hdjg、https://mp.weixin.qq.com/s/HqADCzMGlIFDNnMRLsPTAA)微前端了解嗎(https://mp.weixin.qq.com/s/awBqvJmqWc7JGxwgB0QQZA、https://mp.weixin.qq.com/s/80S-RFmoZoq8KfCH6YZ_Tg、https://mp.weixin.qq.com/s/HVwcY8JGyrK8VcN1Ic9sWQ)http2 的特點(https://mp.weixin.qq.com/s/OitrWEosrpuXh19o_TDasg)csrf 的核心原理(https://juejin.im/post/5bc009996fb9a05d0a055192)node 事件循環(https://mp.weixin.qq.com/s/QgfE5Km1xiEkQqADMLmj-Q)FCP/FMP/FP 分別是怎樣定義,如何統計(https://mp.weixin.qq.com/s/wDKKj5R8SYm-_75Zn1y30A)MySQL 題目,id 唯一,name 可以重複,求 name 有重複的所有數據未來的一個發展是否是全棧,如何規劃(可以留意我的直播)鏈路錄屏的原理(可以分析rrweb即可,參考例子,https://mp.weixin.qq.com/s/PxEzBrr3YF1jD84c_p1uAA)鏈路錄屏法務問題如何解決(屏蔽關鍵信息/用戶授權等)FMP 定義及統計,w3c的草案你知道嗎(自行谷歌查找)react 項目的可持續維護性如何體現(自行谷歌查找)react hooks用過嗎,為什麼要用(沒有專門總結,自行谷歌查找)https加密原理,中間人攻擊知道嗎(https://mp.weixin.qq.com/s/aMYp6Y5n26r9vdQIom4g0w、https://mp.weixin.qq.com/s/sHtZhRTNOihmxap5sDD6xQ)ng 負載均衡的方式有哪些(https://mp.weixin.qq.com/s/u-XbBwGxHrhJGiMiiqz26w、https://mp.weixin.qq.com/s/o2Us4Zj6DO2NHGQVaHIa1A)CDN 有什麼作用(https://github.com/LuckyWinty/fe-weekly-questions/issues/24)不可變數據裡面,immutable,刪除數組裡面的列表(https://juejin.im/post/5b9b30a35188255c6418e67c, https://juejin.im/post/5e6a14b1f265da572978a1d3)垃圾回收中,內部函數返給上層的對象是如何管理的(參考這個,https://mp.weixin.qq.com/s/m_cwfM0PgivmmCKaK-TviQ)es 靜態分析原理(https://zhuanlan.zhihu.com/p/33843378)有一個很大很大的文件,如何統計文件裡面重複最多的行是哪行(參考git的記錄存儲)頭條筆試題

一面:

執行代碼求輸出,並說明為什麼,嚴格模式下輸出有變化嗎,為什麼
var a = function () {this.b = 3;}
var c = new a();
a.prototype.b = 9;
var b = 7;
a();

console.log(b);
console.log(c.b);

給定一個升序整型數組[0,1,2,4,5,7,13,15,16],找出其中連續出現的數字區間,輸出為["0->2","4->5","7","13","15->16"]
function summaryRanges(arr){
    //TODO
}

請實現以下的函數,可以批量請求數據,所有的URL地址在urls參數中,同時可以通過 max 參數控制請求的並發度,當所有請求結束之後,需要執行 callback 回調函數。發請求的函數可以直接使用 fetch 即可
function sendRequest(urls: sring[],max:number,callback:()=>void){
    //TODO
}

二面:

實現一個字符串反轉:輸入:www.toutiao.com.cn 輸出:cn.com.toutiao.www

要求:1.不使用字符串處理函數 2.空間複雜度儘可能小

類似題:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/

function swap(a, b) {
    //TODO
}

答案詳見:https://github.com/LuckyWinty/fe-weekly-questions/issues/51答案詳見:https://github.com/LuckyWinty/fe-weekly-questions/issues/49
與項目無絕對相關的問答題vue 事件機制是如何實現的 (https://juejin.im/post/59ca5e975188257a8908959b)react fiber 的實現原理 (https://juejin.im/post/5dadc6045188255a270a0f85#comment)vue 響應式數據原理(vue2/vue3/依賴收集/發布訂閱/watcher消息隊列控制/Vue.set實現)(https://mp.weixin.qq.com/s/zDv_IQ36o_rRD25xN9uyuw、https://mp.weixin.qq.com/s/hTygoAan4yH3V4XV9iE1Pw)vue 轉小程序怎麼實現(ast/生命周期對齊/跨平臺模塊兼容/兼容細節點實現過程)(可以看看mqvue的實現原理)性能指標,如何理解TTI,如何統計,與FID有什麼區別,如何實現統計,還聊了很多性能的東西(https://mp.weixin.qq.com/s/wDKKj5R8SYm-_75Zn1y30A)說說你所了解的安全問題及防護方法(https://mp.weixin.qq.com/s/rU32rVM6Q-ele01ZB3RFzg)說說你知道的設計模式,並舉個對應的模式例子(https://mp.weixin.qq.com/s/x3OCgS_knmM4D5zNSIVGRg)

我本人的博客/公眾號,似乎面試官都看過,都知道我學過什麼,知道什麼,所以很多我博客上有的東西都沒問,甚至我引申到過去,都不讓說,有種沒機會表現的感覺,哈哈

感受&更多學習資料

其實單看問題,參考性還是比較小的,畢竟面試官主要會根據簡歷去發問。這裡的一個感受就是,項目中遇到的最大挑戰,這個問題真不好答,我當時答得也不夠好,後面又回去總結了一波項目,建議大家都好好總結一下自己平時遇到的問題,尋根究底。

這部分的題目,我會同步到我的每周N題上,歡迎大家來交流答案啊。想刷題的也可以來,地址如下:https://github.com/LuckyWinty/fe-weekly-questions/issues

有很多知識點,雖然我沒被問到,但是我寫了不少文章,感興趣的話可以關注一下我的博客,地址如下:https://github.com/LuckyWinty/blog

更多我覺得比較好的博客,地址如下:

https://juejin.im/user/5cf288385188254abb110e3b/postshttps://juejin.im/user/58d4e734570c350058cbb900/postshttp://blog.poetries.top/FE-Interview-Questions/https://juejin.im/user/5bea27965188250edf4ad8b7/postshttps://juejin.im/user/5c45ddf06fb9a04a006f5491/posts

相關焦點

  • 《Android 面試指南》
    不過今天,給大家推薦一個 Android 面試專欄,這個專欄匯聚了來自騰訊、阿里、美團等大牛的面試經驗,有些還是我業內的一些朋友,所以,這篇專欄可謂是一份高質量的 Android 面試乾貨匯總了,涉及面試的方方面面,最近在面試,或者正在準備 Android 面試的同學,這份指南可能剛好是你需要的。
  • 2021年春招在即,亞麻BQ寶藏面試攻略助你進大廠!
    尤其是科技大廠,非常注重員工與公司文化匹配度的公司,BQ的考核可以更是優中選優。前不久就有人在Blind說自己亞麻BQ考了兩個小時……就連谷歌也在去年開始加入改革面試大軍,各大廠對BQ的重視程度意味著它必定成為面試利器,而這也意味著BQ「備」得好,Offer少不了!如果你還不知道它是什麼,今天的文章,蔓藤就來為你指點迷津。
  • 解析 BAT 大廠的經典面試題(中篇)
    分享給大家的是 「工具 模塊」- 解析BAT面試題(中篇)。很多人對 BAT 以及其他大廠,也是朝思暮想。也因為一些原因,暫時還未能加入。大廠中有很多經典面試題,直到現在也會用,不要問小編為什麼知道(保密)。
  • Google人工智慧面試·真·題(附參考答案+攻略)
    面試以強度聞名,可能看看問題就想回家了。這些題目全部由Glassdoor收集統計。不過,順便看下參考答案也是好的。1、求導1/x。「為什麼想申請這份工作」「你曾經解決過什麼問題」等問題基本在面試中必現,寫20個出來先提前準備著有益無害。計劃:寫出極可能出現的問題後,針對列出你的清單上的每一個問題,寫下你的答案。這將幫助你加深對這些問題的印象,是面試時能對答如流的利器。
  • 面經合集 | 12家公司,16篇精選面經,產品/運營/管培...
    但是搜出來的面經大多語言簡略,過程交代不清沒有offer結果,可借鑑內容不多拿來搜面經的時間比看的時間都長投入產出的性價比太低了校招就該花最少的時間拿最優質的面經!百度 | 騰訊 | 網易京東 | 去哪兒 | 搜狐 | 蘇寧微軟 |雅虎 | 谷歌 | 華為產品 | 運營 | 技術 | 管培 ▲十六份大廠最詳面經
  • [544]ScalersTalk聽力狂練小組第11周復盤筆記
    聽寫總結形式可以是群論壇蓋樓記錄,也可以直接發送至本群內。 2.每周安排三個記錄員記錄小組成員在群內及群論壇所提交的總結,根據每個成員的問題製作相應的挖空聽寫和翻譯練習,製作完畢之後統一交給主持人匯總成每周的復盤練習。復盤練習分為A、B兩份文檔,A文檔為不帶答案的練習,B文檔為附答案的總結。周六晚七點之前,主持人先上傳A文檔供成員下載。
  • 一線網際網路公司算法方向社招面試過程(五)-今日頭條
    頭條面了兩個部門,第二次的面試題如下:找出數組子數組和為給定target的所有子數組求二叉樹的路徑和排好序的數組
  • 為什麼你進不了大廠?
    在中型設計團隊工作快3年了,感覺我設計做的挺好的,但是向同事匯報也好,或溝通時,不是很順利,想了解下,比如阿里內部,是如何匯報自己的設計思路的,有什麼邏輯可以分享嗎?說明白數據情況背後,為什麼是這個結果(結合一些有邏輯的過程,比如用研報告?數據分析?數據部門拉的數據,總之需要點科學依據)。3.然後你項目改版解決用戶的問題是什麼?數據是什麼?4. 針對問題本次設計的設計策略、拆解、和詳細方案。5.方案對比,新老版本對比(並對新版的數據有個大概評價)。
  • 測試人生 | 資深外包逆襲大廠測試開發:面試官的「歧視」表情深深刺痛了我
    但基本上都是石沉大海,面試邀約寥寥無幾,這時候才清醒的認識到殘酷生活的真實面貌 —— 憑藉自己目前的工作經歷和測試技能,出去找到更好的工作真的很難:一方面,現在好一點的公司招測試,技能要求基本都是測試開發,自己技術實力還有很大差距;另一方面,好一點的職位,大廠更優先看重內推的人,面試成功率比海投更高,而我正缺乏這樣的行業人脈;
  • 阿里、字節不會要「熟練掌握Excel」的留學生!
    比如字節跳動、阿里巴巴、騰訊這些耳熟能詳的超級大廠,肯定都是你們的目標之一!offer鴨最近也研究了下各大廠的崗位要求,發現很多適合留學生的崗位都有這樣的能力需求。那就是數據分析能力。就拿字節跳動和阿里巴巴2021的校招崗位來說吧。
  • 深度揭秘今日頭條技術面試內幕!
    作者:「想去大廠的小菜雞」https://juejin.im/post/5c14e7f051882562502f077
  • 大廠面試實錄:每一個Java最應該好好補補的,其實是MySQL
    但凡有職場經驗的兄弟都知道,大廠的面試真是一言難盡,不光看你面試時的臨場發揮能力,
  • 算法工程師常見面試問題及相關資料匯總(附簡歷模板)
    阿里巴巴計算機視覺算法實習生視頻面試 website面試經驗AI算法工程師(面試官角度) website從零基礎到BAT算法崗SP——秋招準備攻略 website螞蟻金服/曠視/虹軟/騰訊優圖暑期實習offer面經 website我在美團的這兩年(附校招筆試/面試/面經分享) website1000 面試題,BAT
  • 高階測試 · 大廠面試 · 真題題解(7)
    有測友去某知名大廠面試了,遭遇了幾道編程題,帶回來分享給大家研究學習!11.你可以假設每種輸入只會對應一個答案。但是,數組中同一個元素不能使用兩遍。給定一個數組奇數為是升序,偶數位是降序,(如:1,8,3,6,5,4,7,2)如何讓其升序變成(1,2,3,4,5,6,7,8);👉參考答案:4. 把數組[0,1,1,0,1,1,0,1,1,1,0,0]中所有的1排到左側,0排到有右側;👉參考答案:5.
  • 萬字長文,20-50K前端工程師部分面試題集錦 - 附答案(收藏!)
    小提示:如果發現小公司面試套你的技術和架構,迅速結束,開出天價薪資走人 下面正式公布部分面試題,以及答案出於對各個公司的尊重,不公布是哪家公司的面試題,以及面試技巧。只公布部分面試題和答案,以及分析問題的角度,學習方向,面試中考察的不僅僅技術深度,還有廣度,每個人不可能技術面面俱到,前端學習的東西太多,忘掉一部分也是正常。
  • 工程師面試,標準答案!
    標準答案:「我們搞開發的,從來不知道什麼是 『累』,因為我們都是沒日沒夜加班!」面試官問:「請解釋一下,對象」標準答案:「我們不需要『對象』,對象比較浪費時間,影響我加班!」標準答案:「我不要加班費,就不算加班!算郊遊!我喜歡周末到公司郊遊!」
  • 面試題分享,準備一個月拿下騰訊、華為、IBM 、微軟等9個大廠offer(附答案)
    作者:Vuan,  阿里實習工程師  編輯: 可可本文講述了一名阿里實習生程式設計師的面試經歷,分享下作者的一些所見所感,大家都知道現在大公司都要求本科以上,有大廠背景的,算法厲害的。看看本文作者如何面面試的?
  • 大數據開發工程師面試題(附答案)
    面試官:還有你剛剛寫的那個groupByKey哈 補:在我們的開發過程中,能避免則儘可能避免使用reduceByKey、join、distinct、repartition等會進行shuffle的算子,儘量使用map類的非shuffle算子。