我的春招求職經驗分享(已拿阿里京東網易等 5 個 offer)

Hugo_Gao發表於2018-05-02

前序

從我高考成績出來那一刻開始,從我在高考志願上填上“電腦科學與技術”這幾個當時在心中堪稱“神聖”的幾個字開始,我就已經把進入中國網際網路最高殿堂“BAT”作為我整個大學奮鬥的目標,哪怕我就讀的是一所位於內陸的雙非一本大學我也認為我能達成目標。但是當我踏入大學校門開始,發現一切都與自己想象的不一樣。進入學生會希望能夠鍛鍊自己的臉皮與組織能力,卻發現我的任務只不過是去查查別人班級的出勤,迎新晚會時站站崗;躊躇滿志地參加學校八大團隊中的ACM團隊的面試,寢室裡5個人去筆試卻只有我一人沒有通過,去找團隊負責人霸面,卻被戲弄嘲笑(這件事對我打擊特別大,現在都還有點耿耿於懷);希望大學教授能夠繪聲繪色地傳授知識,卻發現畢業自清華大學的博士教授居然連話都說不清。還好我才大一,充滿著幹勁和對計算機的興趣,我開始了自學之路。在老師還在講計算機概論時,我就自學完了C語言,然後憑藉著自己的興趣給自己選定了Android開發這條路,從此便一發不可收拾,喜歡上了自己當自己老師的感覺。在大二這一年,做了幾個APP,其中幾個還上架了酷安,有個千把的下載量,與使用者交流的感覺讓我成就感大增。雖然喜歡Android開發,但是在大二下期我針對Android開發進行了一次調研,發現同一家公司Android招聘的人數遠遠小於Java開發的人數,這次調研就讓我萌發了轉向Java後臺開發想法,但是又擔心大二下期才轉方向擔心時間不夠導致大三沒有足夠的積累。等到去年九月份我才真正確定了今後走Java後臺的方向,然而此時距離2018春招只有一個學期的時間了,所以我給自己列了一份計劃和書單,讓自己能夠做好2018春招的準備。由於準備充分,最後拿到了包括阿里京東網易在內的5個offer,謹以此文分享給大家我的面試經驗。

準備

筆試

很早就瞭解了網際網路公司面試必考,也是一個程式設計師必備的內功,我的演算法水平也就是剛及格的水平,肯定是不能達到面試所需的水平的,於是我在去年暑假7、8月份(大二下期暑假)便開始有計劃的在LeetCode上刷題,一開始是計劃每天刷8道Easy難度的題,後來越刷越熟練後便每天刷4道Medium和4道Easy,然後轉變為每天刷4~6道Medium。一個暑假下來刷了200多道題,成果還是很不錯的。

我的春招求職經驗分享(已拿阿里京東網易等 5 個 offer)

此環節我的總結為在Leetcode上先易後難,然後將題目分類突破(leetcode上自帶體型分類)。

手寫程式碼

因為在面試過程中,面試官可能會要求你手寫程式碼(根據我自己的經歷來看,這個概率差不多是50%,要看不同的公司和麵試官的喜好)。根據我的總結,認為手寫程式碼有這麼幾個特點:

  1. 難度相比筆試難度較為簡單。
  2. 由於是手寫,與在鍵盤上敲程式碼有非常大的不同,有可能你在鍵盤上敲得飛起,但是你在紙上卻一行都寫不出來。
  3. 形式較為靈活,在沒有思路時可以與面試官交流,就算最終沒有寫出來,你的思路得到面試官認可也是可以通過面試的。

針對這個環節,我準備了一本書,就是大名鼎鼎的《劍指offer》(必讀!!!)。

我的春招求職經驗分享(已拿阿里京東網易等 5 個 offer)

這本書可以說是為我後面拿到滿意的offer立了大功,可以說這本書讓我在面試中不再懼怕手寫程式碼。這本書是C++寫的,但是並不妨礙閱讀,你正好可以將它翻譯成Java檢驗自己是否掌握。這本書我讀了兩遍,第一遍在電腦上敲了一遍,第二遍手寫了一遍。建議將此神書完全掌握。

面試問題準備

後臺方面,由於在之前只為了做專案學過一點Flask,而且還只是囫圇吞棗式的學習,沒有深究其原理,在這方面我幾乎經驗為0。為了能在我計劃的12月份之前學習完所有JavaWeb方向的知識,我在網上搜尋資料後給自己列了一份書單。

