分享阿里巴巴面試心得(成功拿到實習offer)

阿里巴巴面試

0 引言

在成功拿到阿里的實習offer之前,我已經有過兩次面試的經歷,但最終都被GG了(后面作總結我會分析原因)。對于像我這樣向來自信甚至帶點小自負的人來說,是相當受打擊的。好在兩次失敗的經歷并不是只有壞處,最起碼下次面試的時候不會再怯場,還有一點更重要的,通過這兩次面試,我大致摸清了阿里的整個面試流程以及套路。客觀的講,面試除了自身的實力以外,技巧性是相當重要的,我相信,不管是一個技術再厲害的大牛,如果沒有對整個面試環節有一個大致方向性的把握,對于面試官所要提問的內容毫無準備,誰也不敢保證說這個offer我肯定可以拿到。因此,我在這里分享下自己的經驗,希望幫助更多人,在面試過程中可以少走一些彎路。

1 筆試

先來說一下筆試部分,對于阿里的筆試難度來說,以我曾經做過的網易、蘑菇街筆試難度來比較的話,大致應該是:阿里>蘑菇街>網易,當然這里僅僅考慮了難度,拋開了各個公司的評判標準。比如說,阿里的筆試你考60就給你過了,但是網易可能就要你考75。阿里的筆試題總共包括兩個部分,前面一部分是選擇題,總共20道,時間是40分鐘。也就是說,40分鐘后,不管有沒有做完,選擇題會自動進行提交,然后你才可以繼續做第二部分。從我做下來的情況看,時間相當得趕,基本上會來不及。題目內容大多是一些智商題,概率論,操作系統、網絡等基礎題。給我的感覺是,只要是技術面,選擇題都是從一個大的題庫中隨機抽取,而不是跟某個具體的崗位掛鉤。比如一些概率題,會有考察貝葉斯公式的,一些智商題,可能需要你用到簡單的動態規劃來推算。個人認為,選擇題部分主要還是在考察一個人的基本功還有他的知識面。第二部分總共有三道大題,時間好像是兩個小時,有點記不太清了。一般情況下會考一道算法題,難度不會太大,但是如果你沒做過這樣的題目,基本上還是做不出來。我舉幾道筆試原題:

在一個數組中,有若干個數,每個數字都出現兩次,也就是說數組中如果出現了一個2,那必定存在另一個2,除了一個數僅僅出現了一次,如何在空間復雜度為O(1)的情況下找出這個數。

這道題目如果你有做過,你會發現解決問題的方式相當巧妙。具體答案可以自行百度,這里不贅述。

從100個數中隨機抽取K個數,要求K個數不能重復。

你也許可以馬上想到用暴力的解決辦法,如果重復了,那再次抽取,直到抽完K個數。這道題目也有巧妙的解決辦法,詳見《編程珠璣》隨機數那一章。

另外兩道題目,以我的經驗,一般會出現一道并發編程題,往往它會給你一個場景,讓你提供一個解決方案,比如說設計一個活動搶購之類的程序。這些題目,大多萬變不離其中,從最本質上來說,它可能僅僅是讓你寫一個生產者消費者模式或者是哲學家吃飯思考的問題。

一般情況下,筆試部分選擇題做得不是很差,后面三道大題能做出兩道來基本上就過了。

2 面試

再來說下面試,在這里,我不想條條框框得把我面試到的問題都列出來,因為那樣毫無意義。問什么問題都是取決于interviewer個人的,沒有什么所謂的題庫,他想到問什么就問什么,當然也會根據你自身的實際情況來做提問。同時為了避免泛泛而談,我可能也會以幾個實際的面試題為例。

一般情況下,總共會有三輪技術面+HR面。如果你參加的是內推,所有的都是電話面試。對于我來講,我更喜歡與面試官一對一面試,通過一些肢體語言和紙筆,有利于把一個問題更好得表達清楚,我并不懼怕現場寫代碼。在這方面,網易做得就比較好,先通過一輪電話面試篩掉一部分人,然后再參加現場面試,對于外地過來的同學,車票可以報銷。如果你參加的是校招,通過了筆試,一般會邀請你去一個酒店進行面試。

面試一般會讓你先做個自我介紹,這時候不要再去重復得介紹一些個人信息,面試官跟你面試的時候,肯定是已經拿到你的個人簡歷了,可以介紹一下自己平時經常做的事情,自認為比較擅長的或者自己喜歡的,自我介紹一分鐘足矣,在這過程中,應該是讓面試官知道你擅長什么,從而引導面試官有針對性的提問。接下來會問一些項目經驗,你應該是挑一些有一定的含金量,并且印象比較深刻的(面試前,有必要回顧下做過的項目)。大致可以按照這幾點來介紹:自己負責了哪個模塊;把這個模塊的大致流程介紹一遍;在做這個項目過程中碰到了哪些問題,最后是怎么解決的;最后就是對這個項目的收獲。介紹完項目經驗以后,面試官開始自由提問,以我多次面試的經驗來看,面試的問題都不會太難。我可以大致給出面試的提問范圍:

1.關于java虛擬機,你需要知道JVM的內存結構,垃圾回收機制,內存分配策略,類的加載機制以及內存模型。以上這些請參考周志明的《深入理解java虛擬機》。

2.熟悉java各個容器的實現,例如HashMap、ConcurrencyHashMap等,最好去閱讀源碼,這次面試關于HashMap原理三個面試官問了我三次,重要程度不需多說了。

3.熟悉java并發編程,尤其是java.concurrency包下的api,并發作為一塊高級內容,對于很多人說,很少接觸,也很難將其掌握。幸運的是,面試官在這一塊都不會考得太深入,推薦《java concurrency in practice》。

