一場感覺身體被掏空的前端面試

2021-02-20 前端速報

(給前端速報加星標,提升前端技能)

作者:不是小羊的肖恩

https://www.jianshu.com/p/9ed470fe7135


天下沒有免費的午餐?

美帝面試有三寶,流程清晰、費用全包、待遇好。

可千萬別小看這三寶,勤勞刻苦、聰明過人的中國留學生們可是因此總結出了很多免費旅遊的攻略方法的。之前還在密西根讀研的時候,我認識的學長學姐們在已經收到了他們最理想的工作offer以後,依舊在馬不停蹄地到處面試。我曾經好奇地問過他們,為什麼還在不停地面試,是覺得工資還不夠高?想找個待遇更好的公司?而他們的回答則像是提前統一了口徑一樣:「我早就定了要去上班的公司啦!之所以還在到處面試,目的只是為了能免費旅遊。我想去紐約玩,就投紐約的公司;想去洛杉磯玩,就投洛杉磯的公司。拿到onsite(被邀請到公司現場面試)之後,就可以吃住行全包的飛過去旅遊,順便面個試!」

當時的我很羨慕他們的這份瀟灑,可我也很清楚,他們能夠得到這種「免費旅遊」的機會,依靠的還是他們自身強大的技術實力。在美國,大多數IT公司出於成本的考慮,招聘新員工都會採取本地候選人優先的策略,這樣省時省力又省錢。而這對於本地求職者來說也是一件好事,既免去了舟車勞頓之苦,又可以專心準備面試。我現在的工作機會就是兩年前作為一個本地候選人得到的。如果公司邀請外地的候選人來面試,則要為他買機票,訂酒店,報銷夥食費租車費等各種費用。這一切的額外成本都會使得對於外地候選人的挑選標準變得更加嚴格。好在,美國IT公司的招聘流程比較清晰,大都遵循著同一種套路。一般來說,想要拿到公司的現場面試(onsite)邀請,候選人要經過兩到三輪的選拔,包括電話面試(phone interview),網上做題(online coding)等等。只有通過了這幾輪測試得到了公司招聘部門的青睞,才有機會拿到「免費旅遊」的機會。所以,天下真的有免費的午餐,但這種機會大多屬於有準備的人。

來自領英獵頭的勾搭

當然,機會偶爾也會光顧沒有什麼準備的人,比如說我。去年底,正當我困頓在「前端疲勞 」的苦海裡不能自拔的時候,無意間收到了一封來自領英獵頭的站內信,標題很醒目:「Shawn(我的英文名)+LinkedIn = Magic! 」這封站內信讓我感到異常的興奮,因為這是我轉行前端程序猿以來第一次被「FLAG」 (Facebook, LinkedIn, Amazon, Google)的獵頭勾搭。而隨興奮而來的,也有莫名的緊張,覺得自己的技術實力還不足以從容應對「FLAG」級別公司的考驗。

心裡有了壓力,自然也就來了動力,之前的前端疲勞感似乎一瞬間就無影無蹤了(我發現!!!多參加面試似乎是消除前端疲勞的一個有效方法~)。由於我在工作中大多數時間使用的都是PHP,而LinkedIn的前端職位技能要求裡則清楚地寫明了求職者要精通JavaScript。因此,惡補JavaScript就成了重中之重。在接下來一個月的時間裡,我啃完了三本JavaScript的經典書籍。而之後的面試經歷告訴我,這三本書真的讓人受益無窮:
1.《JavaScript: The Good Parts》
中文版:《JavaScript語言精粹》
2.《Professional JavaScript for Web Developers》
中文版:《JavaScript高級程序設計》
3.《High Performance JavaScript》
中文版:《高性能JavaScript》

電話面試

在收到領英獵頭站內信的大約一個月之後,便正式進入到了我剛剛提到的美國IT公司的標準面試流程:第一輪是與HR的電話面試,主要聊背景和項目經驗。第二輪電話面試的面試官是一位LinkedIn前端工程師,這輪電面進行了一個小時,包括三個概念討論題和三道coding題,coding使用的是collabedit.com 提供的在線coding工具,面試官可以實時的看到我在屏幕這端寫的代碼。下面是真題時間:

