大揭祕!“恐怖”的阿里一面,我究竟想問什麼

Neal_yang發表於2019-08-09

原文連結地址:Nealyang/personalBlog

市面上有很多關於面試的文章,但是基本都是從應聘者的角度去分析問題的,從招聘官的角度去分享的著實不多。本文將從我的個人招聘經歷分享下關於前端一面的一些思考和自己的感悟。以下所有感悟皆為筆者個人感悟,不代表任何。有不妥之處,歡迎指出

其實不得不說,找工作,真的七分實力,三分運氣。不同的面試官有不同的看重點,所以千萬不要為一次的滑鐵盧而丟失信心。

面試環節

關於面試題的答案講解,本文將不做非常詳細的分析。具體的每個知識點,筆者後面儘量兩週更新一篇相關知識點文章於公眾號 全棧前端精選 中,歡迎關注、討論和分享。下圖是筆者計劃後續寫的總結性技術文章。

大揭祕!“恐怖”的阿里一面,我究竟想問什麼

自我介紹

基本面試這是必然的開場,筆者在公司也稍微面試過不少人吧,高峰期基本每晚都要面試一兩個,聽過了各種各樣的開場介紹。這裡簡單說下筆者作為面試官比較喜歡和不喜歡的介紹吧。

我叫 xxx,畢業於(目前就職於) xxx,來自 xxx,技術棧 xxxx,喜歡 xxx。。。

類如上述的自我介紹,其實很多都在簡歷上寫明瞭,甚至很多是我並不關心的。

我只關心你能力和我職位的匹配度。所以諸如此類的簡介,筆者更是希望能夠簡短。筆者作為面試的時候,更喜歡聽到的是我做過什麼牛 x 的專案,這個專案有多難,如何攻克的,以及這個專案做完你收穫到了什麼,甚至這個專案做完,該專案對團隊、部門甚至公司而言,帶來哪方面的提高。或者可以介紹你在校獲得了什麼獎項,意味著什麼、成長了什麼。

如上的介紹,其實就能夠讓面試官眼前一亮,因為能看到你對這個專案的思考、以及這個專案對你的歷練。

劃重點:我們都知道下一個面試環節是知識點提問,所以這裡的難,可以適當的丟擲技術的難點在哪。引起面試官的興趣,從而去提問面試的節奏我們要學會自己掌握,別老是被面試官牽著走

走到這一步,基本有如下兩個分支:

  • 面試官對你的這個專案(獎項)比較感興趣,會接著問下去,然後問其中技術的實現細節。(所以這裡自己千萬不要吹牛x,然後補不回來)
  • 面試官不是很感興趣(很可能是面試官的技術盲區,比如我就這樣。哈哈),然後問自己準備的一些面試題。。。

這裡需要說明的,在筆者面試應聘 p7 的同學的時候,會更喜歡到你對這個專案的思考,諸如會問一下題目:

  • 現有的技術方案、行業對比
  • 你覺得你做過的專案或發起過的優化裡面最有價值是的哪個?為什麼?對業務的幫助是什麼?
  • 你做的東西可以複用於其他團隊嗎?
  • 橫向與市場已知的 xxx 解決方案,你們的優勢在哪?

上述的這些思考,其實目前我也達不到。但是,這不一定要求面試官一定要達到這個水準,專案的思考維度也還沒有這麼的深入。沒吃過豬肉還沒見過豬跑嘛。

面試題

如上面所說的,如果面試中應聘者說到了筆者比較感興趣的技術方向、或者技術點,那麼筆者就會直接問下去。如果說到了筆者不是很擅長的技術區域,那麼我筆者就不會追問技術細節了。

整體一面的時間大概也就半小時左右,加上前後的介紹,基本題目就四五題吧。筆者面試沒有固定的題目,通常根據應聘者的經歷而問。這裡舉例下在上面的介紹毫無亮點可言的時候(基本涼了一半),筆者喜歡問的一類題目吧。

基礎題目考核

JavaScript 物件導向的理解和感悟

基本剛開始問題的題目都是比較簡單和考核基礎的,比如有的時候筆者第一題一般問:** JavaScript 物件導向的理解和感悟**、題目非常的開放。給了你足夠大的舞臺表現自己。

