1. 程式人生 > >《2016阿里巴巴校招內推offer之JAVA研發工程師》

《2016阿里巴巴校招內推offer之JAVA研發工程師》

寫在前面 : 2015 年 7 月初,參加阿里巴巴校招內推, 8 月 15 日拿到研發工程師 JAVA 的 offer 。我的專業並非計算機,也沒有在網際網路公司實習過,只有一些學習和麵試心得,供大家參考。阿里巴巴 90%以上使用 Java ,所以下面的分享也基於 Java 崗,如有表達不準確的地方,請提出建議和指正。

7 月上旬投遞簡歷, 7 月 27 號至 29 號連續三天,每天一面,在 8 月 15 日正式收到校招 offer 。今年阿里依舊火熱,看簡歷編號,內推階段大約有 6萬份簡歷,而據 HR 告知實際通過比例略大於 1% ,所以競爭還是很激烈。

一面 :
時間約 50 分鐘,注重基礎,廣度加深度,刨根問底。
自我介紹熟悉 Java 、 jvm 、 Python 、 Hadoop( 包括 HDFS 、 MapReduce 、 HBase 等 ) 、優化演算法等。所以,針對這些來提問。
1. Hashtable,HashMap,ConcurrentHashMap 底層實現原理與執行緒安全問題(建議熟悉 jdk 原始碼,才能從容應答)
2. MapReduce 輸入輸出格式
3. Mapper 和 Reducer 的功能
4. MapReduce 的工作機制,Shuffle過程
5. HDFS 工作原理,如何實現 HA
6. 節點間通訊機制
7. DataNode 如何冗餘備份
8. Java 的引用型別有哪幾種
9. 抽象類和介面的區別
10. 設計模式會哪些
11. 工廠方法模式的優點(低耦合、高內聚,開放封閉原則)
12. 陣列多大放在 JVM 老年代(不只是設定 PretenureSizeThreshold ,問通常多大,沒做過一問便知)
13. 老年代中陣列的訪問方式
14. GC 演算法,永久代物件如何 GC , GC 有環怎麼處理
15. 誰會被 GC ,什麼時候 GC
16. 如果想不被 GC 怎麼辦
17. 如果想在 GC 中生存 1 次怎麼辦
18 快取設計與 LRU
19. hashCode() 與 equals() 生成演算法、方法怎麼重寫
20. 關係型和非關係型資料庫區別
21. HBase 原理與工作機制,如何保證 HA ,如何保證宕機資料可恢復
22. 資料庫處理大資料的優化
23. 索引的分類
24. 模糊查詢效能
25. 排序演算法與時空複雜度(快排為什麼不穩定,為什麼你的專案還在用)
26. 逆波蘭計算器
27. Hoffman 編碼
28. 查詢樹與紅黑樹
29. Spring 框架等
30. 專案
31. jvm 如何分配直接記憶體, new 物件如何不分配在堆而是棧上,常量池解析

