1. 程式人生 > >阿里巴巴2018秋招總結

阿里巴巴2018秋招總結

這是去年8月份秋招的面試,五面都面完了,給大家貢獻乾貨吧。我沒寫問題的答案,有什麼問題可以留言區問我。

一面 電話面(1小時)
電話面問題不多,但是十分考驗對相關知識熟悉程度,面試官是 P7(不理解這個就去百度吧)

以前做過什麼專案?使用了什麼技術?(balabala…)
繼續上一個問題,為什麼使用 gulp 不用 webpack?
你都使用過哪些框架?(就說熟練XXX框架,用過了解XXX框架)
繼續上一個問題 zepto 和 jquery 是什麼關係,有什麼聯絡麼?
有沒有看過框架的原始碼?(沒看完一個框架完整的原始碼還敢出來混?我只看過 jquery)
繼續上一個問題,jquery 原始碼中你對哪個部分印象最深,講一講?(我就說了建構函式返回原型鏈中的 this)
最近在實習是嗎,實習了多久,在哪實習,實習的工作是什麼?
實習過程中能不能完成公司給你的工作?工作量如何?
實習過程中遇到什麼難題,是怎麼解決的?
函數了解嗎?閉包是什麼?為什麼要用閉包?commonJS 知道不,define 時用閉包做了什麼?
物件熟悉嗎?一般考你物件的話具體會考什麼?(居然還可以這麼提問)
繼續上一個問題,你知道原型鏈是幹啥的麼,為什麼要有原型鏈?
熟悉 this 嗎?js 中的 this 和 c++/java 中的 this 有什麼區別?
繼續上一個問題,如果在建構函式中為 this 賦值 1 會發生什麼?
繼續上一個問題,那應該怎麼改變 this 的值?
學習前端多久了,平時怎麼學習前端?
未來3-5年有什麼規劃?(我提到了全棧,於是有了下面一個問題)
什麼是全棧,你理解的全棧是幹嘛的?
傾向於走什麼技術棧?(我提到了 nodejs 於是又有了下面 一系列的問題)
nodejs 你瞭解多少?
所有的 ES6 特性你都知道嗎?如果遇到一個東西不知道是 ES6 還是 ES5, 你該怎麼區分它
Express 和 koa 有什麼關係,有什麼區別?
為什麼選 nodeJS 為什麼不喜歡 php 和 python?
你對 php 和 python 掌握的怎麼樣?
你還有什麼問題想問我?
對加班有什麼看法?
二面 視訊面(1.5小時)
面試一開始面試官給我展示阿里遠端會議的各種酷炫功能,隨後開始面試。面試官還是 P7

首先是給了好幾個程式碼題,問其中每個 console.log 的輸出是什麼。這裡的程式碼的確很多,面完全部面試寫這個文章的確記不起來了。值得一說的是每個題都有陷阱,十分容易錯的地方,我也不例外的掉坑裡了,面試官會告訴你錯了,然後讓你自己思考為什麼錯?正確的應該是什麼?當然還要解釋原理。

看完了題目就該自己寫了,共享桌面。

寫一個_new()函式,實現 new 關鍵字的功能;
寫完了,需要解釋思路,當然如果有那個地方寫錯了,一定是要深究的。這裡面會包含一些深層次的問題:prototype 和 proto 的關係是什麼?

三面 視訊面 (40分鐘)
二面面試官很愉快的說我通過面試了,去叫了另一個面試官。這次的面試官,應該也是 P7,上來就問問題:

自我介紹一下(發現問題點時打斷介紹,就開始問問題)
你前端是自學的呀,怎麼個自學法?
你都看過什麼書?最近在看什麼書?
用過什麼框架?有沒有看過什麼框架的程式碼?
你做過什麼專案?
有沒有學過設計模式?
說一說觀察者模式吧!能不能寫出來?(能,那就寫)
為什麼只知道這麼幾個設計模式?
你最大的優點是什麼?
那你最大的缺點呢?
如果有個功能你寫的程式碼有一個 bug , 剛好你同時的程式碼可以彌補你這個 bug, 但是他的程式碼有新的 bug 怎麼辦?
如果小組開發的時候對於一個軟體的各個功能,每個人都有一定的 bug 怎麼辦?
熟不熟悉 git,你用它做過什麼?
你大學期間做過最瘋狂的事情是什麼?
熟不熟悉 http? http 和 https 有什麼區別?
你除了寫部落格還有什麼輸出?
做程式碼的時候有沒有考慮過安全問題?怎麼防止注入?
如何防止 XSS 和 CORS? 被攻擊了該怎麼辦?
現在你的領導給你了一份工作,要求你一個星期完成,但你看了需求以後估計需要3周才能完成,你該怎麼辦?
四面 交叉面試 電話(50分鐘)
我投的是天貓事業群,交叉面試就是找個別的事業群的面試我,防止作弊。這次是一個 P9 段位的面試官:

