阿里巴巴盒馬面試 6 輪暴擊,終獲 Offer!
關(guān)注我,做個專業(yè)的技術(shù)人!

作者:澤銳Masayel
https://juejin.im/post/5e9d2052e51d4546e5571a86
春招總結(jié)
記得當時大二的時候,看到實驗室的學長學姐忙于各種春招,有些收獲了大廠offer,有些還在苦苦面試,其實那時候的心里還蠻忐忑的,不知道自己大三的時候會是什么樣的一個水平,所以從19年的寒假放完,大二下學期開始就著手準備面試了:
知識總結(jié)
當時也是沒有什么方向,在牛客網(wǎng)上刷題,效果也不是特別好。后來和實驗室的一個去了阿里云的學長,做了一次長時間的交流,逐漸摸清了些學習方法。4月份的時候,開始制作自己的個人博客網(wǎng)站,并按照前端的技術(shù)棧,結(jié)合牛客網(wǎng)上別人的面經(jīng),開始系統(tǒng)地梳理知識體系,定時定量地寫總結(jié)博客。記得把前端的基礎(chǔ)加上數(shù)據(jù)結(jié)構(gòu)的知識斷斷續(xù)續(xù)直到8月-9月才全部寫完。(也挺感謝那個充實的暑假的哈哈)
一些實戰(zhàn)
之后到了大三上學期,我開始陸續(xù)找一些日常實習,10月份的時候,運氣還行,拿到了滴滴,美團,抖音的面試,只有滴滴到了二面,其他的全是一面掛??。當時面試完下來,我都會問面試官我有什么不足,怎么去改進,就這樣一邊繼續(xù)鞏固基礎(chǔ),一邊埋頭優(yōu)化自己的項目,在博客也更新工程化的知識總結(jié),一直持續(xù)到2020年的2月份。
現(xiàn)在想想,自己的春招這么順利,也同當時大二大三積累的多,有一定的關(guān)系。
反思
其實,面試的時候,首先,基礎(chǔ)一定要按照體系,反復(fù)地去復(fù)習,形成自己的體系樹,這樣面試官換角度來問基礎(chǔ)的時候,你要保證可以靈活地解決。第二,就是項目,其實我很同意一些人的看法,不建議大家做一些什么仿淘寶,仿餓了么這樣的一些網(wǎng)站項目,因為沒有自己的思考在里面,項目可以是多種多樣的,但項目的亮點,我總結(jié)的就是:這個項目有沒有自己個人的思考在里面,達到了什么樣的技術(shù)深度,技術(shù)廣度。這個項目有沒有多人協(xié)作,協(xié)作中遇到了什么工程化難題,如何解決,用戶的反饋如何,做沒做過后期調(diào)研。
這些都是考察一個工程師的綜合素質(zhì)的,有80%以上的能力,我個人覺得是一定能進阿里實習的。
阿里面試
阿里巴巴的盒馬部門,是我面過的場次最多,單次平均面試時間最長的一家部門了,整個流程持續(xù)了差不多1個多月,技術(shù)面試差不多有5-6輪。對校招的實習生的選拔好嚴格,同樣的,我也是花了一個月時間斷斷續(xù)續(xù)寫完了這篇面經(jīng)。
一面(2020 3.6)
前一天晚上投的簡歷,第二天下午就接到了面試電話
請先做個自我介紹
場景題:提交表單,常用的方法有哪些?應(yīng)用層,通信層發(fā)生了哪些過程?
post和get的區(qū)別,列舉一下
http常見的響應(yīng)碼,拒絕服務(wù)資源是哪個(403)
說一說這個系統(tǒng)是如何判斷機制的(前端鑒權(quán))
你剛才說了三方OAuth,講一講內(nèi)在原理吧
說說https的內(nèi)在原理,ssl握手過程
為什么要用非對稱密鑰,pms呢?公鑰怎么了?
說一說響應(yīng)式布局吧?
響應(yīng)式背后的瀏覽器原理你知道嗎?(不太知道)
旋轉(zhuǎn)動畫css,怎么去做?(animation+rotate)
dom樹和cssom樹原理也說一下吧
為什么link要在前,script標簽要在后面呢?原理
場景題:保證瀏覽器不受腳本的惡意攻擊,(xss攻擊,解決方法)
假如說你的富文本編輯器內(nèi)部要顯示腳本,該怎么辦呢?(不太清楚,我就盡可能說)
場景題:promise.resolve.then和setTimeout(有關(guān)事件循環(huán)event loop)
說說async和await的es5實現(xiàn)(我盡可能地說了一點)
場景題:這里有cat和animal子類和父類,如何進行es5繼承,至少說出5種。
說說你項目做的Vue spa首屏優(yōu)化吧(按需引入,懶加載路由,gzip壓縮,關(guān)閉一些插件...)
說說webpack打包構(gòu)建在實際項目中的優(yōu)化
算法場景題:數(shù)型系統(tǒng),包含字符串關(guān)鍵詞,如何對其作出效率很好的搜索?(balabala說了自己的一些看法,lz77算法,后來翻了翻算法書,應(yīng)該結(jié)合B樹來說)
一面追加面(2020 3.7)
編程題:請使用js函數(shù)寫出markdown轉(zhuǎn)html的文本編輯器。(2個小時)
算法題:在一個字符串中,找到最大不連續(xù)子字符串的長度。
一面評級很好,面試官balabala...(給予我建議)
二面(2020 3.9)
請做個自我介紹,學校里做的項目
說說你element-ui的按需引入吧
說說webpack打包優(yōu)化具體干了什么?為什么要這么做呢?(Dllplugin,happypack)
prerender-spa-plugin插件你用過?具體說一說吧
SEO優(yōu)化你做了?具體講一講吧
追問:你seo排名怎么樣了?(沒有進展??)
我記得NUXT.js也可以做渲染和seo吧?了解SSR嗎
小程序有碰到過復(fù)雜一點的業(yè)務(wù)場景嗎?(說了數(shù)據(jù)列表懶加載處理setData優(yōu)化問題)
小程序的框架你有了解嗎?要不說說幾個?
你了解過的前沿技術(shù)來說一說?(Vue3.0,F(xiàn)lutter,Serverless,Typescript)
說說Vue3.0和2.x的雙向數(shù)據(jù)綁定(object.definePorperty和Proxy)
說說你最感興趣的前端方向(跨端解決方案Flutter、React Native...)
一面面試官說你還可以,那我就不再問你基礎(chǔ)問題了,你還有什么要問我的嗎?
您對我的評價:balabalabala
三面(leader面)
之前就有跟盒馬的前端leader做過微信溝通,了解了一些阿里巴巴新零售的愿景。
先做個自我介紹
說說你的個人博客和你做的小程序吧
你剛才只說了技術(shù)層面的,功能層面沒有什么創(chuàng)新嗎?
你現(xiàn)在還有開展什么新項目嗎?
我不管技術(shù)層面,還是來到功能層面,除了這一個功能就沒有創(chuàng)新了嗎?(頓時語塞。。)
有這么一個功能場景,老師隨機點名,上堂課沒來的同學被抽到的概率會大幅增加,怎么去做?
還有一個功能場景,你的博客系統(tǒng)如何分享文章?
還有一個功能場景,你可不可以做一個在線提交作業(yè)的平臺,讓老師不僅可以收到作業(yè),還可以在平臺上對作業(yè)進行批改?說說具體技術(shù)實現(xiàn)。。。
我的問題問完了,你現(xiàn)在還有面其他的部門嗎?balabala
對我的評價,balabala說了很多很多??,其中用技術(shù)靈活地解決各種場景問題是非常要緊的素質(zhì)!!!
說后面還會有P9級別的面試/(ㄒoㄒ)/~~
四面(技術(shù)終面)
正式校招系統(tǒng)開放,選擇了盒馬的邀請。四面在3月23號的下午打電話過來了,聽口音像是個北方人。看到我的簡歷,拋出問題:
請先做個自我介紹吧,并說說你最有成就感的幾個項目
詳細地講講Vue的首屏優(yōu)化,具體的技術(shù)點
優(yōu)化有過量化評級嗎?說說具體為多少?怎么去做的?
有一個問題,你如何去確定哪一種方式是對整個首屏渲染優(yōu)化起到最關(guān)鍵作用的?
我們現(xiàn)在回過頭來,你可不可以按照軟件開發(fā)的流程模塊再來詳細地說說博客的整體優(yōu)化?各個方面的性能優(yōu)化?(設(shè)計,編碼,打包部署,上線體驗。。。說了一部分)
預(yù)渲染prerender-spa-plugin能詳細講講?
你了解了原理,那么你引入這個prerender插件對于整個項目的架構(gòu)產(chǎn)生了什么樣的特別影響?(講了路由沖突)
對于上線后的用戶體驗,你打算怎么做改進?
功能層面是這樣,技術(shù)層面可以來說說?
數(shù)據(jù)列表的懶加載這個說的好,那有這么一個場景,你提交了新的文章,由用戶在刷你的博客,你怎么讓用戶通過一定的事件=來查看你的新文章,不要通過頁面整體刷新,還是以動態(tài)引入的方式?
我們再次回到剛才項目的性能優(yōu)化這個點上?在你解決首屏的時候,在網(wǎng)絡(luò)通信的每個階段,哪個階段是性能開銷的最大的地方,優(yōu)化后有何變化?如何解決?
SEO怎么做的,講一講技術(shù)細節(jié)
你有對你的用戶群體做過數(shù)據(jù)的量化統(tǒng)計嗎?說說你有什么樣的思路,如何去利用好這些數(shù)據(jù)?
這邊有個問題,如果單純地通過前端來分析用戶的行為,開銷會非常大,你有什么好辦法?說說思路
如果過了很長時間,有人問你,一個高性能的博客頁面該如何搭建,你會按照什么樣的邏輯取來跟他分析這些零碎繁雜的性能優(yōu)化?
好了,博客項目只是你個人對于技術(shù)的探索,你還有沒有學校里真正擁有用戶的實際項目呢?說說看
功能描述的很詳細,這里有個問題,總所周知,二維碼有一定的時效性,可傳播性,如何防范那些沒來同學也掃到二維碼了?說說方法
沒來的學生,你們就會采取這種單一的方案嗎?還有沒有別的?
說說你們項目組的團隊,如何分工的?
在這個團隊對于項目的功能構(gòu)建中,你起到了什么作用呢?
你剛才說到了前后端分離,講講你和后臺同學如何落實好前后端分離的?
對于后臺的數(shù)據(jù)接口,經(jīng)常會發(fā)生一些分歧,你們團隊是怎么化解這種分歧的,有沒有一種方式增進團隊之間的溝通?
這小程序現(xiàn)在的用戶量怎么樣呢?日活又如何?
同樣的,再說說這個小程序性能優(yōu)化做了哪些呢?
你對于前端未來的開發(fā)?以及你以后的職業(yè)規(guī)劃?
你希望阿里能給到你什么樣的經(jīng)歷?在阿里希望能學到什么?
這邊在杭州,之后方便過來對吧?
我的問題問完了,你這邊有什么問題?
慣例您對于我的評價:ok,在應(yīng)屆生群體中,你已經(jīng)具備了工程師的素養(yǎng)和一定開發(fā)經(jīng)驗,但性能優(yōu)化這一塊是一個永無止境的過程,應(yīng)當不斷追求卓越balabala。。。。。
面下來差不多一個小時,真的少見。。。
五面(P9 交叉面)
約在了3月25日的晚上,面試官比較嚴肅,問的問題也蠻有深度的,時間不長30分鐘,但問的問題也比較廣。。。
請先做個自我介紹
說說你最有成就感的項目
你的博客網(wǎng)站,難道沒有分析過用戶的行為嗎?對于用戶量很大的情況下,難道沒有做過性能分析嗎?
詳細地講一講你做了哪些性能優(yōu)化?
就這么多嗎?對于效果你有做過量化的評測嗎?
對于首屏中的FP,F(xiàn)CP,F(xiàn)MP,TTI你又分別去做量化的考慮嗎?
對了,你如何通過代碼來分析首屏的FCP時間?
除了這些,難道就沒有進一步優(yōu)化嗎?
prerender預(yù)渲染是什么原理呀?
這樣的一種插件引入,為整個性能提升又帶來了多少量化的參考呢?你有去研究過嗎?
說說你擁有的實際用戶量的項目吧?
這個小程序已經(jīng)上線對吧?你們團隊有沒有對這個小程序做過用戶行為的調(diào)研呢?
我想要知道的是在程序里面有代碼去自動去分析用戶的行為嗎?
我看你懂Vue,React有學過一些嗎?系統(tǒng)地說一說兩者的區(qū)別
Vue如何解析template模板,diff算法兩者的不同是什么??
詳細地說說前端的動畫種類?
canvas有了解過嗎?它適用于什么樣的場景?
你對于前端前沿技術(shù)的看法?
你剛剛講了flutter,Dart語言能不能說說看?
React Native做過項目嗎?
你希望在未來,你在阿里能學習成長到什么?
我的問題問完了,你這邊有什么問題呢?
對我的評價:評價我先不給你,我說輸送我對于你的建議,繼續(xù)探索下去,保持好奇心,用最前沿的技術(shù)嘗試去做項目,前端的知識很廣,需要去不斷深入了解原理知識balabala。。。。(最后)我覺得你還是不錯的,加油吧。。。。
后來,leader發(fā)了微信,交叉面順利過了,剩下的就是HR了。
HR面
....省略
-------- THE END --------
??