概念討論題:1. What is website accessibility and how to improve the accessibility of a website?
(網站易訪問性的概念以及如何提升網站可訪問性)
2. Have you ever used any CSS preprocessors? Give the pros and cons of using CSS preprocessor.
(談談CSS預處理器使用上的經驗,比如SASS、LESS之類。分析一下CSS預處理器的優缺點)
3. Tell me about event bubbling. How could you use it?
(JavaScript事件冒泡的理解和應用)

Coding題:
1. 預測以下代碼的輸出結果:
var Foo = function(a) {  
function bar() {  
  console.log(a);
 };
this.baz = function() {
    console.log(a);
 };
};

Foo.prototype = {  
biz: function() {    
  console.log(a);
 }
};

var f = new Foo(7);
//預測輸出結果:f.bar(); // result: TypeError, f.bar is not a function.  f.baz(); // result: 7  f.biz(); // result: ReferenceError, a is not defined2.  給了一張網頁截圖,要求用HTML/CSS實現其中的布局3.  已知endorsement array, 要求寫一個function實現想要輸出的結果:// function inputvar endorsements = [
 { skill: 'javascript', user: 'Chad' },
 { skill: 'javascript', user: 'Bill' },
 { skill: 'javascript', user: 'Sue' },
 { skill: 'html', user: 'Sue' },
 { skill: 'css', user: 'Sue' },
 { skill: 'css', user: 'Bill' }
];// function output[
 { skill: 'javascript', user: [ 'Chad', 'Bill', 'Sue' ], count: 3 },
 { skill: 'css', user: [ 'Sue', 'Bill' ], count: 2 },
 { skill: 'html', user: [ 'Sue' ], count: 1 }
];

我的運氣比較好,遇到的這位前端工程師是密大的校友。在美國,校友資源是社會人際關係裡的一條重要紐帶。校友見校友,兩眼淚汪汪。可能是和這位校友聊的很投緣,當然題目也基本都做對了,兩天之後我便收到了onsite的通知,邀請我在今年的二月去LinkedIn在加州矽谷的總部面試。終於,我也可以體驗一次「美帝面試三寶」了。

總部面試的前奏

由於路途遙遠,從亞特蘭大直飛矽谷腹地聖何塞要4個多小時,因此我必須提前一天到達。好在領英的招聘部門很慷慨,給我訂了商務艙的機票,飛行全程還算舒適愜意。至於到達之後的地面交通,可以選擇自己租車,也可以選擇乘坐Uber之類的計程車。包括停車費在內的全部交通費用,領英全部cover。一天夥食費的報銷額度是65刀,在美帝每頓飯花20刀就能吃的很好了,65刀綽綽有餘。令我印象最深刻的是領英家的官方指定面試接待酒店,Wild Palms Hotel。住在這種充滿著濃鬱Bungalow風格的度假酒店裡,連我那因為緊張而繃緊的神經都變得舒緩平靜了。


Wild Palms Hotel的客房,給我一種來度假的感覺。。。


領英 Onsite

Onsite面試的時間是第二天上午9點45分一直到下午4點15分,幾乎是整整一個工作日。面試總共有七輪,每輪45分鐘,由一到兩名面試官參與,全程要求用會議室裡的白板手寫代碼。由於中午吃飯也算是一個輪,所以真正的技術面試是六輪。據說因為是在職跳槽的緣故,onsite會比應屆畢業生的面試多兩輪。接下來,請看我的onsite面試流水帳:

9:45-10:00, 在HR的帶領下參觀總部辦公大樓。然後被帶到一個小會議室,桌子上擺著傳說中的LinkedIn「面試三寶「:一張寫著面試者名字的歡迎卡片,一張LinkedIn Connection Map, 以連接圖的方式顯示你LinkedIn帳號的所有聯繫人,還有一些零食和水。和之前一直電話聯繫的獵頭寒暄了幾句之後,面試正式開始。