自我介紹一下
為什麼學前端?
你學過 c++ 是麼,問你幾個 c++ 的問題(簡歷裡寫了以前學過 c++):
你學 c++ 到什麼程度了?
你用過 STL 嗎?裡面的 Map 類是什麼結構的?
static 關鍵字怎麼用?
static 變數儲存在堆還是棧?
Qt 中 main 的執行過程是什麼樣的?
最近做過什麼專案?使用了什麼框架?
有沒有看過 wordpress 等部落格框架的原始碼?
為什麼使用 Express 不用 koa?
gulp 和 webpack 有什麼區別,為什麼你要用 gulp?
知道 XSS 吧,怎麼防護?cross-site script
你專案中如何進行使用者輸入過濾的?都過濾了那些內容?(根據回答有了下一個問題)
為什麼沒有過濾標籤?
知道 CSRF 麼,怎麼防止 CSRF? cross-site request forgery
你前端用了Bootstrap, 知道它的響應式是如何實現的嗎?
媒體查詢的原理是什麼?
知道流媒體查詢嗎?
那我告訴你什麼是流媒體查詢(……此處省略100000字),你懂了嗎?(我說懂了就有了下一個問題)
現在要你實現一個流媒體查詢,你怎麼做?
你現在在實習是麼,實習的主要工作是什麼?
你實習過程中在做一個 app, 如果讓你來主導這個專案,你使用什麼框架?為什麼?
學過 es6 是麼。知道 promise 麼?它用來做什麼?
promise 只有2個狀態,成功和失敗,怎麼讓一個函式無論成功和失敗都能被呼叫?
Promise.all() 是幹什麼用的,怎麼用?
怎麼判斷一個物件是不是陣列,儘可能多的說出你知道的方法?
怎麼把一個類陣列物件轉為陣列?
知道本地儲存嗎,localStorage 是幹什麼的?
localStorage 的最大儲存空間是多少?如果存超了對怎麼樣?
localStorage 是註冊在幾級域名底下的?
說一下 Nodejs 的 event loop 的原理
Angular 和 vue 的資料繫結是怎麼實現的?有什麼區別?
平時是如何學習 js 的,從哪裡獲得相關資訊?
mysql 和 mongoDB 有什麼區別?
五面 HR面 電話(30分鐘)
你平時的是怎麼學習前端的?
你的專業比較偏硬體,為什麼不學習硬體了?
你為什麼要學習前端?
你轉行學前端和專業的畢業生比能有什麼優勢?
你學習過什麼框架,現在在學習什麼框架?
為什麼先開始學習 React 而不是 vue、Angular 或其它框架呢?(不愧是阿里巴巴的 HR,技術面感覺撲面而來)
你平時是如何獲取前端知識的?
你是通過業餘時間完全自學的前端,你是如何制定學習計劃和學習目標的?
你學習的過程中,有沒有真正的做過什麼東西?
除了做這些東西你還有什麼輸出?
有沒有經常和前端同行業的人交流,通過什麼途徑交流?
你現在在實習是麼,實習工作是什麼?
那你為什麼不想留在現在實習的公司?
你在實習期間最大的收穫是什麼?
前端現在更新的這麼快,你對前端行業有什麼看法?
現在給你一個專案,有兩個框架可以選擇,一個你比較熟悉,另一個是個新框架,大家都沒用過,你會如何選擇?
你家是(xx隱私省略)的,現在在青島上學,以後讓你來北京的話你有什麼看法?
你除了前端還有沒有想從事的行業,不限於技術?
你還投了哪些公司,現在招聘進度如何?
寫在最後
我覺的整個過程心態實在太重要了。作為一個前端人,阿里巴巴,是我最想去的國內公司,我看重的也不是他薪水如何,完全在於他的技術,這一點 github 可以說明一切。阿里是個十分重視基礎的公司,和浮躁的前端大環境形成鮮明的對比。但其實,前端的更新速度如此快,還是基礎的東西日久彌新。

我不是第一次投阿里巴巴,所以心態一開始還是挺平和的。電話面也很放鬆,也適當的開了個玩笑(給面試官黑了一把世界上最好的語言)。但這是我第一次電話面試通過(以往不是被筆試虐了,就是掛在了面試。別問我投過多少次),隨後通過二面,三面,hr面,真的會感到越來越緊張,越來越患得患失。平時在公司實習,本來就沒有時間準備面試,但偏偏這種心態十分影響複習效率。可能是真的太在乎這個面試結果了,在整個過程(1個月)中都會感覺這是我離夢想中的公司距離最近的一次,絕對要保證萬無一失,要表現的很好。這是自己給自己的一種無形壓力和緊張情緒,有時連做夢都在面試!!還好我堅持下來了,堅持到最後了。

技術型崗位的應聘雖然不需要為每個公司有針對性的編寫簡歷,但是一定要足夠了解這個公司,明白公司需要什麼,你能為公司帶來什麼。
如果你還年輕,距離找工作還有幾年,那你需要一個清晰的規劃,學什麼知識點,掌握什麼技術,這些規劃都應該以目標公司的需求為導向。