說下這題在筆者面試別人時候的心裡打分點:

  • 首先,我肯定是需要你告訴我,什麼是物件導向,物件導向有哪些特點,以及這些特點的解釋。
  • JavaScript 如何實現這些特點,比如封裝、繼承、多型。如果關於上述三點,你能夠解釋到有多少種實現方式、優缺點是什麼。以及近幾年流行的解決方案是什麼。這就是加分 ,比如對於繼承吧。類式繼承、建構函式繼承、組合繼承、原型繼承、寄生組合繼承等等,說出大概的實現思路和優缺點,再介紹下 extends 或者 mixin 的實現甚至你可以衍生到JavaScript 的模組化發展甚至到為什麼現在 TS 如此流行。那麼可以說到這一環節解答的就非常棒了。
  • 回答完 JavaScript 的物件導向,是不是可以從此衍生下為什麼需要物件導向。以及當先對於軟體設計的高內聚、低耦合的思考?來個對此題一個提綱挈領的總結?

綜上所述,其實不難看出,越是這種基礎且開放的題目,可以是一個陷阱,更可以是一個機會。因為一道題真的可以全方面的感受到應聘的基礎是否紮實。

後面的題目的筆者基本喜歡根據應聘者的上一題的回答中甚至應聘者隨口說到的知識點,繼續追問。但是限於此文為分享文章,這種形式很難演示。下面就繼續介紹下後續的題目。

瀏覽器輸入 url 到頁面的展現,具體發生了些什麼可以展開說下麼

斷於上述題目知識點。第二個問題筆者通常喜歡問一些考察可深可淺的一些題目,注入:瀏覽器輸入 url 到頁面的展現,具體發生了些什麼可以展開說下麼

基本回答都是

  • 在瀏覽器位址列輸入URL
  • 瀏覽器解析URL獲取協議,主機,埠,path
  • 瀏覽器組裝一個HTTP(GET)請求報文
  • 瀏覽器獲取主機ip地址
  • 開啟一個socket與目標IP地址,埠建立TCP鏈
  • TCP連結建立後傳送HTTP請求
  • 伺服器將響應報文通過TCP連線傳送回瀏覽器,瀏覽器接收HTTP響應
  • 根據資源型別決定如何處理(假設資源為HTML文件)
  • 解析HTML文件,構件DOM樹,下載資源,構造CSSOM樹,執行js指令碼
  • 最後展現出來給使用者

基本如果應聘者只回到了上述步驟,很多關鍵步驟(前端應該瞭解的知識點)沒有提及,那麼基本涼涼一半了。這裡簡述下筆者感覺,這其中你應該具體展開說明的。

  • 瀏覽器傳送請求,是否需要檢視快取?是否請求資源在快取中並且新鮮,跳轉到轉碼步驟?如果資源已經快取,是否新鮮?如何檢查?怎麼判斷、http1.0 和 http1.1 的區別是什麼,這些欄位的優先順序是怎麼樣子的。
  • 瀏覽器解析 url 獲取協議,過程是什麼?DNS 遞迴查詢可否介紹下?
  • 建立 TCP 連結的三次握手是否可以介紹下
  • 伺服器接受到請求,是否需要檢查快取?檢查什麼欄位?什麼樣的快取會需要服務端檢查?
  • 服務端傳送 TCP 連結,瀏覽器接受 http 相應後,根據什麼來決定是否需要關閉連線?關閉 TCP 的四次揮手是什麼?
  • 瀏覽器是否需要檢查狀態碼,有哪些狀態碼?(筆者高頻考碼:304、200)
  • 在解析的時候,具體如何解析、是否有順序。(重繪重排高頻考題就在這裡)
  • 總結如上、我們是否可以給出一些基本的網站優化手段???

上述題目的每一步展開,都將會是下一個面試題。

具體的知識點介紹,不是此文主要講解內容,這裡就不多言了。

解決問題能力考查

其實上面兩(大)題後,基本基礎、網路、瀏覽器、js 執行、優化都已經考核到。對於 p6 的一個 job model 還有一項是對於問題的解決能力。

其實這裡一般都是出一道問題,然後你給出一些你的實現思路,這裡就不做距離了,因為太開放!

比如:

  • 諸如我現在需要監聽那種頻繁發生的事件,你有那些優化麼
  • 埋點的實現思路
  • 非遞迴的二叉樹遍歷
  • 檔案上傳斷點、續傳
  • 設計模式的應用場景考核

等等

