前言
鑒于在網(wǎng)上搜“阿里三面”搜出來一堆“阿里巴巴三面牙刷”,沒有任何借鑒意義,只能自己親身經(jīng)歷了,故寫點(diǎn)經(jīng)驗(yàn)以后面試可以參考。本人參加了5月5日的筆試,在5月20多號接到了電面,緊接著第二天是電面二面,5月30號經(jīng)歷了傳說中的終面,下面分階段回顧一下整個阿里校招歷程。
筆試
5月5號先去參加了藍(lán)橋杯,然后趕回學(xué)校筆試,稍微遲到了一會兒。幸虧阿里檢查了身份證!才發(fā)現(xiàn)忘在了考場。。整個筆試有些心不在焉,不過現(xiàn)在想想,有些不會的題就算時間多了還是想不出來,會的題自然很快就寫出來了。題不算太難,肯定還是涉及操作系統(tǒng),數(shù)據(jù)庫,算法,網(wǎng)絡(luò)等知識,不算太深。和之前筆試其他公司不一樣的地方是有點(diǎn)像數(shù)學(xué)題的感覺,大題只有最后一個讓你寫代碼了,其他的都是寫算法思想就行,還蠻靈活的,起碼我沒見過,感覺沒有平時的積累,準(zhǔn)備也沒什么用,有的沒有積累就當(dāng)數(shù)學(xué)題也能做的,不過搞ACM的這些肯定不在話下了~
經(jīng)驗(yàn):
1、如果你操作系統(tǒng)的水平能達(dá)到考操作系統(tǒng)時的水平,包括網(wǎng)絡(luò)、數(shù)據(jù)庫等,應(yīng)付筆試題應(yīng)該是松松的,因?yàn)椴粫嫉暮芗?xì),都是一些考試重點(diǎn),很基礎(chǔ)的知識。不過忘是肯定的,所以復(fù)習(xí)很有必要。大題就有操作系統(tǒng)那幾種調(diào)度方式的周轉(zhuǎn)時間等的填表,可能會忘的東西,但是非常簡單。
2、搞搞ACM應(yīng)該有幫助,算法不會是經(jīng)典的快排啊什么的,都是類似數(shù)學(xué)題,有大題有小題,我等沒搞過ACM的屌絲只能用腦袋干想了。。。
電面一面
電面時間是5月20多號的晚上8點(diǎn)多了,非常突兀,沒有通知,直接就是面試的電話。他們規(guī)定的面試時間盡量控制在一小時,我面了68分鐘,問到后來都抖了,是純碎的技術(shù)面。剛開始有暖場,試圖讓你放松,而事實(shí)上我緊張的不行。。進(jìn)入正式面試時會問一些問題,感覺面試官那里應(yīng)該有個題庫,就是從里面挑出來問,會的話他可以層層深入直到你不會。。你不會的話自然就直接換題了。。
當(dāng)時先問了malloc和new的區(qū)別,當(dāng)時感覺不明覺勵,以為是要回答到內(nèi)存中的層面,開辟內(nèi)存的方式啥的。。說不太了解底層的,感覺都是應(yīng)用中的區(qū)別。。說了new可以有構(gòu)造函數(shù),傳些參數(shù)初始化啦之類的。最后問了問面試官,居然malloc是個函數(shù),new是個操作符也算區(qū)別!所以不要想得太玄乎,再顯而易見的區(qū)別只要是區(qū)別都可以回答的。。
后來問了代碼運(yùn)行時在內(nèi)存中的分布,就是堆、棧、代碼區(qū)、靜態(tài)區(qū)那幾個,說說各自是存什么的就行了。后來問了是從低到高還是從高到低啥的,然后他自己來了句好像太深了,算了。。我說了個大小端。。他就問了大小端和什么有關(guān),我說是CPU,然后就問了intel處理器和AMD處理器神馬神馬的已經(jīng)過于底層聽不懂了嗚嗚嗚。。這個題就算跳過了。。。
還有序列化和反序列化,怎么保證數(shù)據(jù)的正確性。。這個當(dāng)時木有答上來,因?yàn)闆]用過java的序列化和反序列化,用的也都是上層的XML,JSON的格式,底層到底怎么搞得不清楚。。讓面試官給我講了半天,他還說“是我面試你還是你面試我”。。搞得我緊張的都不敢說話了。。中間某些人還不停給我打電話,搞得我都聽不清。。特別尷尬。?傊絹碓骄o張。。還問了進(jìn)程和線程的區(qū)別,我就稀里糊涂想到哪里說道哪里了。。用詞特別不專業(yè)。。
還有個問題是鏈表怎么判斷有沒有環(huán)路,我說了做個標(biāo)記,還有固定一個位置看有沒有指回來的兩種方法,太水了。。面試官提示我說小學(xué)有一種題是操場上的追擊問題,試圖啟發(fā)我,無果而終。。。其實(shí)就是設(shè)兩個指針,步長分別為1和2,然后看有沒有追上就可以了。
總的來說,這第一次電面我是真的越來越緊張,雖然面試官一直試圖讓氣氛變得輕松,但效果甚微。。我是越來越?jīng)]有自信。。感覺自己太水了。。想趕快結(jié)束面試。。不同的題目中間還夾雜著一些閑聊的話題,不過我太緊張了話不是很多,中間會有沉默的時候,感覺好尷尬。。面試官人真的特別好,最后說第二天還有一個面試,指出了我的不足,讓我改進(jìn),希望我能展示出來自己的優(yōu)勢。他說我基礎(chǔ)知識還可以,但是特別不系統(tǒng),一聽就是沒有為面試做準(zhǔn)備,希望我明天能好好表現(xiàn)。真是感動啊。。表現(xiàn)那么差居然都給二面的機(jī)會了。。這么好的人忘問花名了⊙﹏⊙b汗。。
經(jīng)驗(yàn):
1、一面一定是可以準(zhǔn)備的,面試題網(wǎng)上都能搜到一些,或者多參加一些筆試,有些簡答題和面試題也差不多。而且面試官那里的題庫還是挺龐大的,主要是想摸摸底,你了解的他會深入問你,不了解的也沒有關(guān)系可以換道題。感覺這個時候其實(shí)完全沒有必要緊張,有不會的很正常,別像我問著問著我聲音越來越小都不想回答了額。。
2、做好面試的準(zhǔn)備,調(diào)整好心態(tài),本來以為這個電話是通知我電面時間的,結(jié)果直接開始,心態(tài)沒調(diào)整好,遇到不會的就緊張。。后來問了同時接到電話的大牛,也是有不會的,也有答錯的,都一面給過了,所以不用太擔(dān)心了~一面就是基礎(chǔ)知識,加上一點(diǎn)點(diǎn)聊天的輔助,沒有問我簡歷上相關(guān)的問題。
電面二面
第二天晚上七八點(diǎn)鐘的時候接到了二面的電話,當(dāng)時剛好自己在寢室,比有室友聽著要放松了一些,加上跟同學(xué)交流,感覺不會也沒什么,總體聊得還挺開心的。這次就是基礎(chǔ)知識外加開放題和簡歷上的項(xiàng)目的了解了。
還好一面那種基礎(chǔ)知識的過了也沒怎么問了,不過問了序列化,我就是一面那個面試官說的大體講了一下,呵呵。。然后問了static,說不是static的函數(shù)能不能使用static的變量,我說可以。因?yàn)檫@次做好了準(zhǔn)備不是很緊張,我的話就多了一些,順便說了static的函數(shù)不能用不是static的變量。我這一說他就問原因,我說了靜態(tài)的就一份啥的,他讓我從什么java的什么機(jī)制上說,我也不知道啥意思。。我就說static在靜態(tài)區(qū),一個類就一份,非靜態(tài)的成員變量得new才能有,而且在棧上,沒法訪問什么的blabla...
再有就是詳細(xì)聊了聊簡歷上的項(xiàng)目,最后問了個“為什么銀行有取號機(jī)而超市結(jié)賬的時候沒有”,我著實(shí)想了一會兒。。剛開始想到的是銀行有VIP啥的,但是面試官馬上說那超市也可以有VIP隊(duì)和非VIP隊(duì),有道理啊。。然后就想到超市有取號機(jī)的話感覺取號機(jī)前面會排隊(duì),因?yàn)榻Y(jié)賬時間比較快,和取號叫號相比差別不是很大,而銀行辦理業(yè)務(wù)比較慢,差別就大了,所以超市沒有必要。他說我沒有看到問題的本質(zhì)。。唉。。他好像是要提示我,問我一面有沒有問我操作系統(tǒng)的知識,我說問了進(jìn)程線程的區(qū)別。他又說讓我舉個異步的例子。。發(fā)現(xiàn)天天說ajax異步刷新啥的,對異步不怎么理解啊。。人家還給我解釋了一下異步。。又被鄙視了。。不過現(xiàn)在想想銀行是異步,超市是同步,可是我還是不知道為啥啊。。問了好多人也沒什么特別好的專業(yè)性的解釋,我還問了三面的面試官,他說這是個開放性的題,是想看我解決問題的思路的。