在讀完了《Head First Servlets & JSP》和《精通 Spring 4.x》後,意識到自己缺少Java Web的專案經驗,於是十二月份在慕課網上完整跟玩了一個實戰專案。在跟完了這個專案後我就認為我的JavaWeb基礎已經打好了,然後就開始夯實基礎了,我認識到由於學習後臺時間短,我只有依靠牢靠的基礎才能打動面試官。於是一月份我讀完了《深入理解 Java 虛擬機器》,這本書寫得非常好,可以說這本書涵蓋了99%面試中會問到的Java虛擬機器問題。

在接下來的一二月份便是我給自己規劃的夯實基礎的時間,在這兩月我需要完成jdk原始碼的閱讀,包括HashMap、ConcurrentHashMap、ArrayList、LinkedList、HashSet、ReentrantLock、AQS等,還有Spring部分重要原始碼的閱讀,我要求自己反覆看了很多遍,確保自己理解了這些經典類的設計並且自己實現了一部分jdk類。除原始碼之外,還有一些知識點需要牢記,比如SpringMVC原理、TCP/IP的一些經典問題、資料庫原理等,這部分我覺得就有點應試的成分在裡面了,因為很多都是需要背的知識點,後面我會介紹如何記住繁雜瑣碎的知識點。

記憶神器--幕布

一開始我也覺得這麼多繁雜的知識點,就算當時記住了,面試時也會忘,如何記住這麼多的知識點呢?我後來在網上找到了解決辦法——利用幕布含有層級的筆記來記錄重要的知識點。我是這樣利用幕布這個工具的:

  1. 按模組分類

我的春招求職經驗分享(已拿阿里京東網易等 5 個 offer)

  1. 模組細分

我的春招求職經驗分享(已拿阿里京東網易等 5 個 offer)

  1. 按層次記錄知識點

    我的春招求職經驗分享(已拿阿里京東網易等 5 個 offer)

  2. 還可以一鍵生成思維導圖

我的春招求職經驗分享(已拿阿里京東網易等 5 個 offer)

由於幕布有Android和iOS的客戶端,所以隨身攜帶很方便,隨時可以掏出手機來背一下。在排隊面試時也可以套出來看看,說不定一會兒面試就問著了呢。。。

簡歷

製作簡歷肯定也是重中之中,你之前準備得怎樣,在簡歷上就要體現出。在這裡我總結了幾個簡歷製作的要點:

  1. 不會的不熟悉的千萬別寫上去,寫上去就是送人頭,面試官會把你問到cry。
  2. 簡歷上績點、專案、獲獎經歷、開源作品在校期間至少有一項吧,一定寫在簡歷上稱為亮點。
  3. 程式設計師的簡歷不要太過花哨,我是使用超級簡歷的模板,比較簡潔。

面經

因為我完全沒有面試經驗,從來沒有經歷過面試,於是想著在去BAT這類大公司面試之前先找成都的小公司練練手,積累點面試經驗。於是三月份開始就有成都的小公司開始約我面試。前前後後一共大概投了30多家公司吧,通過筆試約面試的大概十家左右。面試的問題沒有記錄,所以記得不是很全,但是大部分考的很基礎,基本都是按著你的簡歷來問的。

雲帆數聯(已掛)

這家公司是我面試的第一家公司,公司規模很小而且面試體驗極差,我去的時候HR讓我先坐一下,一會兒面試官就領我到會議室面試:

  1. 自我介紹
  2. 在學校做過什麼專案
  3. 說一下資料庫的四個隔離級別
  4. 講一講HashMap吧
  5. 說一下什麼是JavaEE

然後就沒了,我穿越大半個成都來這兒面試就問了我幾個問題,耗時才10分鐘,我還沒來得及緊張就結束了?然後他說面試就先到這兒了,如果有通知再聯絡我......

知道創宇(已掛)

知道創宇是我在成都面試的第二家公司,做Web安全的,好像拿了騰訊的投資所以公司地址在成都天府三街的騰訊大廈裡。這家公司與上家公司形成鮮明對比,整個面試過程持續了一個半小時還多,由於面試官是做C++的不會Java,所以幾乎沒有問Java。

  1. 問專案
  2. volatile的作用
  3. HashMap的工作原理
  4. 資料庫的隔離級別
  5. 什麼是幻讀,不可重複讀,髒讀
  6. 一道演算法題,給出一個陣列,找出唯一不兩兩重複的數
  7. TCP/IP三次握手四次揮手
  8. Spring的事務隔離級別
  9. ..........