4.熟悉常用的數據結構、算法。很多人認為算法在實際項目中根本用不到,并且覺得算法太難,就疏于學習。那為什么所有的大公司都喜歡考算法呢?尤其是像微軟、facebook這樣的巨頭?算法不僅需要必備的理論,更需要親自動手,有關算法的書籍更多,找一本適合的就可以了,題庫推薦leetcode。

5.其他還有像設計模式、數據庫都很重要,這些東西并不是靠一兩個月就能掌握,還是需要平時多積累、總結。推薦《head first 設計模式》,如果有你認為學習能力強,可以直接看四人幫的《設計模式》,數據庫就不多說了。

在這里,我并不是想給出一個面試寶典一樣的東西。事實上,上面列出的東西,沒有兩到三年的時間學習,根本掌握不了。要想成為一名技術大牛沒有捷徑。還是希望大家可以認真踏實的學習,一旦你真正掌握了這些,面對面試官的提問基本上可以達到游刃有余。

3 總結

總體來說,大多數企業考慮到校招針對的是在校學生,面試都不會出現太難的題目。然而在如何學習這個問題,筆者還是有話要說的,我見過很多人,光看書或者視頻,忽略了實踐,最終的結果就是我能看懂代碼,但是我不會寫。更有甚者,拿著一本與自身水平不適應的書例如《think in java》在那里啃,導致自信心大受打擊,學習興趣驟減。武俠小說告訴我們,練一門與自身功力不相符的武功只會走火入魔。我在學習馬克思主義的時候,對里面提出的思想觀點是相當抵觸的。但是有一點關于理論與實踐的辯證關系,我深表贊同:實踐是理論的基礎,理論對實踐有反作用,理論和實踐是相輔相成的,缺一不可。我曾經遇到一位長者,他目前的職位是產品經理,問我在學校有沒有項目,我說基本沒有。然后他以一種教育的口吻跟我說,你這樣會荒廢掉的。我笑而不語,如果非要用一張圖來描述我的表情的話,應該是這樣的:


我剛才強調了實踐的意義,但是我認為,如果你做過類似的項目已經足夠得多,就不要再去做重復勞動。我無意去貶低在學校做的項目,但是事實就是如此,99%的學校里的項目只能算個Demo。試問,有誰考慮了代碼是否足夠Elegant?是否足夠Robust?是否足夠Security?如果沒有,那就遠遠達不到作為產品級別的工業強度!那么這樣的項目做得再多也是無用功。

另外,文章開頭談到我兩次失敗的經歷,都是到了HR面,有人說能面到HR,基本上就已經過了。而我兩次都敗在了HR面上,我甚至一度懷疑自己是不是情商有問題。在HR面的整個過程中,給人感覺還是比較輕松的,就跟平時聊天一樣,基本上都是一些比較開放性的問題。但是一定要能夠說得通,不能出現前后矛盾,那面試官肯定以為你是在忽悠。另外,不要把自己的缺點說得太過直白,筆者就是因為吃了這個虧。好了,作為一個HR面的loser,我就不多說了。

最后,如果面試失敗也不要灰心,面試很大一部分是有運氣成分的,筆者不乏見過很多被BAT刷掉,最終去了微軟谷歌的,你能說他們技術不夠強硬?重要的是每次面試后,都能做反思、總結,吸取經驗教訓。

如果你想學習Java工程化、高性能及分布式、高性能、深入淺出。性能調優、Spring,MyBatis,Netty源碼分析和大數據等知識點可以來找我。而現在我就有一個平臺可以提供給你們學習,你想拿高薪的,想學習的,想就業前景好的,想跟別人競爭能取得優勢的,想進阿里面試但擔心面試不過的,你都可以來,群號為:668395460

注:加群要求

1、具有1-5工作經驗的,面對目前流行的技術不知從何下手,需要突破技術瓶頸的可以加。

2、在公司待久了,過得很安逸,但跳槽時面試碰壁。需要在短時間內進修、跳槽拿高薪的可以加。

3、如果沒有工作經驗,但基礎非常扎實,對java工作機制,常用設計思想,常用java開發框架掌握熟練的,可以加。

4、覺得自己很牛B,一般需求都能搞定。但是所學的知識點沒有系統化,很難在技術領域繼續突破的可以加。

5.阿里Java高級大牛直播講解知識點,分享知識,多年工作經驗的梳理和總結,帶著大家全面、科學地建立自己的技術體系和技術認知!

6.小號加群一律不給過,謝謝。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,353評論 25 708
  • 雯文,你好! 我讀了你的這篇文章,很喜歡。你寫得一氣呵成,這真的是一篇好文章。 我不愿意討論寫作技巧,因為真情的文...
    小壞蛋格瑞特閱讀 202評論 1 1
  • 文 / 路人鋒 修辭,是我們寫作的伙伴,不管大家寫詩,還是寫文章,運用恰當的修辭方法,能使你的句子活色生香,讓讀者...
    路人鋒閱讀 1,906評論 58 53
  • 已經記不太清是什么時候知道了“小確幸”這個詞,小小的確定的幸福,不需要多么華麗的渲染,只需要內心得到足夠的安寧和滿...
    樂晴瑪利閱讀 461評論 3 3
  • 麗人游綬溪: 一場春雨聲漸悄。水中魚跳,岸邊舟搖。 綬溪渡與延壽橋。狗兒逍遙,美人窈窕。 碧水白鷺將愁消。花草嬌俏...
    晚晴風竹閱讀 384評論 4 4