10:00-11:00, 兩位面試官。讓寫一個類似Tooltip的網頁小應用,當用戶把滑鼠放在LinkedIn頁面上某個聯繫人的名字上時,會出現一個類似Tooltip的預覽框,裡面有該用戶的頭像,姓名,學歷以及職位。要求先用HTML以及CSS寫出大致的layout,然後用AJAX得到所需要顯示的用戶信息。

11:00-11:45,兩位面試官。題目是寫一個function實現計算器裡的undo以及redo功能。其實就是考數據結構裡的stack。最後的拓展題感覺是系統設計,問我如果這種undo以及redo操作是用在佔據很大存儲空間以及用戶量很大的數據上該怎麼辦,我說那就給每個數據加上index,undo以及redo只用在index上,最後再用index去取數據。

11:45-12:45,吃飯。這輪單獨拿出來說。可能是我之前對LinkedIn的食堂期待過高,聽到過諸如LinkedIn家食堂比Google家還好吃之類的流言,結果事實卻讓我有點失望。飯完全沒有想像中的那麼好吃,也沒見到傳說中令人垂涎欲滴的烤羊排。不過帶我吃飯的小哥說食堂每周都換菜單的,估計我正好輪到了不太好吃的那一周。。。


午餐沒有任何驚喜。。。


吃完飯,不午休,面試繼續。。。

12:45-13:30。還是兩位面試官。出了兩道題。第一道題是將link插入到包含每一個用戶信息的div裡。link的代碼是:

<a href="profile.jsp?id=<memeber.id>"><member.name></a>

考點是DOM的操作,怎麼向DOM Tree裡添加新的節點。擴展問題是如果有很多用戶的連結需要一個一個添加到DOM裡,會造成reflow影響頁面性能,如何解決。答案當然是使用Dom Fragment。第二題是寫一個memoization function,記憶函數,思路就是利用hashTable存之前計算出的結果。

13:30-14:15,Product and Culture fit。這輪主要就是聊用戶設計和企業文化。主要考點是...英語口語?問到了很多UI以及設計方面的問題,比如談談你對Client Side Rendering(客戶端渲染)以及Server Side Rendering(伺服器端渲染)的理解,說一個你最喜歡的應用並列舉下優缺點,LinkedIn還有哪些需要改進的地方等等等等。

14:15-15:15,一位面試官。我本來以為這輪是考系統設計的,之前獵頭也特意跟我說過會有一輪系統設計,所以我花了挺多時間刷了系統設計類型的題,結果到頭來這一輪還是考JS。問題是Leetcode上第273題的變形版:把數字轉換成英文,要考慮小數。比如12.34輸出是Twelve and 34/100,就是按寫英文支票的那種方式轉換。

15:15-16:15,時間過得很快,終於熬到了最後一輪。這一輪是和大經理接著聊天,聊天的過程中穿插一些非技術類問題(behavior questions)。最後由大經理送客,onsite結束。

面試感言

這是一場讓我受益匪淺的前端面試。拿著彩色Mark筆在會議室的白板旁站著寫了一天代碼的我,充分的體驗到了身體被掏空的感覺。不僅僅是腰酸背痛手抽筋,不停想著怎麼寫代碼怎麼回答問題的大腦也瀕臨宕機的邊緣。這次的onsite面試讓我意識到,平常可以坐在椅子上用鍵盤不慌不忙地敲著代碼的生活是多麼的幸福愜意!

玩笑歸玩笑,我真的很感謝領英給我提供了這次絕佳的學習機會。在鞏固了很多舊知識的同時,也學到很多前端新技能。雖然最後並沒有收穫大offer,但領英家全程清晰明了的面試流程以及HR部門提供的熱心幫助真的是我目前所經歷過的所有面試中用戶體驗最棒的公司。除了在面試中會送給求職者小禮品之外,領英家的面試還有一個特點。無論是電話面試還是現場面試,HR都會在面試的前一天把第二天面試官的LinkedIn連結發給求職者,從而給求職者一個通過LinkedIn Profile來提前了解面試官的機會。能提供如此貼心的面試服務,即使如我這般最後收到的是拒信,也依舊滿懷敬意,心存感激!

我想,偉大的公司之所以偉大,可能就在於它會令人念念不忘吧~