面試官非常好,聊得很愉快,可惜得是我因為面試經驗不足加上本身也沒有準備充分,感覺答得不好。面試官找來HR問了下實習時間就讓我回去等通知了。第二天後我就收到了人生中第一封拒信........

CVTE(已拿offer)

CVTE是我面試的第一家大公司,通過了筆試後就通知第二天到春熙路一家酒店面試。第二天我早早地就到了酒店大堂等待面試,結果沒想到剛一掃二維碼排隊就輪到我了。服務人員領我到一間很大的會議室,裡面有很多面試官,每個面試官前有編號,我一下就看到了面試我的面試我的面試官,也是我第一次看到面試官西裝革履。

  1. 又是問專案
  2. Java的記憶體模型
  3. 講一講Java的垃圾回收機制
  4. 細講一下新生代如何進行垃圾回收
  5. SpringMVC的工作流程
  6. 你認為MyBatis帶來了什麼改進
  7. Spring ioc 概念,建立,初始化,底層實現
  8. .....

還出了道演算法題,具體不太記得了,但是我到了時間沒有寫完,我原本是想用O(n)的複雜度來做,後來發現O(n)的複雜度是不可能實現的,就浪費了點時間,於是我就和麵試官講了我的想法,並且講了一種O(n^2)的做法。面試官結束面試後讓我回去晚上等通知,晚上果然收到通知讓我參加終面(HR面)。

HR面還是那家酒店,我和一個前端一起面(特別扯的是後來我在牛客網上問一個CVTE的問題還和這位前端兄弟在網上偶遇了),問了我有沒有女朋友啊,父母是做什麼的,如果阿里和CVTE都給你發了offer你回去哪家這類問題,持續了大概20多分鐘。晚上回去檢視狀態發現終面已經通過了,這意味著我將收到人生第一份offer。大概一週多後收到口頭offer,兩週過後收到正式offer。收到第一份offer後心裡一塊石頭才真正落了地。

阿里影業(已拿offer)

一面(半個小時)

三月底的時候居然收到了阿里一面的電話,我是十分吃驚,因為距離我投阿里簡歷已經過去了一個月了,而且我沒想到阿里居然能在幾萬份簡歷中挑中我的簡歷進行面試,收到電話我是十分受寵若驚的。電話訊號一直不好,對方說話聲音一直若有若無的,我不得不一直說”不好意思,能再說一遍嗎“,面試中大部分問題都和其他面試差不多,有幾個問題比較印象深刻:

  1. 如果讓你來設計SpingMVC你會如何設計。
  2. 你能幾種Session的管理方法,詳細講一種。

二面(45分鐘)

一面後一週才收到二面的電話,要進行視訊面試,由於是阿里我不敢怠慢,在外面專門找了家網速不錯且安靜的酒店專門等待阿里的視訊面試。阿里的二面就是按照你的簡歷上的每個點都深問下去,但是都是挺基礎的,沒有問到我不會的分散式和叢集方面的問題(可能是因為我簡歷上沒有寫),感覺大部分答得還不錯,但是有幾個問題如Spring的Bean的生命週期這樣的該回答起來的問題沒有回答起來,讓我隱隱有些擔心。

三面(半個小時)