切記:這類題目,一定不要說不會、不知道。哪怕真的不知道,也要給出大概的解答思路和實現思路。哪怕不對!一定要講出自己的思考過程

進階題目考核

在面試 p6、p7 的時候,一般後面還會跟一道進階題目(根據應聘者具體情況而定)。

沒有開放性的答案其實,所以這裡筆者就不細述有哪些思考和想聽到的點了。只要你說的對就行其實

  • VUE 雙向繫結原理
  • VUE/React diff 演算法的大概思路
  • 現有的狀態管理的實現
  • webpack中 loader、plugin 的實現思路
  • 簡易版 webpack 的實現
  • KOA、Express 中介軟體的實現
  • React fiber 的理解和原理
  • 前端構建工具的、vue-cli、create-react-app 的原理和實現思路
  • 等等。。。。。

結束環節

半小時,基本只能問四五題這樣,說實話,題目的考核大概能佔參考度的 90%,還有 10%可能就是言語和感覺了。那麼對於結束的時候,說下不好的感覺:

最後,你有什麼要問我的嘛

我想諮詢下,我能不能通過這次面試,我對工資無所謂,我願意學習,特別希望能夠進入 xxx 跟大牛一起學習,歷練。

講真,這類的話聽過很多次了。如果在看的你也命中了這個。我想說,其實公司招我們進來,是搬磚的,不是給我們學習的。學習是你自己的需要,不是為了公司學的。說這類的話,太給自己降價了!

說說筆者應聘的時候,一般結束的你有什麼要問我的嘛的回答

  • 我比較在意自己的技術方向和職業發展,能夠簡單介紹下如果我面試上貴公司職位,我以後的工作內容和在團隊的價值麼?
  • 想了解下公司對於前端的重視程度以及在大前端時代,團隊對於技術的思考

大概就是筆者會問,我這個職位是幹嘛的?在公司有麼有價值?跟我自己的職業、技術規劃是否吻合?

這樣!面試官會覺得,恩~這小子有思考~~~再者,如果面試官給你介紹的非常非常詳細,那麼其實從側面就說明,他對你很滿意了!已經到了面試官開始極力展現自己的時候了~~

就比如:醫生,我老婆懷的是男孩還是女孩啊? 不能問!!!這是政策

但是:醫生,我這孩子出生我給他起名字叫王剛蛋你看合適不? _恩。。。不太合適_ 基本可能懷的是女孩了

最後

其實我想說,面試,不僅僅看運氣和實力,其實有的時候也是一場心理的博弈。

你的每一次回答都可能引出下一道面試題。有意識無意識的留點回答漏斗也是一種帶節奏的方式。

如果面試官提出一個問題,你都抓不住他的考點,那基本要涼~~

其次,我想說,上面我說的開放性基礎題的回答,大家千萬不要誤解為回答的多就是好。千萬不要一個題目回答了半個小時,沒必要!點到為止,證明自己考慮到、有這個知識儲備即可,不要回答的讓面試官都煩了。

然後,對於如何拿到面試的敲門磚:簡歷。沒有那麼多可說,也不是沒得說。

簡而言之:面試官篩選簡歷是非常枯燥的一件事情。基本是一眼帶過,不會在簡歷上撇超過 40s。

所以:

  • 簡歷要整潔,簡潔、簡潔。真的別密密麻麻都是字,沒那麼多耐心看的。
  • 重點突出,可以加粗或者顏色標識。比如:自己開源類 React 框架
  • 簡歷是一份介紹更是一個成績單,既然是成績單,成績一定要吐出:開源專案 15k star推動公司技術建設 等等
  • 不得不說,名校和大廠的背景。很吸睛。

最後,秋招開始了,祝福所有找工作的同學,都能順順利利拿到 offer!加油~

你懂得

對,文章最後往往都是廣告環節~~嘎嘎嘎

阿里秋招

阿里秋招正式開始啦!!!

Bu 介紹請看:號外!號外!阿里拍賣提前秋招!!!

簡而言之! 2020 屆畢業生,跪求簡歷呀 我把面試題都告訴你了呢,還不發個簡歷過來:yifeng.yl@alibaba-inc.com

學習交流

關注公眾號: 【全棧前端精選】 每日獲取好文推薦。還可以入群,一起學習交流呀~~

大揭祕!“恐怖”的阿里一面,我究竟想問什麼

相關文章