相關焦點

  • 感覺身體被掏空:憑啥刷屏
    如果你的朋友圈,沒有被這個《感覺身體被掏空》刷屏,或許是網際網路公司的加班狗不夠多。或許是你的朋友們已經老了。或許是你是成功人士,你的朋友圈也是成功人士,對這首歌無感。朋友圈裡面,有人說,聽著笑抽,有人說,聽著哭了。如果你是老闆,或者是領導,看到員工轉發這首歌,趕緊讓可憐的孩子們去休個假吧,趕緊安慰一下疲憊的心。
  • 2021新一輪的前端面試題
    不知道今年是什麼原因,感覺春招來的特別早,本周一趕剛開始上班就有一大批的簡歷來襲,競爭激烈的面試也就此展開了。在此之際,為了能幫助大家找到一個理想的工作,我們在此開始會連續的發一段時間的面試題。在時間比較充裕時候也會發一些面試技巧和面試心得之類的,現在這些公眾號裡已經都有了,雖然是去年的但是「換湯不換藥」,說不定也有能幫助到你的。話不多說,先來看下本期的前端面試題匯總吧!
  • Web前端面試官會問什麼,不懂性能優化的前端不是好前端
    金三銀四臨近,馬上又到了要為跳槽面試做準備的時候。面試是每一家公司招聘流程裡面必不可少的環節,一個人求職能否成功,很大因素就看面試時候的表現了。,如果HR覺得還可以,會聯繫技術負責人面試,這時候會有專門的技術負責人向你提一些技術問題。
  • 這個Github項目,搞定前端開發所有React 面試題
    重磅乾貨,第一時間送達隨著JQuery的逐漸衰落離場,如今的前端開發框架界前三已被:Vue,React,Angular 牢牢佔據,Vue,React,Angular三巨頭也是我們前端開發工程師必須要學習的內容之一,三大前端框架相關問題在面試中常常會著重被面試官提問到。
  • 前端工程師還能找到工作嗎? | 極客大學
    雖然招聘網站上的信息好像也沒少太多,但是很多崗位投遞完都沒有反饋,哪怕有了面試機會,企業的要求也變得很高,她已經面掛了好幾家了。本來年前計劃的很好,而且這次求職目標很明確,就是想進大廠,奈何一場疫情打亂了所有節奏。
  • 前端新手教程!如何快速入門web前端
    我進入這個行業已經十一年了,面試過不少人,在企業裡也帶過不少新人和應屆生。所以這篇文章我想分享一些初學者應該怎麼學web,怎麼入門的個人經驗。心態和個人的一些學習方法先說心態問題,經常看到網上很多說前端容易,所以想來學習的。其實,目前隨著前後端分離,前端也逐漸趨向工程化,並不是嵌套在後端項目中寫寫htmlcss就可以的了,需要學習的東西也越來越多。
  • 感覺身體被掏空?這個真相有點汙啊!
    呵呵,原諒哥缺乏這種狀態的人生體驗,但想來,一定很愜意吧,多麼祥和,不以物喜不以己悲,內心小宇宙與天地大自然融為一體,腦海中一片混沌達到無我的境界,靜止而虛無,沒有貪痴嗔怒,分分鐘感覺自己頭頂聖光。哥的賢者模式:吃完了自助,發誓再也不會暴飲暴食,瞬間感覺自己也是個很有責任充滿自律的人。
  • 求職 | 一篇非常不錯的前端面試文章
    實際上參加面試工作的人都知道要想在一個較短的時間內(30min-1h)就對一個應聘者做出判斷其實是很難的,因此我們不得不想盡辦法去更加合理的去判斷面試者。下面是作者理出的一個思路:如果對方有github帳號,我們會儘可能的去了解TA在開源項目上的動態和他的開源項目。
  • 前端工程師面試時自我介紹該如何做?你的簡歷是不是該優化了
    在求職面試時,大多數面試考官會要求應聘者做一個自我介紹,一方面以此了解應聘者的大概情況,另一方面考察應聘者的口才、應變和心理承受、邏輯思維等能力。求職面試千萬不要小視這個自我介紹,他既是打動面試考官的敲門磚,也是推銷自己的極好機會,因此一定要好好把握。
  • 學姐來襲- 月薪8K前端工程師的面試是怎麼拿下的?
    學姐畢業後去一家公司應聘前端工程師,最後薪資8K入職,但是將被稱為滅絕師太的HR收的服服帖帖的。
  • 【新年跳槽必備】2020最新(前端原生JS專題)面試題 速領!
    每期面試題都是Richard老師認真準備的真的希望能幫到大家哦本期是前端原生JS專題1. javascript的typeof返回哪些數據類型.2.Ajax原理說明:大部分來自於朝夕教育學員從面試現場帶回來的真實筆試面試題,最新(前端原生JS專題)面試題,是您找工作的必勝法寶!!    朝夕教育全體老師(尤其是小編
  • Python工程師比前端工程師更好招?
  • 2019 前端面試題匯總(主要為 Vue)
    (給前端大全加星標,提升前端技能)作者:前端小醬https://segmentfault.com/a/1190000018225708
  • 80%的前端會答錯的問題:是什么元素?
    :「你寫前端這麼久了,那你知道 <img> 是什么元素嗎?」這裡再次暴露了一個現象級問題:面試到底應該問什麼?「面試造火箭,進去切圖片」是近年前端面試的痛點,甚至去年面試過一家,筆試題裡面居然有軟體工程題和項目管理題,然後面試官還各種裝X,說他很看中基礎,公司是某個集團旗下的子公司,然後就他不知道哪個網站 copy 的智商題大談自己的理解(好像是什麼獨木橋、兩個手電筒,幾個人,每個人過橋時間不一樣,沒有光照就 GG,求最佳過橋策略)。
  • 萬字長文,20-50K前端工程師部分面試題集錦 - 附答案(收藏!)
    小提示:如果發現小公司面試套你的技術和架構,迅速結束,開出天價薪資走人 下面正式公布部分面試題,以及答案出於對各個公司的尊重,不公布是哪家公司的面試題,以及面試技巧。只公布部分面試題和答案,以及分析問題的角度,學習方向,面試中考察的不僅僅技術深度,還有廣度,每個人不可能技術面面俱到,前端學習的東西太多,忘掉一部分也是正常。
  • 6 年前端遭遇職業瓶頸,加班有用嗎?
    在前端圈摸爬滾打了十年,見過很多人進來,也送過很多人離開,大家也挺不容易的。前幾天在一個前端交流群裡,看到兩個小夥伴聊到了工作瓶頸,就讓我感觸很深。平時遇到問題的時候,大家都會開玩笑地說「這個問題不難解決,加個班就好了」。
  • 一個合格的前端工程師簡歷應該是怎樣的
    一份好的簡歷是進入公司的敲門磚,一份壞的簡歷是準備工作的攔路虎,今天來聊一聊好的前端工程師簡歷應該是怎麼樣的,或者說至少我們應該避免哪些坑——
  • 百度、有贊、阿里前端面試總結
    segmentfault.com/a/1190000017049146前言人家都說,前端需要每年定期出來面面試
  • 一位經營快樂的 CEO 的一場開幕式
    開幕前一天下午,他開始帶領大約 100 名貴賓參觀樂園,走到探險島附近時,迪士尼樂園和度假區主席包正博把艾格叫到旁邊,告知了他大洋彼岸的另一場事故:就在兩小時前,還是奧蘭多迪士尼大佛羅裡達人度假酒店的海灘上,有一名叫雷恩的兩歲小朋友在水邊被鱷魚拖走了。
  • 招人 網頁設計師,前端設計師快快來!
    有網頁設計經驗,身體健康,能馬上進入工作狀態;5. 能夠承擔較大壓力工作,具有團隊合作精神和敬業精神,能與技術人員進行有效的溝通;6. 有一定數量體現自身專業水準的作品,請郵件中帶上附件。崗位職責:1. 參與色影無忌網站的設計,開發網站前端頁面和模板。2. 用web標準規範頁面代碼,優化頁面結構,提高用戶體驗。