二面第二天收到HR電話讓我準備三面,讓我挺吃驚的,因為我投阿里本來也只是想感受下頂級網際網路公司的面試流程,壓根兒沒想到還能走這麼遠。三面面試官聽HR說好像是個部門老大,也就意味著這應該是最後一輪技術面了。部門老大看起來大概35歲左右,挺面善的,一開始問我為什麼要學計算機,問我高考怎麼填的志願(我當時還有點奇怪怎麼問這些問題),然後後面就像聊天一樣,聊我在大學怎麼學的。果然還是我太年輕了,面試官悄悄給我挖了個坑,問我為什麼從Android轉到後臺,我說我比較喜歡應用層的純邏輯,不是很喜歡編寫介面,Android裡需要使用xml寫介面我不是很喜歡,然後他問我是不是覺得前端很簡單,我趕忙說不是,他又問我做了這麼多app有沒有研究過Android的Framework層,我一時語塞說沒有(沒有了解Andorid底層確實是我的錯),他又追問我喜歡應用層是不是就不喜歡底層的東西,我又趕忙說不是,但是我找不到證據說我喜歡底層,於是我只有說看過Spring和jdk原始碼。。。然後就聊到了專案,我有一個Android專案牽扯到上傳照片功能,就問我圖片有沒有經過壓縮,我說有使用第三方庫壓縮,面試官又問有沒有了解過圖片的壓縮演算法,我當時記得好像之前上課的時候學過圖片處理就稀裡糊塗地說了有了解過一點,然後又稀裡糊塗地給面試官講了一個演算法,面試官笑著對我說你這好像是馬賽克的演算法啊,馬賽克的演算法和壓縮演算法一樣嗎?我就不敢說話了。然後面試官換了一個話題我才鬆一口氣。後面聊的還行,面試官還給我講了他當初大學是怎麼學的,然後給我強調底層真的很重要

HR面(十分鐘)

HR面打來已經是一週後了,我要不是看到狀態還一直處於面試中,憑我三面的表現我都覺得我掛了。HR說實習生薪資比社招工資低問我知不知道,問我瞭解阿里影業哪些東西,願不願意來北京。最後說實習時間就比較糾結了,HR說最好能馬上入職實習對轉正比較有利,但是我這兒學校一堆課啊根本走不開。最後HR說回去問他們的leader看能不能七月份再實習。掛了電話我就覺得比較忐忑了,都走到這步了不會因為實習時間的問題把我給掛了吧。

最後一週過後我還是收到了阿里的offer,但是不是很興奮還有點糾結(因為那時我已經收到了網易雲音樂的offer)

網易(雲音樂,已拿offer)

說實話這些公司我早就聽說很難進,所以我筆試完後壓根兒沒想過能進入他們的面試流程,沒想到大網易還是給我筆試通過了,給我發簡訊要我4月14日到杭州網易大廈面試,報銷路費600元,我算了下出去報銷的600元,我去趟杭州還要自掏腰包1000多塊才夠。不禁十分糾結了,因為當時阿里面試都走到三面了有可能拿offer,如果拿了offer就沒必要再去面網易了,但是我又不想錯過這次寶貴的機會,於是決定還是去1000KM外的杭州走一遭。

一面

提前一天到了杭州踩了點,第二天順利地按時到達了網易大廈,簽到後就在一邊等候,二十分鐘後就叫我去一面。一面面試官看起來25歲左右,很年輕,問得問題也比較常規。問了個HashMap問題,我心裡很高興,之前面試問過無數次這個問題了,於是我就詳細地將HashMap原始碼講了一遍,還順便將ConcurrentHashMap也講了。然後還問了些資料庫索引以及Spring的問題。

二面

一面面完後面試官叫我五分鐘後去前臺問結果,通知我準備二面,這時候差不多十二點了,HR小姐姐領著我們去大名鼎鼎的豬場食堂吃飯,午餐如圖:一個素菜也沒有,三道葷菜:蝦,羊肉,牛肉

我的春招求職經驗分享(已拿阿里京東網易等 5 個 offer)

這個應該是外部食堂,真正的員工餐可能還要好點。

差不多下午兩點半左右,通知去二面。二面面試官看起來很年輕,感覺和我差不多大,二面和阿里三面差不多,問了一些開放性問題和一點點技術問題,面試過程面試官一直叫我不要緊張,就是聊天就行了,我其實並不緊張啊...面試官很好和我交流了不少學習方面的事情,問了我平時如何學習新技術和如何debug的。差不多愉快的聊了40多分鐘就叫我五分鐘去檢視結果。

HR面

HR面真的是非常愉快了,特別巧的是我剛坐下HR小姐姐就問我是不是宜賓人,我心裡一驚趕忙說是,結果HR說她也是宜賓人(聽到此時我心裡朝天吶喊天助我也!!!),接下來的聊天就更愉快了,老鄉見老鄉,聊了學校的專案經歷,學生會經歷,在聽到我的自學經歷後她居然說很勵志(我個人沒有覺得很勵志啊),半個小時後HR說七天後會有最終結果出來。