一面總結 :
面試官竟然主動對我說謝謝 … 驚我一身冷汗,不過立刻意識到肯定過了。
1) 面試問題主要根據自我介紹和專案,所以,對寫在簡歷上的內容,一定要理解的清清楚楚,也不要為了簡歷看起來牛比而羅列經歷,尤其是自己淺嘗輒止的專案。
例如,建議不要輕易說自己寫過爬蟲,因為沒那麼簡單,一般會追問懂 Scrapy 框架嗎,為什麼不做成分散式的,如何並行爬取多個網站,如何設計並行任務分發器,爬來的資料如何儲存,索引,檢索,你覺得還有什麼可以改進的。爬蟲屬於搜尋引擎框架的一部分,面試爬蟲很容易給自己挖一個 “ 系統設計 ”的坑。
2) 阿里注重基礎、潛力和興趣,而一些初創公司往往更注重立即上手的技能,這一點在面試中有所體會。
3) 阿里注重基礎,但是僅有基礎是不夠的。
專案經歷與實習經歷可以加分,一線網際網路公司的實習經歷可以鍍金,由於師門嚴禁實習,因此需要專案彌補,除去研究的課題多目標優化演算法, Hadoop 是個“大寶貝”,它包含了 java 、 jvm 、設計模式、大資料處理框架、分散式計算、 HA 、負載均衡、主備一致性等,也包含分散式檔案系統、分散式計算框架、非關係型資料庫的實現等,幾乎面試官問的任何場景的問題,都可以在 Hadoop 中找到解答,所以, Hadoop 是我最大的加分項,彌補了自己零實習的弱點。
至於 Hadoop 需要掌握到什麼程度,才能應對面試?原理上,可以回答上面提到的點,操作上,自己可以實現淘寶的資料魔方的 Demo 。
4) 面試官的問題不會了怎麼辦?個人不建議直接說不會,而是要 “ 扯 ” 。
例如,問我 Spring 、 iBatis 等框架,而我一點不懂,但我說會 Hadoop ,你有什麼業務需求,我幾乎都可以在 Hadoop 找到實現。問我 MySQL 資料庫,我也不精通,但我會告訴他 HBase 如何解決。
5) 關注面試的公司,關注阿里的開源技術與自主框架,例如,問到 jvm 的時候,我會向面試官闡述淘寶在 jvm 方面的優化工作,以及 jvm 在 Hadoop 方面的優化。有興趣的同學可以關注淘寶 “ 莫樞 ” ,後離職加入 Oracle 、 Azul ,在虛擬機器方面做了很多出色的工作,詳情關注: ITeye 的高階語言虛擬機器專欄。
6) 回答問題時,切忌使用 “ 應該 ” 、 “ 好像 ” 、 “… 吧 ” 等不確定性詞彙,因為搞技術還是需要嚴謹的,面試官不想招聘一個什麼都靠猜測的同事。

二面 :
時間約 23 分鐘,感覺是交叉面,是其他部門的主管,聽語氣感覺級別在 P8 以上。
首先也是自我介紹,針對自我介紹和專案,開始提問。
1. IO 流,位元組流 –> 字元流
2. 遞迴讀取資料夾下的檔案,程式碼怎麼實現
3. HashMap 與執行緒安全問題
4. rehash
5. Web 框架
6. 專案與 Hadoop
7. 問我未來的職業規劃
8. 問我有什麼問題(問了關於阿里工程師文化的問題)

二面總結 :
1) 自我介紹要抓住重點,與崗位匹配,比如面技術,社團經歷可以不說(但是 hr 面非常有用)。
2) 二面問的技術內容很少,感覺是可以看到一面成績,進行簡單的確認。所以,筆試或一面表現好,對後面的面試很有幫助。
3) 當面試官不再關注你的過去,而是和你談未來談理想的時候,基本表明面試通過了。例如,問職業規劃和你對阿里的想法等問題的時候。

HR面 :
知乎上稱阿里的 HR是神存在,掌握生殺大權,多少英雄好漢歷經殘酷的技術面,卻倒在HR面前,但是從個人的經歷,感覺HR姐姐還是很 nice 的。
40 分鐘,並沒有自我介紹,而是直接轟炸。
1. 暑假在學校做什麼呢
2. 平時喜歡閱讀什麼書
3. 問我俱樂部主席的工作,有什麼收穫(社團主席,是HR的興趣點)
4. 課題是什麼,遇到什麼困難,你是如何解決問題的
5. 為什麼不從事本專業相關工作
6. 你專業是電磁場,為什麼要轉行
7. 你是一個什麼樣的人
8. 你的缺點
9. 曾經最大的打擊
10. Web 框架不會怎麼辦,以後工作的內容和你現在研究的不同怎麼辦
11. 職業規劃
12. 如果能去杭州家人同意嗎
13. 向我介紹了所應聘部門
14. 問我有什麼問題

HR面總結 :
1) 一定要坦誠,HR 閱人無數,更別說阿里的HR了。
2) 面試官是在考察適合自己團隊的人選,而面試者,也是在尋找適合自己的團隊和 manager ,這是雙向選擇的過程,所以自己的心態要和麵試官持平。記住,面試官是在尋找團隊夥伴,不是在對你考試,這種心態有助於減輕緊張的心情。
3) 社團主席讓HR產生了好感,社團經歷對自己的成長,看不見摸不著,但在時間管理、情緒控制、團隊管理等方面,有很大的收穫。程式猿的工作壽命並不長,當技術過硬,開始帶團隊的時候,相信一定會感謝自己在社團的經歷。

