后台開發知識點
面面俱到很難,一個領域鑽研的很深也很難。我認識的大神里有把C++語言吃的非常透的,也有實驗室就是搞分布式的,拿offer都非常輕松。
博客(C++后台/基礎架構)
http://www.linya.pub/
web服務器開發
直接看muduo的代碼去學習吧,但你可以看看我markdown里總結的東西,看一下我做了什么,另外這個也只是幫我應對了春招實習招聘,作為一個例子供大家參考。
下載書籍
1.《十五個經典算法研究與總結、目錄+索引(by_...》.pdf
2.《后台開發 核心技術與應用實踐》.pdf
騰訊員工寫的,聽說評價不怎么樣,可以當作cpp后台面試提綱。
3.Linux多線程服務端編程:使用muduo C++網絡庫.陳碩(詳細書簽).pdf
當析構函數遇到多線程──C++ 中線程安全的對象回調(最新版見《Linux 多線程服務端編程》第1章)
多線程服務器的常用編程模型(最新版見《Linux 多線程服務端編程》第2、3章)
《Linux 多線程系統編程精要》(第4章)
Muduo網絡庫使用手冊(2012-06-26更新,最新版見《Linux 多線程服務端編程》第6、7章)
《Linux 服務端網絡編程精要——Muduo 網絡庫的設計與實現》(第8章)
《分布式系統的工程化開發》(第9章)
C++ 工程實踐(2012-04-20更新,最新版見《Linux 多線程服務端編程》第10、11、12章)
網絡編程學習經驗(2012-02-13更新,最新版見《Linux 多線程服務端編程》附錄A)
從《C++ Primer 第四版》入手學習C++(2012-07-11更新,收入《Linux 多線程服務端編程》附錄B)
https://github.com/hoshinotsuki/documents
https://blog.csdn.net/Solstice/article/details/6206154
3.1 教程 D:\資源\教程\陳碩網絡編程實踐1116mins
2019/2/25 更新
1.c++工程師 百度
書和刷題和春招實習
- 語言:《c++ primer》《stl源碼剖析》《深度探索C++對象模型》
-
面試考點集中在虛函數、虛繼承、vector等容器的底層實現以及一些c++新特性上。
-
- 網絡:《計算機網絡》
-
這本書足夠應對所有面試了,主要考點在TCP和UDP區別,TCP三次握手、四次揮手。
-
- OS:《現代操作系統》
-
我的經驗是有時間就看書,沒時間就看網上博客,因為操作系統的書一般都講的比較晦澀難懂,不如一些好的博客講的更容易讓人理解。面試題主要集中在文件系統、進程線程、進程間通信、線程同步、程序內存空間這幾個方面。
-
- 算法:《劍指offer》和《leetcode在線編程訓練》,幾乎算是刷完了吧。
-
二叉樹和排序相關算法考的最多,其次是深度優先遍歷、回溯和動態規划。排序算法比較常考的是快排、堆排、歸並排,還有基於快排和堆排思想的topK算法(這些都要會手寫)。二叉樹主要是樹的前、中、后序遍歷(遞歸和非遞歸,最好能手寫),層次遍歷,樹上兩個節點最遠距離、樹和有序鏈表互相轉化,兩節點最近公共父節點,其他還有許多,暫時想不起來了。深度優先遍歷(dfs)、回溯、動態規划主要是筆試題用的多,不過最好能夠手寫一些經典算法,比如01背包、最長公共子序列以及其推導公式。如果感興趣的話可以了解一下dfs、回溯、貪心以及動態規划之前的聯系和區別。
-
- Linux:《linux多線程服務器編程》
-
這本書主要是可以多了解一些概念,包括socket編程、各種同步鎖。除此之外可以看看博客學習一下io多路復用、負載均衡、一致性哈希、線程池、對象池、任務隊列等等。
-
- 數據庫:《redis設計與實現》《高性能mysql》
-
c++面試對於數據庫的要求沒有java高,我遇到的面試題主要是,redis的5種數據類型、redis的單線程實現、redis集群高可用;mysql引擎、索引、事務特性、隔離級別、臟讀、幻讀等。
-
- 大數據和機器學習
-
這兩點只是面試中的加分項,時間充裕的話可以了解一下,在面試中如果有相關經歷,面試官會覺得你是一個很全面的人,適合以后培養。
-
- 實習:
-
春招先后在百度和騰訊各實習了3個月,3月份先去了百度的互聯網數據研發部,做一些頁面特征的提取策略,包括文章評論量、收藏量等;后來6月份去了騰訊的興趣閱讀產品部,做的是推薦系統架構和一些前端的東西。實習對秋招的幫助主要體現在,實習經歷是很多公司秋招提前批的優勢條件。面試官會關注你在實習公司的工作表現,在面試時是個很不錯的加分項。同時,實習還能擴展視野,從產品和技術兩個方面理解一個實際項目是如何構思以及落地的。 關於實習,我的建議是能去就盡量去吧。不過我身邊也有許多沒有實習經歷也能拿到大廠offer的,這個還是要看個人。如果能夠去實習的話,我的建議是不要頻繁的更換實習公司,一定要把自己的實習內容理解透徹,不然面試的時候反而會不利。
-
時間安排
1. 一個月學習語言
2. 兩個月學習算法加刷題
3. 兩到三個月學習操作系統、數據庫以及其他知識順帶刷博客和面經,半年時間差不多就可以找個比較不錯的工作了。
根據個人實際情況,可以調整自己的學習計划,我在這里只是一個很初步的建議。對於想要拿到BAT級別以及更好的offer的同學可以在在自己感興趣的方向深挖一下,面試的時候主動引導面試官往自己擅長的方向提問。
offer選擇
我對於offer選擇的建議是部門 > 平台 > 薪水,在薪水相差不大的情況下,盡量去大廠或者核心部門吧。
20春招匯總 2.25
鵝廠。