2017秋招前端工程師百度阿里網易騰訊(全offer)面經|掘金技術徵文

LucasTwilight發表於2017-09-29

2017.09.29更新 百度面完三面收到sp offer,百度地圖部門,base北京 阿里被調崗到阿里音樂,已收到意向,base杭州,這個比較運氣。。 騰訊給的意向是IEG的運營開發,所以偏後臺一些,base深圳 網易雲音樂收到offer,base杭州 補完了百度三面的所有面經,正式結束秋招吧。

總結一下,現在網際網路公司對於前端的要求提高了很多,已經不滿足於招聘一個只會寫頁面的前端,由於一些MV*框架在前端大行其道,並且很多後端的業務邏輯也在逐步往前端遷移,所以前端在面試的時候,會涉及到很多除了基礎之外的東西。

  1. 框架原始碼,這個是現在所有大廠都很看重的一點,比較深入地閱讀原始碼錶示你對於框架的瞭解程度已經不僅僅是使用,閱讀原始碼可以很好地提升自己的程式碼規範性,並且在進行其他框架開發的時候很有借鑑意義。
  2. 演算法,有些面試中會提出一些常用的演算法問題,所以對於一些基本的演算法的思路要有一定的瞭解。
  3. 後臺,現在前端已經偏全棧方向了,可以看到下面的面經中很多的問題都涉及到了後臺的相關知識,如果會一種或者多種後臺語言的話對於面試和工作都很有幫助。
  4. 基礎,前端需要了解的計算機基礎主要在網路方面,所以認真看下HTTP和TCP/IP也是很重要的。

本文更新於2017.09.06 補充一下之前的百度面經,雖然只有一面。。 昨天收到了豬場的offer和IEG的意向,把之前的面試經歷總結一下回饋下牛客。搜狐、拼多多和華為就不貼了。

985渣碩,實驗室不讓實習,所以也沒有實習經歷。

百度

一面

百度的面試挺基礎的:

  1. 首先讓寫一個物件來滿足A == '1',然後問==和===的區別。
  2. HTTP協議快取的實現和快取相關的報文首部。以及HTTP的狀態碼。
  3. 手寫一個JSONP的實現。
  4. 含有定時器的程式碼的執行順序。這個搞懂了JavaScript內部定時器和事件佇列的原理就沒有什麼問題了。
  5. 輪播的實現。
  6. 給出一個(010)111111,然後寫程式碼來將這個模式的字串轉換為010-111111模式。
  7. 有關this指向的一個題,讓說出程式碼的執行結果。 因為有幾個需要寫程式碼的問題,所以雖然問題不多但是面試時間還是比較長的。

二面

一面兩天之後進行二面,百度前端面試的時候對於基礎還是比較重視的。 這位面試官也是我面了這麼多技術面試唯一的女程式設計師。。Orz

  1. 瞭解JavaScript的非同步嗎?
  2. 手寫一個Ajax的Promise封裝。
  3. 手寫一個NodeJS的fs.readFile方法的Promise封裝。
  4. 從一個檔案中讀取另外一個檔案的名字,然後再讀取另外一個檔案的內容,用之前寫的fs.readFile的Promise來進行實現,這裡推薦大家用catch來進行reject的捕獲,會有加分哦。
  5. JavaScript回撥函式的callback hell如何解決。
  6. 對於ES6瞭解多少,說一下一些常用的方法。
  7. 如何對於陣列進行深拷貝。
  8. 如何使用ES6的generator函式來進行非同步的呼叫,手寫。
  9. CSS3瞭解的多嗎?
  10. position的幾個屬性有什麼區別和使用情況。
  11. 生成BFC的幾種方法。 CSS的問題都答的不是很好。所以面試官還問我是不是不經常寫CSS。。。
  12. HTTP協議中常用的報文頭。

三面

三面看起來應該是團隊的leader,對於專案挖的很深。如果不是自己真正實現的專案,或者是在專案上有一些自己的創作。。很可能會被問出破綻。

主要對於自己專案中遇到的幾個技術難點進行深挖,會問到專案難點的解決方案和具體的實現思路,這裡會問的很細,而且問題也是隨著你的專案來進行挖掘的。

在專案中會遇到一些團隊合作上面的問題,如何解決這些問題,包括介面協調,一些模組之間的耦合是如何進行協同開發的等等。

這一面結束之後就收到了意向的簡訊,一個沒有HR面試的公司對於技術的重視程度確實應該還是蠻高的。

阿里螞蟻金服

一面

阿里是非常喜歡問原始碼的公司,一面的時候面試官說他對基礎不感興趣,所以講了下下面幾個模組的原始碼和主要流程。 React、React-Router、Redux、Vue的大致的實現原理,然後比較了下Vue和React的效能的優勢和劣勢。 一面很快,也就是十幾分鍾,最後和麵試官聊了下RxJS拖了些時間。

二面

二面在差不多一週之後,還是技術面,一上來也是各種框架和框架派生的一些技術的原始碼和實現原理,之後問了點基礎問題。

  1. git的一些命令,git pull和git fetch的區別。
  2. ES6中箭頭運算子this指向問題。
  3. CSS中偽類選擇器選擇列表最後一個元素。
  4. JavaScript原型鏈,以及如何實現繼承。
  5. 對於現在的前端有什麼看法,未來的發展方向是什麼。

大概問了不到30分鐘。

三面HR:

  1. 阿里的HR小姐姐真的超級可愛,告訴我說她是一個懂技術的HR。QAQ。
  2. 問了些專案,專案中遇到的問題,自己的缺點,專案中的問題是怎麼解決的等等。

