轉載自自己的人人,寫于校招之后,因為感覺這篇文章還有一點余熱,現在的小伙伴們很多也不玩人人了,所以換個地方,方便有需求的小伙伴看看
----------------分割線----------------
一直考慮要不要寫一個面試的經驗。作為一合格的學長,總得給學弟學妹們留下點寶貴的資源,一想去年東哥寫了一篇書單,影響了N多學弟學妹,那么我也擼一篇好了,希望對想找工作的學弟學妹們有幫助。我本人是學Java的,可能落到具體的某些方面比較偏向于Java,C、C++的小朋友就湊合著看吧......C++師兄做不到啊
----------------筆試篇----------------
今年秋招報名了阿里、百度、騰訊、去哪兒、華為、網易、美團這幾家,其中美團的筆試跟別的有沖突放棄了,騰訊參加了三月份實習生招聘的筆試,秋招沒接到筆試通知,估計難度上差距不會太大,當時騰訊出的筆試題還是很有水準的。剩下的除了網易筆試都過了。總結一下,網易的筆試難度最大,騰訊、阿里、網易的綜合性最強;百度的話分基礎知識、算法、系統設計三部分,題量不大,涉及的方面也沒前三家那么多;去哪兒就是幾道大題,涉及的數據結構算法也比較簡單,有意思的是去哪兒還問了是否了解github、stackoverflow是什么,沒聽過的請自行百度;華為的是上機考試,就是一笑話,機考分兩批,第二批的題莫名比第一批簡單,四十分鐘滿分走人。
至于會考的東西,無非就是學校安排的課程,C語言、數據結構、算法、操作系統、計算機網絡、數據庫、設計模式等等,可能有人覺得操作系統、計算機網絡跟代碼的關聯不是那么強,其實學到回來就會發現,當年逃的課都是那么的重要......有幾個出的頻率比較多的內容,比如說進程線程區別,TCP的三次握手四次揮手是什么,單例模式工程模式等等,這些基本是必會的內容,還有一些相關的可以看看一些筆試題、面試題神馬的,就不一一贅述了。
代碼方面,讀代碼的話一定會是C,寫的話沒有特殊說明你可以用各種語言實現。C語言這個是基礎了,如果你是學Java的,至少把指針那部分看一看。
數據結構和算法,ArrayList和LinkedList的區別,Hash是什么,這個是必會的,而且考的概率非常大,不在筆試就在面試那種的。一些高級的數據結構,AVL樹、紅黑樹、B樹、B+樹神馬的也都是會考的,不過這些面試問的就多了。
筆試部分大概就說這么多,注重平時積累的話問題不大。
----------------面試篇----------------
面試就分公司來說吧,首先是阿里,這個一面被刷了,至于原因還是基礎知識不過關。阿里的面試問的基礎知識很多,數據結構,hash這個基本必考,而且阿里的Java強是眾所周知的,他們會挑一些平時注意不到的點來問,但都是在基礎知識的范疇內,歸根到底還是自己沒復習周到。另補充一下三月份參加阿里的實習生面試,那個問的基礎也很多,基本把我了解的關于Java或者是編程的方方面面都問到了,Java基礎知識、SSH、MVC開發模式、數據結構、算法、操作系統、網絡、Linux、數據庫、設計模式等等,個人建議盡量找學長三月份內推一下阿里的實習生面試,也許會被刷掉,但基本之后就知道需要看哪些東西了。
去哪兒網,拿到offer,一面面的基礎也比較多,不過相比之下問的問題要比阿里更常見一些,當然ArrayList、LinkedList區別,Hash神馬的也是必考的,剩下的就是看你簡歷或者看你表現,也會問一些深一點的東西,比如我就被問到了concurrent包里的一些知識,Atomic類是怎么實現的,當時特別二逼的回答synchronized,后來看了看源碼,加上院里的大神告訴我其實是CAS操作......也是,synchronized實現的話,Doug Lea的concurrent包也不會被認定為跨時代的產物了......扯得有點遠,雖說這個打錯了,不過別的問題答得還是很好的,一面面試官給過。二面的話問項目為主,也問了一些平時遇到問題怎么辦,逼格一點的回答就是上StackOverflow上面搜一下或者提問,或者看看github上有沒有類似的項目,看看人家是怎么處理的。估計一面面試官對我的評價比較好,二面沒問什么東西,直接就過了。三面基本就是hr面,也不會問你啥,說白了就是直接談錢,去哪兒的工資是你自己開的,很重要的一點就是,往多了要,別慫,讓hr開肯定是底薪,上來就要13k,如果hr不同意再說。像我們很多人慫了只拿了底薪,而且去哪兒喜歡女生,女生的薪水都高,女生們可以考慮一下。
百度,拿到offer,去的就是這個。除了去百度的原因之外,我覺得百度是最有誠意的公司了,宣講會都會有電話通知。一面的話特直接,面試官的開場白就是“來我們先做一道題”,做了三道左右的算法題,這個就看臨場發揮了,也沒有什么具體的算法一些小地方優化一下吧。一面半個小時結束,本來以為被刷掉了,結果神奇的接到了二面通知。二面面試官非常nice(其實一面的也很好,不過二面的這個屬于百年難遇那種),先問了一些基礎知識,恰好都是華為面試剛問過的,很流利的說了出來,給面試官留下了好印象,之后寫了一個單例,又被問了B樹和B+樹的區別,我說我看的那本書上只有B+樹,說了一下,結果少說了一個條件,不過他很nice的給我講了,還告訴了我B樹是什么。之后兩道算法,一道智力題,智力題我還做過了,被面試官說運氣好,主動問了用不用換一個,面試官說就這個了......二面過的還是比較輕松的,三面Boss面,一個85分的大姐姐,主要問了一些團隊合作之間的事,主要考驗的還是是否會處理人際關系,遇到困難如何應對,學習能力怎么樣。薪水上,百度會參考你其他的offer,給你一個差不多的薪水, 所以多拿點高新offer對于去百度很有用。
華為,一面還是面的基礎知識,這個很簡單,之前寫的阿里面試問的那些,會個一多半,這個輕松過。二面的話,也會問一些性格的東西,這個答得誠懇一點應該都沒啥問題,面試官也問了我想去哪里工作,華為還是有很多分部的。二面結束后不知道為啥沒過,只能默默的安慰自己,他們請不起我......其實華為還是很好過的,畢竟全國招6000人,主要華為還會看成績,考試的、四六級的,這個略蛋疼,本人成績渣,大一掛了好多科......薪資方面,官方報價本科9k到13k,研究生10k到15k,不過不用多想,肯定是底薪,除非你特別牛,不過那種牛人應該也不會去華為。
美團,霸面沒給機會......
好吧,說點面試技巧吧。面試就是把你自己展示給面試官看,回答出面試官的問題只是最基本的一條,重要的是把你會的都給面試官展示出來,回答面試官的問題的時候盡量多延伸出來你會的東西。要知道自己的優勢在哪里,技術上有什么亮點,會SSH可以自己寫網站?這樣的人一抓一大把為什么偏要選你?但如果你說知道Spring底層用到了那些設計模式,試著寫一個簡化的Spring,略懂JVM原理和調優,MySQL數據庫引擎如數家珍,concurrent包倒背如流,用樹莓派實做了一個掃地機器人,那么也許你有的地方答得不好,面試官還是會選你,因為面試官本來可能并不期望你會這些,所以也沒有問你,但是你表現出來了,那對他來說就是一個驚喜。這就是常說的面試的時候要主動,除了這些技術上的實力,團隊協作能力、學習能力、創新能力也要多展示給面試官,這些都會有加分。
----------------書籍篇&其他----------------
之前東哥寫過一篇書單,那個就很詳細了,有需求的跟我說我發給你,說幾本哪里沒提到的吧,算法方面《編程之美》、《劍指Offer》、July博客,這些足矣,數據結構我看的是《數據結構與算法分析:Java語言實現》,對,就是上面說沒講B樹那本,不過還是值的一看,別的想到再補充
----------------實習經驗Or培訓班----------------
很多應屆生可能最煩惱的就是實習經驗了,實習經驗我個人覺得最好還是有,畢竟實習過的話,會學到很多在學校里面學不到的東西,但是實習免不了就要逃一部分課,這個就要看個人取舍了。而且實習的話,還可以增加自己的項目經驗,這個還是很重要的。什么都沒做過,大公司基本不會考慮。至于培訓班,現在學校周圍有各種各樣的培訓班,而且我也上過其中一個(不打廣告,不透露名字),培訓班有么有用?對我個人來說,有,我確實在里面學到了知識,而且剛開始我自制力還是比較差的(巧妙隱藏了現在也差的事實......),這種方式還是蠻適合我的,但是我想說的是,不能全部指望培訓班,在這里學的東西畢竟有限,很多東西還要自己去鉆研,如果單純指望培訓班所講的內容,而自己不下功夫去實踐,不花時間去看更多的書,學更多的東西,至少不用想著去BAT。我始終相信,有兩樣東西是沒有止境的,一個是人的潛力,一個是需要學的東西。永遠不要低估你自己,覺得這個東西你學不會,而且多學一點總會有好處的。
----------------一點題外話----------------
說點題外話吧,寫這篇文章的時候我已經在北京實習了,回想找工作的那一個月,依然會有很多感慨,兩個場景特別難忘,一個是在哈爾濱,阿里面試失敗,與準備了六個月的公司擦肩而過,真的有種在風中凌亂的感覺,感覺全世界都離我而去;一個是接到百度通過的電話,感覺付出的努力沒有白費,一悲一喜,都是經歷。好吧,有點矯情了......其實我想說的就是,回顧大學之前的三年,最后悔的就是看的書不夠多,敲得代碼不夠多,上的自習不夠多,真正來工作,發現要學的太多,而時間總是不夠用,希望等到你們如果想要找工作的話,知道自己要找什么樣的工作,知道自己在什么時候需要做什么,每天結束都不會因為白天的碌碌無為感到愧疚,大四的時候,不跟我因同樣的事情而后悔。也希望碼這么多字對你們能有所幫助。
先8這么多,想到再補充。