清水河畔上大牛的面經
10年大牛的面經
- 直接上鍊接地址
- 專業技能的問題:
- Linux程式設計---所有互斥方法,多執行緒程式設計,程式間通訊
- 網路程式設計---網路程式設計正規化,非阻塞connect,TCP/IP(time_wait狀態,如何更改這個狀態的時間,OSI/TCP/IP)
- 簡單資料結構和演算法(用模板寫)
- Linux的命令(寫越多越好)-----很多東西需要講原理和底層的實現
- 二面是問專案,問得很細,要講到面試官弄懂為止,忽悠不得
- HR面中間可能會有小陷阱
- 問uboot程式碼的流程
- 作業系統同步互斥,大小端,設計模式演算法
- 問題主要涉及專案、網路程式設計、shell指令碼、演算法資料庫系統優化
- 超大量連結時的處理和IO效率的改進
- 演算法要反覆優化
- 首先自己分析可能的瓶頸,然後先從軟體上優化,先改演算法(B-, B+),然後想辦法減少I/O次數,設計儲存方式
- 然後硬體上優化,軟體優化的技術和方法,如果找到了最優就要證明他為什麼是最優
- 別人面試成功的原因總結:
- 一方面是自己比較淡定,面試時比較有自信,說話比較從容,沒有緊張過
- 另一方面主要是平時的積累,每次回答問題時,同樣的問題儘量回答得比別人更深些
- 一般人可能會給出答案,但更重要的是能夠深挖一層,要麼講原理和底層實現,要麼擴充套件到高階的用法。
- 別人是怎麼積累的---看了N多Blog文(部落格) 和 N多書;書單
- 《C和指標》
- 《C專家程式設計》
- 《C陷阱和缺陷》
- 《資料結構基礎(C語言版)》
- 《深入理解計算機系統》
- 《Unix作業系統設計》
- 《Unix高階環境程式設計》
- 《Unix網路程式設計》
- 《Linux核心設計與實現》
- 《Linux裝置驅動程式》
- 《Linux裝置驅動開發詳解》
- 《ARM嵌入式系統基礎教程》
- 《ARM嵌入式系統實驗教程(二)》
- 《ARM嵌入式系統軟體開發例項(一)》
- 《ARM嵌入式Linux系統構建與驅動開發範例》
- 《ARM嵌入式MiniGUI初步與應用開發範例》
- 《嵌入式實時作業系統--uC/OS-II,第二版》
- 《基於嵌入式實時作業系統的程式設計技術》
- 《ARM嵌入式系統開發-軟體設計與優化》
- 《C++ Primer》
- 《深度探索C++物件模型》
- 《effective C++》
- 《軟體優化技術--IA-32平臺的高效能手冊(第二版)》
- 《多核程式設計--通過軟體多執行緒提升效能》
- 《程式設計師面試寶典》
- 《TCP/IP詳解(卷一)》
- 《嵌入式Linux應用開發完全手冊》
- 《新一代視訊壓縮編碼標準--H.264/AVC》
- 《跟我一起寫makefile》
- 《μClinux原始碼中Make檔案完全解析——基於ARM開發平臺》
- 《人月神話》
- 《more effective C++》
- 《headfirst設計模式》
- 《大話設計模式》
- 《STL原始碼剖析》
- 《敏捷軟體開發:原則、模式與實踐》
- 《演算法導論》
- 《資料結構與演算法分析C++描述(第三版》
- 看書有方法,必須選最經典易讀的書;
- 其次讀書時,一定要多想多實踐,透過現象看本質,古人云“學而不思則罔,死而不學則殆”;
- 最後,讀書一定要一鼓作氣,一本書如果放一段時間在讀,就必須得從頭再來了。
- 搞嵌入式的開源專案
- 搞嵌入式的兄弟可以關注一下, 專案負責人(也是我的偶像,申大牛)的面經
- 嵌入式軟體開發學習,看原始碼是一個很好的方式,通過閱讀原始碼就可以更好的瞭解機制,尤其是學習linux,經典書配合原始碼是最佳組合,當然也要多實踐。
- 這裡有我最近參與的一個專案---嵌入式多核實時作業系統aCoral,你可以選擇將這個作為學習,瞭解嵌入式的平臺。
-
網際網路後臺c++自學經驗分享
- 網際網路後臺c++自學經驗分享
- 複習準備過程
- 小甲魚的c++視訊教程----兩天搞定
- 《c++ primer》
- 《鳥哥的私房菜,基礎篇》
- 《c三劍客》
- 《tcp/ip詳解卷一》---別人看了三遍
- 《CSAPP深入理解計算機系統》---神書,有空就看
- 《Unix環境高階程式設計》
- shell指令碼語言,鳥哥私房菜偶爾翻翻,
- Makefile,cMake什麼的還是要會滴,否則,看unp是蛋碎一地;
- 還有學了Python-入門 廖雪峰 + 簡明Python教程神奇
- c++ boost庫,現代作業系統
- effective c++, more effective c++,資料結構,http協議,瞭解了下資料庫
- muduo,c++11新特性,effective c++, more effective c++;c++必知必會,stl原始碼剖析,設計模式
- c++ 11新特性,Unix網路程式設計模型的分析,
- tcp/ip相關難點問題分析理解,還有對演算法的總結,常規也就那幾種方法分治、貪心、回溯、動態規劃什麼的(總結的放後面)
- 看了nginx,看了部分後發現短時間有點來不及
- 特別推薦的書籍
- 深入理解計算機系統 csapp --- 這本書有兩章節一定要細看,編譯連結,結合gcc,makefile理解
- 現代作業系統 --- 個人感覺必看的
- c++必知必會 --- 感覺比effective c++更牛逼
- c++11新特性 -- 不錯的書
- 圖解http --- 面試很可能涉及,這個書很薄,還需要了解其他知識,這個比較淺顯
- 設計模式 --- 常規的幾個應該會,比如單例模式很容易被拿來手寫
程式碼大全二 --- 有時間可看,無形中提升逼格,面試可能能用上
科班出身--(玩具版資料庫,玩具版記憶體池,玩具版網路庫)--C++後臺開發
- 面經連結
- 準備過程:
- C++語言:《Effective C++》,《STL原始碼剖析》
- 作業系統:《Linux核心設計與實現》,偶爾看看《深入理解Linux核心》
- 網路:《TCP/IP》詳解卷一 有關TCP和IP部分
- 資料結構:沒有特別複習,刷了一遍《劍指offer》,讀了一遍《程式設計師面試金典》
- 資料庫:沒有複習,主要是專案中用到的一些
- 其他:《程式設計師的自我修養》
- 其他
- unix網路程式設計和環境程式設計,linux常用指令,作業系統,資料結構和演算法,c++primer,多執行緒,資料庫等等。。
刷題用劍指offer,程式設計之美,cc150,leetcode,還有計算機的基礎知識
大牛的C++面經
- 大牛的面經網址
- 乾貨
- 《劍指offer》、《C++ premier》、《Effective C++》、《STL原始碼解析》等C++基礎;
- Windows、linux作業系統;
- TCP/IP網路;設計模式等程式設計經驗;他人面經總提到的面試題目。
- 被推薦的連結
- 核心競爭力:這點很重要,你一定要有擅長的方向。比如C++你擅長Linux程式設計,那就很有優勢啊。
- 開始培養自己的特長吧,比如TCP/IP網路你理解的深。
- 面試演算法題精講
- 面試時溝通:
- 簡單點:能一句話描述的就別囉嗦,抓重點。
- 直接點:只回答相關問題,無關問題不回答。比如問你覺得另一個公司怎麼樣?回答:不好意思,我只瞭解你們公司,那個公司不熟。
- 堅持己見:特別什麼壓力測試時堅持己見尤為重要。
總之,你一定掌握一些溝通技巧會有用。
劉成都的面經
- 大佬的面經
- 一定要,而且儘量要把專案搞懂----不然一面都過不了
- 準備過程:
- 《C++ Primerplus》
- 《大話資料結構》
- 《Linux高效能伺服器程式設計》
- 2月份網上看視訊學習資料庫,一個星期可入門
- 《EffectiveC++》
- 《劍指offer》很重要很重要!!!一定要看,熟悉上面的程式設計題,大部分的手寫程式碼都能在上面找到!!!
- 像Linux基本指令,Socket、多執行緒這些都是常問的,一定懂透。沒看過設計模式和演算法
- 找工作中的建議:
- 建議:一定及早確定自己方向,即使一時確定不了也不要將時間浪費在內耗中,而是把基礎知識先學習起來!
- 各種渠道瞭解師兄師姐(不限於這些關係)找工作的資訊,一定參加實習面試,別人怎麼說都不如自己去體驗,
- 一試就知道自己什麼水準,可能的方向是什麼了!
- 具體準備:5月份開始自己看書,主要是看書,看部落格,百度/河畔搜面經。
- C++基礎:C++ primer,百度或者cnblog裡的C++常見面試題基本覆蓋所有關於C++的問題了,effective c++,物件導向的SOLID原則等
- 其它基礎:多執行緒,資料庫(我看的MySQL),計算機網路,演算法(大話資料結構和劍指offer,還有牛客上的演算法技巧),常用設計模式,深入理解計算機原理,網路程式設計(沒看完);
劍指offer上的題挺有用,最好刷兩三遍,基本現場手撕演算法不會太難
嵌入式的面經
- 面經的帖子
- 大疆完爆全場,不過僅此一家,能進大疆的都不用看我寫的了。
- 華為給的還湊合,沒有軟開和演算法高。
- 剩下的匯頂聯發科海康什麼的都挺高的。
- 好好學,一年成都稅錢十幾萬,安安心心過日子
- 準備過程
- 做嵌入式的預設C語言都過關了,沒過關可以看看C語言三劍客。
- 我最推崇的書是《深入理解計算機系統》,這本書從最底層處理器設計指令集,一直講到了作業系統執行緒程式什麼的,講的非常細,非常值得仔細閱讀。讀完了就能應付大多數面試的技術問題了,不管是嵌入式下哪個細分方向都可以。
- 其次作業系統方面可以看看《linux程式設計》《Unix環境高階程式設計》
- 核心和驅動方面可以看看《LINUX裝置驅動程式》《深入理解LINUX核心》
- 實踐方面可以看看《嵌入式Linux應用開發完全手冊》,買個韋東山的板子玩玩,或者買個樹莓派玩玩。
找嵌入式中偏向C++的話還要看一下資料結構的書。
四無小碩的面經
- 四無成長記
- 本科時的作業系統、編譯原理、計算機網路、資料結構、C語言、離散數學、軟體工程,研究生時的Linux核心、Linux網路程式設計、組合數學、隨機過程等專業課程的系統學習絕對是今後進行深造的助力。
- 準備過程
- 《演算法導論》《UNIX環境高階程式設計》《UNIX網路程式設計(卷一)》
- 真正大牛的面經1
- 真正大牛的面經2
- dariusdong大神建議我去開發一個基於Nginx的伺服器,原因在於,Nginx效能優秀、功能較多、較為輕量級故原始碼不是特別多、目前對它的原始碼分析的書籍也比較全面,並且使用C實現的,與我的擅長語言契合度很高。當然,我這裡就不算是參加開源專案了,而是基於開源軟體做一個自己的應用。當時就選擇了一個切入點,搞了一段時間,不僅僅把功能實現了,還根據一些書籍以及網路上的指導讀了不少原始碼,從這個開源軟體的處理框架、實現機制中學了不少優秀的設計思想,還練習了Linux下C開發,進一步地熟悉了Linux的機制和網路程式設計的細節,這個經歷為我的面試環節加分不少。當然我不是讓大家都去搞Nginx,而是根據應聘職位、個人喜好、擅長語言,有針對性地做一些應用級別的東西,參與開源專案或者基於開源專案搞開發均可,不要把自己的程式設計經歷僅僅侷限在寫幾個小規模數百行的測試程式上面。
- 面試時問專案的問題時,必須對自己所做了如指掌,包括實現、優化等等,而做優化的過程更重要。
- 最好是通過專案鍛鍊,並把語法細節吃透。
- 我希望能好好學習一下C++或者JAVA這類面嚮物件語言,而且把Python這樣的指令碼語言的掌握更進一步。
- 大佬的部落格
- 大佬的stackoverflow
- 簡歷準備:
- 一方面是選擇一個合適的LaTex模版
你的技能一欄用LaTex特有的排版的LATEX標上LaTex, 並相應地修改,另一方面是字斟句酌。
- 面經連結