真的是一個懂技術的HR小姐姐。。 說後面可能還有一輪技術面試。

四面leader

  1. HTTPS的原理
  2. 埠號的作用
  3. n個元素的陣列,求出一個數字最少的組合,使得這個組合的和為m,使用動態規劃。
  4. 一個proxy伺服器上有一個很大的域名黑名單,如果快速對於通過proxy的請求進行過濾。
  5. 和上面的類似,一個進階問題,如果有一個很大的關鍵詞黑名單,如何快速地對通過proxy的請求進行過濾。

最後等訊息等到了現在(2017.09.06),之前一面的面試官加了微信,說因為HC問題不一定能給offer,所以感覺沒有交叉的我GG了,問了下自己存在的問題,面試官說一個面試官給了資料結構和演算法一般,應該是leader的時候,最後一個問題沒有答好導致的。

調崗阿里音樂

(2017.09.28)本來以為阿里已經沒戲了,但是在已經準備簽了網易兩方之後,又收到了調崗到阿里音樂的訊息,又進行了一次技術確認面試,問了幾個不是很難的問題就讓等HR聯絡了。

  1. 平常使用的技術棧是什麼?
  2. 對於React元件巢狀造成的效能問題是怎麼解決的?
  3. Redux對於React意味著什麼?
  4. Redux在使用的時候,對於狀態的越來越臃腫這個問題是怎麼解決的?
  5. webkit核心在進行渲染的時候會出現什麼樣的效能問題?
  6. 這些效能問題在進行程式設計的時候怎樣規避?

騰訊IEG

騰訊IEG的面試對於前端非常不友好。也可能是部門的關係吧,最後查了下自己的簡歷評級是A+,能在最後被撈起來面一下也是蠻幸運的。

電話一面

  1. MySQL的引擎有哪幾種。
  2. 代理伺服器的負載均衡,KeepAlive和lvs。
  3. 實驗室專案的負載均衡是怎麼實現的。
  4. MySQL如何查出當天所有登入超過10次的使用者,資料庫裡面儲存的有登入日誌,欄位型別為時間戳。 主要聊得是實驗室的專案和PHP、MySQL相關的東西。

電話二面

  1. 聊專案
  2. PHP如何進行高併發請求處理
  3. 包括代理,負載均衡,快取層的實現這些問題以及Apache和Nginx的區別和PHP本身對於阻塞的處理。
  4. PHP的記憶體洩漏問題。
  5. 最後扯到了五面裡面唯一的純前端問題:閉包。。

現場一面:

首先做了一套本科計算機綜合試卷。。。裡面有作業系統、資料結構、演算法、計算機網路、C、C++等各種內容的卷子。。做的我是心神盪漾。。

然後面試官問你對C還是C++更熟悉一點,我支支吾吾說了C。。然後就讓我寫了一個C語言的字串轉INT的函式。。。

然後問了如何使用PHP對於TCP請求進行格式化。

之後問了很多和海量資料請求處理的演算法和資料結構的題目,都是一些很經典的題目。

最後做了個智力題,讓用拋硬幣模擬隨機數1、2、3。這個還好之前看到過。。

現場GM面 + HR面

GM和HR基本聊得差不多。。都是一些HR常問的問題,GM基本在聊人生。。也不知道是什麼情況,現在也走完了面試流程,最後等通知。

網易雲音樂

杭州現場面試,前一天早晨起來面了華為,下午在機場做了滴滴筆試,晚上航班延誤到4點多才到杭州,早晨8點起來趕赴網易,也是為了offer拼了老命。

一面

一面,是一個看起來就很厲害的大佬。。也是我面試的所有的最緊張的一面。。大佬給的壓力太大了。。

首先讓分析一個dropdown的效果,根據伺服器返回的資料來更新dropdown列表的內容,如何實現,並且對於請求是否需要進行延遲操作,也就是debounce,然後手寫了debounce的程式碼。

然後一個大量圖片的輪播圖怎麼實現和優化,說了lazy-load的具體實現,然後動畫切換的實現,使用三個元素就可以實現了。兩個用於動畫效果,一個用於預載入圖片,在進行一次移動之後,將移出視口的元素解除安裝然後掛載到三個元素的最後。

然後還問了Vue和React原始碼的一些相關的東西,最後做了一個和函式呼叫的this物件繫結相關的題目。

二面

二面總結一下就是deep into React,基本React能想到的東西都被問到了,元件更新過程,原始碼內部的一些實現細節包括Transaction等等,Vue更新過程和React的區別,Vue和React的設計思想有什麼區別和優劣,甚至antd相關的也被問到了。。。HOC實現元件的封裝,antd是如何實現元件的封裝的,React-Redux的HOC的實現,connect函式的實現,感覺自己還是不夠深入。

HR面

HR面其實都是老一套了。。實習,生活,家庭各種問題。。最後面完了讓我再等10分鐘,然後查結果,被額外加了一面,帶我去見總監的HR小姐姐真的好可愛。給小姐姐打call。

GM面

其實就是對於思想方面的一輪面試,拋開技術和實現主要談思想,對於前端整個技術棧以及web的技術棧的理解,隨手問到了一些CSRF,XSS,瀏覽器執行緒模型這樣的基礎知識,想加入一個什麼樣的團隊等等。

由於最近面試的太多了,能記得的就這麼多了。希望能夠幫助到大家,自己也可以複習一下之前沒有理解好的知識。 附掘金徵文大賽連結

相關文章