蒐集整理的一些面試經驗相關的材料

不做筆記的確是會做重複的工作的

華科—網絡編程方面

找工作主要就是:項目、語言(c++或java)、操作系統、網絡、算法等。少數情況下需要數據庫,比如你面試後臺,有時就會問到。下面說下自己的一點複習心得:

       項目:這個是我的硬傷,我的項目太菜,基本沒有一個面試官問了我的項目,因爲我說我對我的項目不感興趣,但這不是理由,可能我遇到的面試官比較好。總而言之,你要把你的項目提前回顧一下,把你做的部分一定要搞懂,其他人做的你也要知道原理什麼的,一定要熟悉,讓面試官知道你做事很踏實才行。

      語言:我面的是c++,對於c++來說,需要看的書有c++primer、effective c++、stl源碼剖析、深度探索c++對象模型,如果有時間還可以看看程序員的自我修養。對於沒本書,希望大家儘量多看幾遍,很多東西都是反覆回顧才能真正理解的。

      操作系統:一般操作系統面試都不會很難,我就主要看了linux內核的設計與實現,這本書也可以當作一個複習的目錄,大家可以對照着書的目錄,把重要的知識點在網上搜索下,讓自己理解的更深刻一點。另外還看了UNIX高級環境編程,這本書提供了一些編程接口,也有很多講解操作系統方面的知識的。

      網絡:網絡還是比較重要的,首先,對於理論方面,TCP/IP卷1這本書是肯定要看的,當然只需要看一部分,後面的應用層協議就不需要看了。網絡編程這一塊,可以看一下UNIX網絡編程這本書,另外還推薦一本“linux高性能服務器編程---遊雙",這本書可以讓你對網絡編程理解的更加深刻。我建議大家可以看一些著名的源碼,比如我看了nginx、redis、memcached等,裏面的網絡編程模型對你面試很有好處,而且很多面試官也知道這些源碼,如果面試你這方面,覺得你看的還不錯,肯定會給你加分的。當然,你要看就看到位,不然反而會有負面影響。

     對於算法,我建議大家提早準備,而且是一直在準備,不要等到最後集中去看,那樣效果不是很好。首先建議大家把劍指offer看看,然後是編程之美(很重要),這兩本書看玩了就可以動手練習了,有一個很重要的oj平臺--leetcode,裏面全是經典的面試題,反覆出現了好多次(https://oj.leetcode.com/).還有兩個博客寫的很好,一個是待字閨中(http://www.ituring.com.cn/article/47692),還有一個是結構之法,我個人覺得該博客裏面的程序員編程藝術和海量數據處理很有用(http://blog.csdn.net/v_JULY_v).

    對於數據庫,我是後來面試的需要纔看的,重點看了MySQL技術內幕InnoDB存儲引擎這本書,裏面對事務、索引的講解的還是很不錯的,如果你面試的和數據庫沒什麼關係,也可以不用看,問的不多,畢竟時間還是很緊張的。

    大致就是這麼多,很多事情都不要看的太重,看淡了或許找的工作會很好,要知道有能力不一定能找到滿意的工作,當然了,要想找到好工作,就一定要有能力。希望大家都能找到一份好的工作……

來源:http://blog.csdn.net/fangjian1204/article/details/40317963

C/C++/Java 求職血淚史

C語言篇  

面試和筆試主要基礎來源於:
C和指針(加大量的編碼經驗)、
數據結構與算法(嚴蔚敏或者李春葆(建議新手))、
程序員的自我修養
計算機網絡自頂向下(強烈推薦,看完後看看TCP/IP詳解)、
現代操作系統原理、
鳥哥的Linux私房菜(基礎篇+服務器篇)、
算法導論(看不懂+沒看完)。 + 編譯原理(我沒看)
找工作前衝刺書籍:(前面基礎重要,這個只作衝刺用)
編程珠璣、
編程之美、
劍指offer、
程序員面試寶典

總結:學校做項目、實習都好,一定要注重夯實基礎,基礎是內功,語言是招式,內功愈深,方能招架各種筆試、面試。以上書籍不管如何,請熟悉再熟悉。真的非常重要。

C++方向

推薦書籍:

MFC:深入淺出MFC,window程序設計,MFC六大仿真。這個問得很少,基本上不用看
先看C++,再看STL,最後看設計模式。
C++:C++ Primer,C++高級編程。有時間主要看C++Primer,這本書講得很詳細了,可以多看幾遍,後面那本書,想了解得更多,可以看看。
STL:STL源碼剖析。這個問得有點多,主要把各種容器的底層實現機制以及優缺點掌握清楚,這個問題經常問。另外,大數據處理經常用到hash_map,hash_set,hash_map,hash_set和一般的基於紅黑樹的map,set之間的對比,以及紅黑樹和平衡二叉樹之間的對比問得比較多。
設計模式:大話設計模式,Head First設計模式,設計模式可複用面向對象軟件的基礎。沒有時間,這個可以少看,稍微瞭解一下,問得不多,也不難。
數據結構:李春寶,數據結構與算法(c++)版,劍指offer,程序員面試一百題,算法導論(循環不變性,動態規劃,貪婪算法),編程之美,編程珠璣。
先把基礎的數據結構與算法(c++)版搞得非常熟,對於數組,鏈表,棧,隊列,字符串,二叉樹,查找,排序要非常熟,最好多寫幾遍。其他的在找工作之前兩三個月內看看。
計算機網絡:tcp/ip詳解卷1,計算機網絡自頂向下。重點看tcp的相關章節。
C:C陷阱與缺陷,程序員的個人修養,C語言深度解剖。重點看程序員的個人修養(補:CSAPP真的理解了,這本書也就不需要怎麼看了),C語言深度解剖後面有大概二十道題,能夠基本上做出來就不用看了。
操作系統:現代操作系統 Andrew S. Tanenbaum(linux內核0.11,linux內核情景分析)。要了解原理的話,前面那本書講得很詳細。操作系統的話,線程間通信和進程間通信問得比較多,再就是進程空間,內核態,和用戶態也可能問一下。
linux:UNIX環境高級編程,UNIX網絡編程。有時間可以看看,搞上層的話基本上可以不看。
大數據處理:很多大的網絡公司都會問,http://blog.csdn.net/v_july_v/article/details/7382693。

Java Web(略)

推薦書籍:
推薦理由:C語言與算法是必須的防止筆試去送。
《C Programming Language》 Brian W. Kernighan/Dennis M. Ritchie
C 和指針
編程珠璣
《數據結構與算法分析》(如果能力較強有充分時間推薦《算法導論》)
推薦理由:計算機網絡(偏應用)和操作系統熟悉能較好應對面試
現代操作系統》(適當瞭解Linux《鳥哥的Linux私房菜:基礎篇》)
《計算機網絡:自頂向下方法》
《HTTP權威指南》
推薦理由:Java必須掌握的基礎以及進階
《Java語言規範》
《Java核心技術》
《Java編程思想》
《Java與模式》《設計模式》
以及JVM基本原理(例如GC,Class Loader等等)
推薦理由:臨時抱佛腳,需要知道的一些面試經典題目
《劍指Offer》《編程之美》
關於實習、競賽與項目:
首先不論實習、競賽與項目主要參與其中哪一個,必須夯實基礎把推薦書籍認真研讀。
其次通過多次與各大互聯網公司技術面試官交流,得到的結論是三者的重要程度是實習>競賽>項目。如果在找工作之前有去給力的公司實習的機會一定要珍惜。
再次學校項目應該針對性參與,做自己最感興趣同時最願意深入研究的方向,防止項目經驗多而不精。
最後一定要保證有自己思考的時間和與小夥伴交流的時間。

來源:http://blog.csdn.net/huomanqingying/article/details/12876759


他人支言片語

1.語言要求不高,能說清一段程序內存分佈,多態機制簡單的原理比如虛函表就算過關了。最多寫點小片段看看。
2.沒有平臺和庫要求,會基礎就行。
3.如果目標是cpp×後端,那麼網絡>操作系統=數據結構與算法=某種語言=計組>其他一些知識比如分佈式系統並行計算網絡安全等等。網絡是最重要的,重點是TCP/IP協議棧。數據結構算法什麼的,隨便拿個基礎知識點出來要能說清是什麼幹什麼什麼特點,並不難(像我其他不行,還要求加試了幾題算法,最終也沒過,因爲事先不知道網絡的重要性)。另外考點進程,內存管理,CPU調度,網絡安全,中斷機制就比較散了。
如果是cpp×其他,不清楚。
利益相關: 騰訊遊戲後端二面被刷狗。


多coding。這個不多說了,碼農每天花10幾個小時寫代碼不是啥難事吧?最大的難事可能是琢磨琢磨怎麼保護腰和頸椎。當然,多coding包括了多實習,最好是實BAT的習。至於leetcode、topcoder、各種OJ什麼的,題主如果只瞄着BAT,那大可不必浪費時間,但是如果打算拿硅谷的offer或者北京那一票海龜回來辦的公司,leetcode全刷一遍還是必須的。

多思考。只寫代碼是不夠的,至於該怎麼思考、該思考什麼,這個屬於多思考的一個子問題之一,請題主自行解決。

額外ps一句,題主的一年時間可能看不了這麼多書,對其中幾本比較「速成」的做個重點推薦:
《深入理解計算機系統》,簡直神書不解釋了,面試完你就會後悔沒多看一遍。
《TCP/IP詳解卷1》,有了這本書碼碼再也不用擔心我被十一五教材——沒錯我說的就是坑爹的計算機網絡殘害幼小心靈了。
《算法導論》,BAT的面試官真的沒時間成天刷OJ成天給你來高難度題幹掉你,他們出的最難的你都能在算法導論課後題裏找到原型。
深度探索C++對象模型》,面C++崗說不出虛表實現機制?那基本就是面試成績打對摺的節奏,帶上這本書防身吧。
編程之美》,幫你應付掉大部分逼格還不太夠的公司。
來源:http://www.zhihu.com/question/25680951?rf=24987656王迅


1. 找一個你喜歡的語言(C++ | Java),看兩三本書,包括一本Effective開頭的,看一下Head First Design Pattern。
2. Leetcode, Crack the Coding Interview刷一遍。
3. 操作系統推薦[Operating Systems: Three Easy Picecs](Operating Systems: Three Easy Pieces),瞭解一下主要組件的設計思路和實現,掃一下“深入理解計算機系統”。
4. 就你自己的方向,寫一個小項目,或者跟着實驗室的項目走一下。
5. 找一個你感興趣的領域,看一兩個開源項目,瞭解其關鍵技術、設計、實現方法
6. 從找實習開始,面試。
————————————
ps. 沒面過BAT之前,我也覺得BAT很難,面過之後,覺得沒想象那麼難。另外,面試有一定的運氣成分。
來源:http://www.imleon.cn/how-into-the-bats-research-and-development-department.html (最後)周泰


個人經歷感覺,面試過程必備下面四個方面: 

1.研究生一般會先問項目,所以對項目的描述一定要重點突出,細節部分要了如指掌,要將項目的背景提升到一個大的高度,最重要的是體現自己的工作量(包括遇到的困難,如何解決)。 
2.基礎知識要熟悉,這裏說的並不是所有的基礎知識,常問也就那麼幾個,爲了面試針對性的複習就好了(後面有乾貨)。 
3.手寫代碼技能,個人感覺要在代碼中體現兩點,邊界條件考慮;能體現思路清晰,不一定每個函數都得實現,但算法思路一定要體現。另外還有必要的註釋會幫助面試官理解你的思路。 
4.最後來一碗雞湯:對自己想要的東西,要不顧一切的去追求,不要輕易放棄。 

謝謝牛友聽我囉嗦完,下面是本次騰訊面試的題目彙總,有些是身邊同學提供的,沒有給出答案,相信牛友們會自己找的。

面試題彙總(乾貨) 
計算機網絡相關 
1 TCP三次握手、四次握手
2 TCP滑動窗口機制
3 TCP擁塞控制機制
4 socket模型

C/C++相關 
1 虛析構、模板和宏
2 虛函數實現機制
3 vector與list的區別,map是如何實現的,查找效率是多少
4 extern 關鍵字有什麼用
5 malloc和new的區別,能否malloc(1.2G)

linux以及操作系統相關 
1 內存池實現
2 進程間通信機制
3 Linux ps命令,以及看內存當前使用狀態的命令
4 進程與線程的區別,共享的數據
5 進程的內存空間

算法與數據結構 (手寫代碼實現) 
1 大整數加、減、乘、除、求模運算實現
2 很多整數,找其中出現次數最多的那個數
3 單鏈表翻轉(兩個指針如何實現)、查找、刪除、插入以及雙向鏈表、有序鏈表合併
4 判斷一個整數是否是2的整數次冪.(n&(n-1))
5 二分查找(注意邊界條件)
6 常見排序算法的實現以及穩定性(快排跟歸併考的很多)
7 字符串翻轉(O(n))、匹配(KMP算法)
8 最長遞增子序列(nlogn的算法)
9 鏈表判斷是否有環,環的入口,兩個鏈表是否相交(快慢指針)。
10 指定一個數組,求2個數的和等於指定的和(某一個數),如果是3,4,5,n個等於個的和(某一個數)呢?(可以看作揹包問題)

其他 
1 紅黑樹的性質以及插入和刪除
2 解析XML文件
3 千萬級的用戶,提供一個服務,該服務有很多模塊,現在有一個底層模塊需要優化,問怎麼實現,在不影響其他服務模塊以及用戶體驗的情況下。(面IEG)
4 卡特蘭數以及公式推導(應多很多)
5 未知大小的文件,翻轉整個文件
6 如果內存中有個cache存儲qq號和最近登錄時間問怎麼樣做hit和淘汰
7 檢測短信敏感詞
8 大數據問題
9 C++、java和PHP有什麼本質區別
來源:http://www.nowcoder.com/discuss/260?toCommentId=19218


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章