文章目錄
目前準備面試同學都知道,C++是百度和騰訊的主流開發語言,而java是阿里的主流開發語言。
對於初學者來說,也不用糾結究竟學習c++還是java
其實只要好好掌握好一門即可,另一門即可融會貫通
因爲我自己先後就職於騰訊和百度的工作經歷,所以接觸C++更多一些
我這裏就給大家推薦學習C++,從瞭解到熟悉的各個階段應該看的書
爲什麼不說精通呢,因爲精通C++超出我的範圍 哈哈,所以我只列出學習到熟悉C++的學習過程。
相信國內敢說自己精通C++的也是少數了
言歸正題
首先什麼是C++
如果僅僅以爲C++就是C加上了一些面向對象的特性,說明還沒有真正的瞭解C++
C++發展這麼多年,已經融入了很多元素。
大家可以把C++視爲一門聯邦語言,而非單一語言
C++主要涉及到如下四塊:
- C語言。說到底C++仍是以C爲基礎的。區塊、語句、預處理器、內置數據類型、數組、指針等等都來自C。
- Object—Oriented C++。 這部分就是 C With Classes 所訴求的: 構造函數、析構函數,封裝、繼承、多態、虛函數(動態綁定) 等等。
- Template C++。 這是C++泛型編程的部分,也是大多數程序員經驗最少的部分。Template相關考慮與設計已經瀰漫整個C++,也正是因爲Template帶來了新的編程泛型,就是模板元編程。
- STL。STL是一個程序庫。容器、迭代器、算法以及函數對象的規約有極佳的緊密配合和協調。STL有自己的一套規則,所以當你使用STL的時候必須要找它的規約來。
我這裏推薦5本書,建議按照我列出來的順序進行學習。
第一本書:C++ primer,豆瓣評分:9.4
這本書是C++經典教程,書中的所有例子均採用了C++11的標準。
書中的教學輔助內容是非常豐富,編程示範也是精心設計,所以這也是C++ Primer一直保持着在C++領域的權威地位的原因。
無論是對初學者入門,還是已經工作的C++程序員提升自己的技術實力,這本書都是首選
看完了本書,可以說入門C++了。
第二本書:effective C++,豆瓣評分:9.6
對於這本書,在C++圈子裏有一個傳言:C++程序員分爲兩類,讀過Effective C++的和沒讀過Effective C++的。
這本書是C++頂級大師scott Meyers成名之作,
看完primer之後,在讀Effective C++,可以快速提升自己C++的功力。
這本書也不是讀完一遍的快餐書籍,第一遍讀的時候可能很多條款領會不到其真正用意。
這就需要反覆閱讀才能體會,這裏蘊藏着C++精神的思想和無與倫比的表達能力。
第三本書:effectiveSTL,豆瓣評分8.9
本書是真的STL的經驗之談,同樣是Scott Meyers大師的力作
書中有50個條款,每一個條款都舉例了在使用STL時候需要注意的地方
並且詳細的分析了爲什麼會有這樣的問題,以及給出相應的解決方案。
此時看完了C++ primer,effective C++,effective stl之後,可以說自己是掌握C++了
第四本書:STL源碼剖析,豆瓣評分:8.7
每一個程序員都知道,提高編程水平的最快捷徑就是剖析大師的代碼。
源碼在手,天下我有。
前輩們的經驗結晶、思維過程、技術思想、縝密風格,都原封不動的體現在源碼之中。
本書講述了各個容器的源碼實現,包括vector、list、heap、deque、Red Black tree、hash tablet、set/map 等等。
還有各種算法的實現,包括排序、查找、排列組合、數據移動、複製技術等等。
看完此書可以說是有一點底氣說自己熟悉C++了,至少比了解更近了一部
第五本書:深度探索C++對象模型,豆瓣評分8.9
這本書重點介紹C++面向對象程序設計的底層實現機制
主要包括結構式語意、臨時性對象的生成、封裝、繼承,以及虛擬函數和繼承
這本書可以讓你徹底瞭解底層實現的機制,這會讓你的代碼執行效率獲得極大的提升。
對於C++底層機制感興趣的讀者,這必然是一本讓你大呼過癮的絕妙好書。
看完此書,可以說自己真的熟悉C++了。
最後呢,也要強調一下,
讀過只是開始,多練多實戰內化成自己的東西纔是王道!
這裏介紹的書籍我都已經幫大家整理好了,而且還準備了primer 的中文版和英文版。獲取方式:
在我的微信公衆號「代碼隨想錄」後臺回覆「C++進階書籍」獲取哈
筆者介紹:
ACM亞洲區域賽銅牌獲得者
哈工大計算機碩士畢業
畢業後先後就職於騰訊和百度
對後臺技術棧和算法有多瞭解
個人微信公衆號:「代碼隨想錄」,分享自己對互聯網以及技術的想法與思考。關注後回覆: 「java」「python」「php」「計算機網絡」「簡歷模板」 等等關鍵字就可以獲得我多年整理出來的學習資料。求職內推也可以來找我,首推百度。騰訊、阿里、頭條等也可以幫忙聯繫。
期待你的關注!