【連接】Linux C/C++ 學習路線-已拿騰訊、百度 offer

https://www.nowcoder.com/discuss/203082?type=0&order=0&pos=69&page=1node

https://www.nowcoder.com/discuss/193598python

https://www.nowcoder.com/discuss/164781linux

https://www.nowcoder.com/discuss/188367c++

https://www.nowcoder.com/discuss/188367程序員

已經有兩年C++經驗的話,建議從網絡編程這塊入手,先擼一個單線程的epoll服務器,搞明白邊緣觸發水平觸發的區別,再擼一個多線程的epoll服務器(linux下作高併發必用,libev,libevent和boost的asio,redis的網絡部分也是用epoll實現的)。有這基礎就能夠說後端入門了。接下來再學學數據庫,nosql和分佈式便可面試

做者:低端叫獸
連接:https://www.zhihu.com/question/39169728/answer/97484099
來源:知乎
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。redis

一、網絡編程相關知識 TCP協議 阻塞/非阻塞IO 異步/同步IO 多路複用IO等二、多線程/多進程編程相關知識 線程池、互斥鎖、共享鎖、IPC機制等三、數據庫相關知識 關係型數據庫sql編寫優化 NoSQL數據庫使用 內存數據庫使用四、操做系統相關知識 進程/線程調度 異步IO機制等算法

做者:Chengbb
連接:https://www.zhihu.com/question/21543813/answer/103990729
來源:知乎
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。sql

做者:Conley
連接:https://www.zhihu.com/question/34574154/answer/146939454
來源:知乎
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。shell

本科應屆生,不請自來答一發吧。 既然是C++後臺開發,那就不會侷限於C++自己,除了C++以外還有後臺開發的相關內容,根據我本身面試的狀況,主要分爲:數據結構和算法,C++,計算機網絡,操做系統(Linux)幾塊。固然總不會全部的內容都面面俱到,面試官仍是會根據你簡從來選擇側重考察哪一方面的知識的。好比我我的簡歷上突出的是C++和Linux方面的經歷,因此這兩塊問的比較多。 首先是數據結構和算法,都說這是程序員安身立命之根本,通常面試第一關遇到的都是面試官說「咱們來寫個算法吧」,我遇到的算法基本上要麼是位運算的,要麼是DP和貪心,有一些查找和排序(包括topK)算法,不少leetcode和劍指offer上面的原題或者變種題,難度中等吧。數據結構的話比較簡單,最難的也就考過字典樹,好像你們都遵循着夠用就行的原則,反正就是隊列,樹,圖,這幾種,主要考察的是各類操做的時間複雜度,應用場景怎麼選擇等等。 而後是C++部分,基礎語法是不會考的,很喜歡考類的內存佈局,vtable的原理,虛繼承的時候類內存佈局,多繼承的時候類的佈局。另一個重點在內存部分,只要跟內存相關的都喜歡考,對指針的理解,allocator的實現,vector內存分配的策略,各類智能指針實現原理及其使用注意事項, rule of three, RAII,內存泄漏的原油時候如何調試等等。 Linux這裏主要考察進程調度和進程生命週期,特別是CFS調度算法,幾乎是必問,進程部分還有進程間通訊。還有文件系統,對VFS的結構很喜歡考,解釋軟連接和硬連接(從inode和dentry去解釋),還有文件緩存,IO調度算法等等。Linux這裏也喜歡問內存,slab,slub,夥伴算法,進程內存空間,線程內存空間等等。在系統編程層次主要考察各類IO系統調用、進程相關的系統調用、socket編程。而後把這些系統調用對應到進程生命週期和進程間通訊的各個階段去考。還會考查高級IO操做,IO多路複用,poll,epoll等等,AIO,零拷貝。另外就是Linux的各類使用命令等等,都是經常使用命令,sed,grep,top這種。 計算機網絡主要集中在tcp/ip還有http上面,喜歡考tcp/ip的各類狀態轉移,把UNP中那副狀態轉移圖中的11個狀態背下來就能夠應付,還有就是滑動窗口,慢啓動,快恢復等等,偶爾會考路由算法。Http會考查一些狀態碼,各類http選項,重點考查緩存控制,考查keep-alive和pipe line等等。 大概知識點就是這些了,之後再慢慢補充細化。

做者:s1mba
連接:https://www.zhihu.com/question/27840814/answer/38305844
來源:知乎
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。

本人作過一兩年的安全後臺開發,固然是linux環境下的了。舉幾個常見的問題。1. 數據結構基礎。好比實現一個最簡單的哈希表。2. 操做系統基礎。linux進程模型,堆/棧的區別,大概的位置,各往哪一個方向生長,各種變量存儲在哪些區域;更深一點可能會問動態庫與靜態庫的區別,由於這個在生產環境中常見,動態庫映射在進程模型的哪裏;其餘常見如殭屍進程、線程共享等問題。3. tcp/ip基礎。好比常問三次握手,四次揮手,爲何要四次;time_wait狀態相關問題;mtu分片問題;如今通常不會問tcp/ip頭大小這麼蛋疼的問題了,但可能會問tcp頭部幾個狀態字段,好比syn/psh/fin/rst/urg/ack....在什麼情形下會置1,這個就問得比較深了;深刻的還有滑動窗口與擁塞控制的大體原理。4. socket編程。阻塞/非阻塞的區別;事件循環select/poll/epoll;常見的網絡庫read/write會怎樣實現(能夠參考muduo);有面試官會問客戶端是否須要bind;tcp/udp 協議編程時的細微區別...5.工具相關。vim/makefile/gdb/g++ ...6. c++相關。免不了問虛函數;常見stl實現和操做;extern c 幹嗎的。7. 腳本相關。shell/perl/python 至少會一門吧,運維/部署都須要。上述列舉的都是比較常見,比較簡單的問題。不過能把這些答好已經不容易了。PS:評論中有人補充了一些問題,能夠參考看看。

相關文章
相關標籤/搜索