一、前言
好久沒寫blog了,可能工作比較忙的原因吧。工作之後也略顯疲憊,有點懶,不是很願意動筆。不過由於今年秋招的臨近,於是決定整理一下自己和其他幾個大牛的經驗,指導一下自己的學弟學妹們。
首先要說明的是,此次我主要是針對互連網公司的面試來整理的。所以如果你打算以後搞銷售,或者立志去某潮之類渣滓公司的話,就大可不必這麼辛苦的來按照這個複習準備。
在此特別鳴謝sdust的cl、fxl、zyz,以及qtech的oym、sh、ygq等諸位大牛的指點。
二、面試簡介
目前就互連網市場的需求來看,java還是最多的,c++、php、python其次,像c#這種東西,也就微軟或者其他很多軟體公司會用到吧。大部分能給高新的互連網公司不會用到。。java同學也不要太過於樂觀,畢竟競爭還是很激烈的。雖然需求是java的最多,不過c++的同學或者廣大的acmer也不要灰心,因為面試的門檻一般公司都會有c++和java兩個方向的面試,也就是說,如果公司要的是java的,但是只要你c++能夠合格,也會錄取的,sdust的cl大牛,精通mfc和win32,面到阿里之後,學了半年java。。。所以我在這裡也主要分成java方向和c++兩個方向的面試來寫,希望會對大家有協助。
而非語言篇幅,是大家基本都需要掌握的,也就是像作業系統、電腦網路、資料結構、資料庫、海量資料等知識,我會在前面幾條先寫出來。
對於面試能否成功,各有各的說法,以我的經驗來說,面試 = 運氣(50-n)% + 實力(50+n)%,至於n,我想說n的意思n = f(x),x即實力,n與x成正比關係,這就意味著,你實力越強,對運氣的依賴性越低,而不需要像我在春招的時候整天埋怨運氣不好了。所以實力還是非常重要的一個環節。
對於面試題目類型的比例,大部分公司在筆試環節會是這樣,筆試 = (資料結構+演算法) 50%+ (電腦網路 + 作業系統)30% +邏輯智力題10% + 資料庫5% + 歪門邪道題5%,而面試就不好說了,這個需要看你的簡曆,一般簡曆如何,面試重點就在哪裡。
july部落格有一些面試題,最好有一個月的時間去刷這些題目,連結在此。
我把我的簡曆發布到網上,隨後也會陸續發幾個大牛的簡曆,希望大家照著看一看。寫的不怎麼樣,不過格式還是可以參照一下的。大家見笑了。
下載資料我會把連結放在文章的最後面,請大家隨便下載。
我的簡曆連結請點這裡。。。
三、作業系統、電腦網路、資料庫
作業系統很重要吧,這個就不用說了,需要看的內容非常簡單。大家把何昊老師出的《程式員面試筆試寶典》這本書第八章到第十章全都看一遍就可以了,電腦網路9.1、9.3、9.4是重點,作業系統部分10.1和10.2是重點,對於資料庫,可能只需要記得簡單的語句就行了,然後範式、一些鎖、主鍵外鍵、索引看一看記住就可以,事物是非常重要的,必須掌握。
上面是對於做一般研發的要求,如果還想進深一下,那麼這幾本書堪稱寶典:《UNIX環境進階編程》、《TCP/IP詳解》卷一
四、演算法 和 資料結構
對於沒有項目經驗的acmer來說,這個是重中之重。
首先一本必看的書《劍指offer》,你要保證上面的題目都能夠掌握,並且代碼一定要會寫,不過像某些章節,可能代碼量在100-200行的,一般公司不太可能讓應屆生在面試的時候手寫那麼多的代碼,所以理解就行,畢竟要寫出代碼不能夠靠死記硬背,就算是他讓你寫這麼多的代碼,你理解的意思也會寫個八九不離十,所以不要擔心,至於你怎麼記住,就靠著一遍一遍的看了。我至少看過3、4遍,才能說記個差不多,理解之後看一遍會很快的。記得把這本書上面面試的例子都看一下,都是非常棒的例子。
《程式員面試筆試寶典》是本非常不錯的書,非常的全面,不過美中不足的是,其中代碼品質偏低,所以如果你感覺他的代碼不是很好的話,就自己寫一個,另外要說的就是,這本書和《劍指offer》有一樣的題目的時候,請以《劍指offer》的代碼和講解為準。
對於演算法,不得不說的就是《編程之美》和《編程珠璣》,如果時間不多,後面那本書就不用再看了,《編程之美》對於acmer來說比較easy吧。我剛開始看的時候一天就可以看到100-200頁。兩三天就搞定一遍,上面的有些難度比較大的題目,如果不想去微軟這樣的公司就沒必要看了,像什麼讓你畫一下cpu曲線之類的,現在都是四核cpu,你怎麼給他畫啊。其他的保證在秋招的時候看過3、4遍就可以了,關鍵是理解,並且能記住。
另外需要推薦的就是july的blog中的一個。http://blog.csdn.net/v_july_v/article/details/6543438
這個就是july部落格的目錄,資料結構和演算法方面就看一下二、三、四章,其中重點我單獨劃一下。
第二章需要看的也不多,只有3、4、6、12,不過最好大家再看一下1、5、8、11,其他的我個人認為不太需要完全掌握,畢竟演算法掌握起來需要的時間還是比較多的。
第三章就是程式員編程藝術這麼一本書,july也快要把他出版了據說。這本書特別棒吧我感覺,最好都看一遍,如果時間不多的話,以下這麼幾章個人認為不太需要看,35-38.。。其實只是很少一部分,大家也可以挑著自己的需要看一下。
第四章就算是講紅/黑樹狀結構、b樹之類的東東了,有能力的需要完全理解,代碼就不用掌握了。如果精力或者時間有限,trie樹弄懂、紅/黑樹狀結構和b樹看會就行了,當碰到你感覺他們不懂這方面的面試官的時候,可以逮著他們狂扯這部分,然後讓他們感覺你很高大上,我認識的sdust的cmj大牛就是靠著這個進的去哪兒網,拿到了12.6w年薪。
演算法方面我感覺我寫的差不多,如果你們感覺有遺漏還可以提醒我,我會隨後補上,如果感覺這些都掌握差不多了,可以看一下《數學之美》,其中講到了一些實際應用中的很不錯的例子,sdust的fxl在面百度的時候就用到了很多,最後成功面上。
隨口一說,快排和kmp一定要做到看到就秒殺的境地,無論是代碼還是什麼其他的,堆排也非常重要。其他各種排序的話,因為你感覺都很簡單,不過其實如果面試的時候問到,你也不一定能答出來,甚至沒聽說過,所以有必要找個時間好好的吧排序看一下,有次阿里電面問了我一個錦標賽排序,我直接愣了,沒聽說過。。。。
《演算法導論》如果時間不多不建議看,畢竟問的東西不太會考到。。對了遊戲公司很多會問到圖論的一些知識,面遊戲公司的也可以看看。畢竟遊戲公司工資高,相對容易進一些。
如果還不知道怎麼準備的話,可以再參考一下july的另一篇文章,如何快速準備面試中的演算法。http://blog.csdn.net/v_july_v/article/details/19131887
五、C++
C++是個好東西,需要準備的東西比較多,推薦看一下《C++ Primer》和《effective c++》想依靠c++為門檻拿到不錯的offer的話,這兩本書打死也要看。最好邊看邊做筆記,把重點畫下來,或者寫blog,我在網上認識一個sdust大二的大牛zxf,他整理的blog就非常棒,還被評為了csdn的專欄達人,連結在此。
《Thinking in C++》也可以看下。不過我覺得太厚了。。所以。。。
《程式猿面試筆試寶典》這本書第七章的內容必須要記住。需要認真的看。
有些必須會寫的代碼,在july的部落格其中一章中有寫到,http://blog.csdn.net/v_JULY_v/article/details/6417600其中strcpy/strcmp/strlen/strncpy/memset/memcpy/atoi這個幾個函數都是經常考到的,所以一定要做到,看到這種函數編寫題就立刻把他秒殺的境地。我整理了一些,點進去就可以看到。
虛函數是個重點,別的在前面基本書中說的很清楚了,我也就不多說了。
六、JAVA
Java的話,我想有本書我不說你也知道,《thinking in java》。世界名著,必看無疑,另外其他的我要oym兄弟來補充。
還有幾本書,何昊大牛的新書,java程式員面試筆試寶典之類的。。也是要看哦。
七、linux
這部分,對於這個我沒啥好說的,java程式員要求比較低吧,c++程式員的要求相對比較高,特別是要去面試營運部門的,基本命令必須熟悉,http://blog.csdn.net/liuqiyao_01/article/details/12321509sdust的cl大牛整理的linux部分,值得一看。想深入瞭解的《UNIX環境進階編程》、《linux環境編程》都是不錯的書,不過如果你時間不多,例如你現在5月份了,要準備9月的校招,就不太適合看了。
八、邏輯分析題 智力題
這類題目有點奇葩,佔得比例不大,我也就把他放到後面來寫。
《程式員面試筆試寶典》第六章,寫的非常棒,看一下吧,上面的題目經常會考到,不放心的也可以刷一下往年考到的題目。
九、行業瞭解
有些公司可能會問到你對於目前互連網行業,或者電商行業的一些見解,這個主要就靠著你們對於業界的關注程度了,不得不說一本書《浪潮之巔》,qtech的ygq大牛,在面美團的時候,就和面試官狂侃了一下業界行情,最終被美團錄取,拿到了15.75w的年薪。
《程式員練級之路》也是本對於晉陞來說不錯的書,可以讀讀。
點擊這裡,可以瞭解14年校招大部分互連網公司的待遇。
再說一次,有個自己的技術部落格,把自己學到的一些東西整理在上面,會對自己有非常大的協助的。推薦wp或者csdn,對部落格園的感覺不是非常棒,所以。。。
十、設計模式
設計模式請看一下《Head first 設計模式》或者《大話設計模式》其中的一本吧。有時間兩本可以都看。可以當小說一樣看完,很有協助的。幾天就可以看完一遍。類似於如何?一個單例模式這樣的東東,一定會寫。
十一、海量資料
海量資料的話,必考吧應該,筆試+面試一般的互連網公司至少都會來上一道,關於這個,看下july部落格,然後看一下《程式員面試筆試寶典》就行了,熟悉下bitmap、hashmap、trie樹這幾個東東就可以了。
july部落格的幾個關于海量資料的連結
十道海量資料處理面試題與十個方法大總結 (十道海量資料處理面試題) 海量資料處理面試題集錦與Bit-map詳解 (十七道海量資料處理面試題) 教你如何迅速秒殺掉:99%的海量資料處理面試題 (解決海量資料處理問題之六把密匙) 《程式員面試筆試寶典》中關于海量資料的幾個東東,我整理到了有道雲筆記上
十二、寫在最後
如果你現在大三的話,就開始好好準備吧。如果大二,就把基礎都補好,爭取在會一些加分項,比如ssh、qt、mfc、win32、linux、android、python等東東,指令碼語言會一種還是不錯的,給自己打一打底氣。經曆足夠旺盛,可以學習一下ml、資料採礦等高大上的東東,去coursera上看一些外國名校的公開課,我感覺在中國,特別是我們這種下流學校上課真是一種煎熬,個人更喜歡國外的那種啟發是教育。
其實看那些書,最好還是看原版,一開始雖然比較費勁,看一段時間就好了。又能鍛煉英語,一舉多得。
如果有時間,請刷一下july部落格中的面試筆試題,會有很大協助的。無論如何參加秋招之前也要有半個月的刷題時間。
十三、連結
部落格中提到的東東的下載連結在此~~~~~~~~~~~~~here
july部落格目錄 http://blog.csdn.net/v_july_v/article/details/6543438
後記。。對於百度我表示非常無奈。。發了這麼幾個連結之後。。百度網盤把我這個地址給封了,說我侵權。。。- -#。。現在我已經把所有資料打包上傳,百度這下封不了了哈哈。想下載的儘快了。here
最後嘮叨一句,其實,每個人有每個人的追求,未必一定要去大型互連網公司才能實現自己的人生價值,相對於互連網公司,一些小公司更容易,自己喜歡幹什麼就去幹吧。加油。
——671