【链接】Linux C/C++ 学习路线-已拿腾讯、百度 offer
https://www.nowcoder.com/discuss/203082?type=0&order=0&pos=69&page=1
https://www.nowcoder.com/discuss/193598
https://www.nowcoder.com/discuss/164781
https://www.nowcoder.com/discuss/188367
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
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
1、網絡編程相關知識 TCP協議 阻塞/非阻塞IO 異步/同步IO 多路復用IO等2、多線程/多進程編程相關知識 線程池、互斥鎖、共享鎖、IPC機制等3、數據庫相關知識 關系型數據庫sql編寫優化 NoSQL數據庫使用 內存數據庫使用4、操作系統相關知識 進程/線程調度 異步IO機制等
作者:Chengbb
鏈接:https://www.zhihu.com/question/21543813/answer/103990729
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
作者:Conley
鏈接:https://www.zhihu.com/question/34574154/answer/146939454
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
本科應屆生,不請自來答一發吧。 既然是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:評論中有人補充了一些問題,可以參考看看。
轉載于:https://www.cnblogs.com/xjyxp/p/11131367.html
總結
以上是生活随笔為你收集整理的【链接】Linux C/C++ 学习路线-已拿腾讯、百度 offer的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Day47 Django基础部分、路由配
- 下一篇: python执行linux和window