推薦書目 :
限於師門不允許實習,所以只能在學校學習乾貨,提升內功。一直相信,理論決定上限,技能決定下限。修煉好內功,學習各種武功招式便輕而易舉。
《 Java 程式設計思想》, Java 業界神書,不建議入門閱讀,相比較,《 Java 核心技術 I 》非常適合入門。《 Java 核心技術 I 》,如果不想啃《 Java 程式設計思想》,這本是絕佳的入門神器。
《 Effective Java 第二版》,別猶豫了,深入 Java 必讀,因為 James Gosling 也讀,務必打好基礎再讀,否則會打擊學習 Java 的信心。居家旅行,催眠必備。
《 Java 解惑》, Effective Java 作者又一力作,解析 Java 的各種坑。
《 Java 併發程式設計實戰》,玩 Java ,怎麼能不懂併發,併發的世界很奇妙。
《 Java 特種兵》,淘寶謝宇所著,洋洋灑灑,也是進階讀物,不可入門,作為補充參考。
《深入理解 Java 虛擬機器》,周志明所著,國內業界良心之作,建議參考 ITeye 高階語言虛擬機器專欄,也可與《 Java 效能優化權威指南》參考來看。
《 Java 效能優化權威指南》,深入理解 Java 效能優化細節, James Gosling 力薦。
《設計模式之禪》,一個個生動的例子,讓枯燥的設計模式也變得有趣,不建議初學者直接看 GOF的《設計模式》。
《 Hadoop 權威指南》,掌握 Hadoop 必看,不用多說。
《 Hadoop 技術內幕》之 HDFS 、 MapReduce 、 YARN ,參考與補充。
《 Python 核心程式設計》,對 Python 的講解深入淺出,雖然基於 Python2.5 ,但是核心思想不變。Python有很多庫,建議閱讀官方文件,裡面有詳細解釋和示例程式碼。
《計算機網路》,網路基礎入門必備。
《大型網站技術架構》,簡單實在,理解大型網站架構,學習 Hadoop 之後才看發現架構上很多相似之處。
《 Linux 核心設計與實現》,拋開了 Linux 核心紛繁的原始碼,給出了關鍵的架構與實現,與《深入理解 Linux 核心》互補,重點推薦。
《深入理解 Linux 核心》,幾乎所有關鍵的疑問,都可以在裡面找到解答,需要時查閱,千萬不要從第一頁開始讀。
《程式設計師面試金典》,注意不是 “ 寶典 ” ,涉及演算法、物件設計、概率智力題等,面試神器。
《劍指 offer 》,刷題必備,面試利器。
《程式設計之美》,你會發現各大公司的演算法題好像似曾相似。
《大話資料結構》、《演算法》、《演算法導論》,演算法是我的弱項,以我的教訓建議演算法長期準備。
實際上,上面的書目我表示也只看了 50% 不到,大神的作品需要反覆研讀,比如《 Effective Java》。

個人體會, Hadoop 是個“大寶貝”,尤其對於我這樣零實習,少專案的非科班學生,在面試的時候化解了很多面試官的刁難問題。它是 DT 時代的關鍵技術,包含了太多大神的心血和智慧,深入理解,不僅是 Java 與程式設計的提升,而且提高架構與系統設計的能力。抓蛇抓七寸,對於 Hadoop 一樣,其中關鍵的元件有分散式檔案系統、分散式計算框架、非關係型資料庫、分散式協調服務等,而各個元件都有其核心架構與關鍵技術點,認清架構,由廣度到深度,各個擊破。理論加實踐,建議在 Debug 中探索工作機制。