回成都後大概等了6天后就收到了offer。網易的面試體驗是最愉快的,我可能暑假就回去網易了。

今日頭條(已掛)

一面

今日頭條的面試體驗是最差的(沒有黑的意思),面試全部是使用牛客網的視訊面試工具,不知怎麼的,視訊一直斷線,面試官很不耐煩地說要不你找個網路條件好點的重新給你找個時間面試,我心裡想我花了百多塊出來租酒店就為了面試,怎麼能重新面試呢,於是就苦苦”哀求“繼續面試,尷尬的是問了幾個作業系統的問題我都沒怎麼答好,最後甩給我一道演算法題,當時我已經無心面試了覺得鐵定掛了,花了10多分鐘才做完,面試官看也沒看就說一會HR打電話就匆匆下線了........

二面

一面完後我心想絕對掛了,沒想到HR打電話來說我通過了讓我馬上準備二面。我心裡真是........二面面試官看起來也三十好幾了就,一直問我當時還沒複習好的作業系統和計算機網路,答得很差。然後又給我一道演算法題,花了幾分鐘做完。然後HR打電話說我的面試結束了,希望以後有機會一起合作,想來也是,答得這麼差能過才有鬼了。

去哪兒(口頭offer)

一面

去哪兒的面試安排在成都的一家酒店裡。一面面試官看起來很嚴肅,認認真真地對著簡歷挨個挨個地問,問了四十多分鐘,然後讓手寫個二分查詢,我兩分鐘寫出來後又讓寫個LRU演算法,我只是瞭解過這個演算法,花了十分鐘左右才寫出來。面試官看起來很滿意讓我去二面。

二面、HR面

二面面試官很坑,一直給我出系統設計的題,我回答了後又懟我說我的方法不好讓重新想個好的,後來我都被懟煩了,都想說要不讓我掛了吧我想走了,最讓我吃驚的是面試官問我一個Redis相關的問題,我回答後他自己還要上網百度答案。。。真的是“大開眼界”。結果我還過了讓我去HR面,HR講了講工作地點和薪資就給口頭offer了。

京東(已拿offer)

一面,二面,HR面

京東這麼大的一家公司面試卻是最水的,一面是電話面試,幾乎沒有問技術問題,就問了個虛擬機器,然後就問在團隊裡起矛盾如何處理,一面只有10分鐘。二面是在和之前CVTE的同一家酒店,二面更水,感覺面試官已經脫離一執行緒序員很久了,估計問我的問題他自己也不知道答案,又問在團隊裡起矛盾如何處理(京東很看重這個?),大概20分鐘就完了。HR面就問了問獎學金和專案的團隊合作,只問了5分鐘就發offer了...

總結

總的來說我總結我的面試經驗如下:

  1. 面試儘量提前到,能早點面試,面試官也更願意給你通過(就像中國好聲音一樣,一開始都是瘋狂轉身)。
  2. 面試時調動你的幽默細胞,儘量把面試氣氛調得愉快一點,這樣面試官能更深的記住你。
  3. 說自己優點的時候一定輔以證據,不然面試官只會當作耳邊風
  4. 不會的問題不要強答,小心有坑,可以這樣說:“不好意思這個問題我不會,但是如果讓我來設計我會.......”
  5. 面試其實是一個雙向選擇,面試官在評估你的表現,同時由於面試官也代表公司,他的素質及提的問題也是你應該評估的方面,所以不要緊張。
  6. 使用幕布,在每次面試前將自己總結的知識過一遍。我幕布上寫了幾萬字的筆記,每次面試都拿出來看一遍,所以面試問到的基礎我基本都能應答入流。

目前拿了阿里影業、網易雲音樂、京東成都研究院、去哪兒、CVTE的Java後臺研發實習的offer。

我的春招求職經驗分享(已拿阿里京東網易等 5 個 offer)

這個結果是我兩個月前萬萬沒有想到的(我原本想的是能去家二線網際網路就不錯了),我也知道拿這麼多的offer是有一點運氣的成分在裡面的,我接下來也會繼續努力,爭取轉正就不用再秋招了(找工作是真的痛苦磨人)。

真心感謝大學這三年來幫助過我的無數部落格博主,從你們優秀的博文我知道了真正的“優秀”是怎麼樣的。謹以此文希望能幫助大家一點點,祝大家最後都有滿意的offer!!

相關文章