4號通過阿里工作的學長進行內推,7天簡歷評估,11號接到電話面試,儘管猝不及防回答倉促,但好在前期準備充分,通過。3天后進行現場面試,通知時間爲早上10點。當日設了七點鬧鐘,結果五點五十三分驚醒後再無法入睡,起牀,重新翻看之前做的筆記和重點,在lintcode上找了幾道可能性較大的題進行練手。10點準時在螞蟻金服總部開始面試,十點四十七分結束。15號收到通知,現場面通過,16號進行HR面,22號收到Offer。
面試內容如下:
一、 電面:
自我介紹
項目情況:
對你來說影響最大的一個項目(該面試中有關項目問題都針對該項目展開)?
爲什麼會想做這個項目?這個項目的ideal是誰提出來的?
項目中如何實現的大數據的傳輸和存儲
項目中哪一部分最難攻克?如何攻克?
基礎知識考察:
模塊化的好處
Htttp協議
hashmap和concurrenthashmap區別及兩者的優缺點
對MySQL的瞭解,和oracle的區別
對設計模式的看法和認知
有哪些設計模式
如何實現分佈式緩存
多線程如何避免死鎖
關於樹的算法題-二叉樹的鋸齒形層次遍歷:http://www.lintcode.com/zh-cn/problem/binary-tree-zigzag-level-order-traversal/
Java的垃圾回收機制
對Runtime的瞭解
電面過程中非常注重基礎知識的考察,面試前務必對基礎知識內容進行復習和梳理。基礎知識考察的內容一般會圍繞項目內容進行展開,在前期對項目介紹進行準備時需適當換位,思考面試官的提問邏輯,避免給自己設下陷阱。
二、 現場面:
背景瞭解:
爲什麼要選擇編程這條路
何時開始編程
如何進行自學
閱讀過那些書籍
項目考察
第一個項目:
項目最終實現效果
項目具體部分使用的設計模式並簡述選擇理由
項目有何需改進之處並初擬改進方案
第二個項目:
項目運行過程中成員是否曾就某一點發生爭執?作爲Leader你是如何解決的?具體事例?
基礎知識考察:
數據庫的範式
JVM內存模型及調優
瀏覽器的緩存機制
如何解決高併發問題?是否進行過相應程序的編寫?
LintCode 算法題 - 最小子串覆蓋。原題鏈接:http://www.lintcode.com/zh-cn/problem/minimum-window-substring/
想問的問題
技術面中項目佔了相當一部分時間,項目中從技術到個人團隊領導能力,從完成執行能力到思想靈活度,都是面試官希望得到的信息。因此,必須對自己的項目多方面展開準備,項目回顧的過程中需不斷思考改進方案和具體措施。
算法題部分由於之前練習時做過且在 www.jiuzhang.com/solution 上研究過參考答案,此次應對較爲輕鬆,面試官反應較好。在算法題考查過程中,正確率和代碼效率都是面試官關注的重點,因此在Lintcode上刷題時必須強調每一個細節的改進,不能僅安於正確。上述參考網站中的標準答案工業風較強,適合實際工作,建議在刷題過程中充分利用。此外,面試前做兩道算法題練手可使面試時寫算法更爲嫺熟,如時間富裕可嘗試。
三、 HR面:
業餘愛好
爲什麼不參加競賽?
你覺得你在項目運行過程中作爲組長是否最大限度發揮了組員的優勢?具體事例?
如何看待阿里在大數據方面的投入?對阿里的發展有什麼建議?對螞蟻金服的發展有什麼看法?
職業規劃,今後想發展的工作方向
家鄉在哪裏,是否願意長期在杭州發展?
薪酬問題及入職情況
適當藏拙很重要,因爲作爲面試者,我們很難判斷什麼不足對公司來說是無法容忍的,如果臨場隨性發揮,就容易出現語言漏洞,從而被作爲切入點暴露自身缺陷。因此,面試前要仔細準備各種問題,對語言進行推敲,儘量將話題引向有利於自己的方向。