最後推薦一些技術資源, lintcode 、 leetcode 刷題必備(適可而止,不同於北美 FLAG 和一些startup 公司,國內的面試往往需要很多應用技術,也就是專案), July 的 csdn 部落格 “ 結構之法 演算法之道 ” ,資料庫可以學習淘寶沈詢的視訊和部落格,作業系統( Linux 程序管理與排程、核心同步、虛擬檔案系統、記憶體管理、程序地址空間等),推薦網站: 牛客網, 七月演算法,部落格線上, ImportNew 、 ITeye、 InfoQ 、 csdn 、部落格園, IBM developerWorks 等。另外,可以關注技術大牛的微博,開開眼界也是極好的,例如寒冬 winter 、淘寶沈詢、淘叔度、淘寶丁奇、阿里正祥、淘寶正明、淘寶褚霸、RednaxelaFX 、 2gua 等大神。
對於非應屆生,有足夠的時間,修煉內功,切忌基礎不牢就模仿武功招數。對於應屆生,時間不多,可以刷刷題,多看看面經,磨磨槍。

相關推薦

2016阿里巴巴offerJAVA研發工程師

寫在前面 : 2015 年 7 月初,參加阿里巴巴校招內推, 8 月 15 日拿到研發工程師 JAVA 的 offer 。我的專業並非計算機,也沒有在網際網路公司實習過,只有一些學習和麵試心得,供大家參考。阿里巴巴 90%以上使用 Java ,所以下面的分享也基

【線上筆試題解題報告系列】網易2017筆試程式設計題【持續更新】

網易今年把內推筆試放在牛客網上辦,然後出了一批程式設計題。 題目在: 一共18個,好多(不同崗位抽3個不同的題的樣子)…… 慢慢寫吧,做一題寫一題。 以下題解將假定讀者有下列知識,對下面所列舉的細節不再贅述。 (如果有必要對此進行教學的,請站內信我) C/C++的基本

2016 -- 阿里巴巴前端 -- 四面面試經歷

匆匆找了某溼兄內了個推,才過兩天就收到面試通知了,好吧首先是第一面。 其實也沒什麼可說的,一面主要問基礎,二面才進入專案實習之類的探討,三面兩者都有吧但還是綜合多一點 腦子混了記得不多了,記得多少就記錄多少吧,嗯都是問題。 一面: 1.面試官一上來就先大概瞭解實習的情況,但不深入,也不談實習具

網易2016筆試程式設計題

牛牛想嘗試一些新的料理,每個料理需要一些不同的材料,問完成所有的料理需要準備多少種不同的材料。 輸入描述: 每個輸入包含 1 個測試用例。每個測試用例的第 i 行,表示完成第 i 件料理需要哪些材料,各個材料用空格隔開,輸入只包含大寫英文字母和空格,輸入檔案不超過 50

Java阿里電話一面(2019

2018年7月18日,晴,11號投了阿里,16號收到內推流程,沒想到很快電話一面就來了。。。猝不及防啊。瞬間轉陰。還是告訴面試官10分鐘之後可以(我哪來的勇氣,我還沒準備好啊~!) 上來首先自我介紹 因為自我介紹的較少(不想挖坑啊)然後沒有閒聊的過程,直接開始問及java

2017阿里面試回憶

                首先,我得宣告,我經歷了內推的四次電話面試,一直到hr面了,但是最後還是被掛了,所以,對大家的幫助

2019屆阿里--菜鳥測試崗電話一面總結

8.2號這天中午正好睡覺起床比較晚,還在床上的時候就接到了杭州的電話,心理預期應該就是菜鳥的,立馬一機靈就做了起來,開始面試。(菜鳥測試電面:8.2號3.20分面試12分鐘) 1,都做過哪些專案,簡單介紹下 2,運用的什麼語言 3,對於多程序和多執行緒的瞭解 4,對於C語言

2019拼多多面試總結

感想 我想這次應該是我憑實力得到的第一個比較滿意的offer了,沒想到是拼多多給的offer,我也感謝面試我的那些面試官,沒有為難我。 過程 拼多多 一面 1.自我介紹 2.樹模型,GBDT的原理,xgboost的原理 3.樹的特徵選擇是怎麼做的? 4.樹的正則項有哪

參加阿里巴巴面試經歷

問題5.讓實現兩個方法,一個插入一個查詢,資料是一個個的字串。資料結構自選,我一看機會來了,就從線性表(陣列和連結串列)開始說起,然後談樹,從最簡單的查詢樹又講到紅黑樹,然後又開始說雜湊,大談雜湊和紅黑樹各自的優缺點。然後面試官說:你不用和我說這麼多,我就讓你實現兩個方法。我說那我實現一下雜湊吧,然後就開始

【筆試題】拼多多2018程式設計

2、大資料相乘 問題描述 有兩個用字串表示的非常大的大整數,算出他們的乘積,也是用字串表示。不能用系統自帶的大整數型別。 輸入描述:  空格分隔的兩個字串,代表輸入的兩個大整數 輸出描述:  輸入的乘積,用字串表 問題分析 只要把加法換成乘法就好,半夜

2018網易-小易喜歡的數列

題目描述: 小易非常喜歡擁有以下性質的數列: 1、數列的長度為n 2、數列中的每個數都在1到k之間(包括1和k) 3、對於位置相鄰的兩個數A和B(A在B前),都滿足(A <= B)或(A mod B != 0)(滿足其一即可) 例如,當n = 4

867852850(中興交流群)

職位資訊及網申地址: http://job.zte.com.cn/campus-recruitment   企業介紹: 中興通訊是全球領先的綜合通訊解決方案提供商。公司成立於1985年,是在香港和深圳兩地上市的大型通訊裝置公司。中興通訊擁有通訊業界完整的、端到端的產品線

2018網易筆試-獨立的小易(python)

題目描述: 小易為了向他的父母表現他已經長大獨立了,他決定搬出去自己居住一段時間。一個人生活增加了許多花費: 小易每天必須吃一個水果並且需要每天支付x元的房屋租金。當前小易手中已經有f個水果和d元錢,小易也能去商店購買一些水果,商店每個水果售賣p元。小易為了表

2019網易筆試題--俄羅斯方塊得分

題目描述: 自定義俄羅斯方塊列數,每次俄羅斯方塊下落個數為1*1,當一行都落滿俄羅斯方塊時,得分+1。現在小明玩到m個俄羅斯方塊,求此時的分數。 輸入: 第一行: 列數, 俄羅斯方塊個數m 第二行 :a(1) a(2) a(3) …a(i)…a(m) 表

2018鏈家-大資料開發工程師筆試程式設計題

題目1(如下截圖所示): 分析:一個排序問題 C++實現: #include<iostream> using namespace std; void insertSort(int *a

2017網易筆試題

本人筆試的計算機視覺方向,程式設計題和其他研發崗位類似。 歡迎小夥伴們一起討論出正確答案。 共20個選擇題,3個程式設計題,1個簡答題 一.選擇題 1.Linux中,提供TCP/IP包過濾功能的軟體叫什麼? A.iptables B.r

2018年科大訊飛提前批面試總結

感想 今天HR打電話過來說我已經通過了校招內推了,個人感覺不怎麼難,面試官也不為難你,我記得當時有個問題沒有答出來,問的問題也相對來說比較common,沒有感覺比較怪的題目。我這裡把面試的題目發出來,有的我可能不記得了,請多體諒。 我面試的崗位是演算法與引擎開發-應用研發

阿里2019社阿里雲高階專家(P8)幫!投遞簡歷郵箱看正文!

阿里雲專案組社招,有大量職位空缺!歡迎大家投遞簡歷到[email protected],可內推!優秀的在校同學也歡迎投遞簡歷,參加實習和校招!內推面試機會很大,請大家把握機會!崗位描述:涵蓋的業務內容包括商機平臺系統,雲市場業務平臺系統,域名業務平臺和域名交易系統,

小易喜歡的數列(網易18

小易非常喜歡擁有以下性質的數列: 1、數列的長度為n 2、數列中的每個數都在1到k之間(包括1和k) 3、對於位置相鄰的兩個數A和B(A在B前),都滿足(A <= B)或(A mod B != 0)(滿足其一即可) 例如,當n = 4, k = 7 那麼{1,7,7,2

2016屆 阿裏巴巴研發project師C/C++筆試題--2015.08.23

int 常見 align 關於 輸出結果 strncat pair rto 存儲管理 選擇題牛客網地址題目1:http://www.nowcoder.com/test/255234/summary。 題目2:http://www.nowcoder.com/test/26