我的C++學習路線

記錄我學習C++的過程。希望對那些想學習C++的人能有一些參考價值。
首先需要說明的是,C 和數據結構我有一點點基礎。

C++ Primer 5th Edition

首先要說明的是,我不是從零基礎學習C++,本科學習學習過C語言,對C有一定的瞭解和基礎。所以在學習C++的時候,我沒有還太多時間糾結基本的語法。
對於同樣有C基礎的人,建議直接看Primer,看得很快,就像翻小說一樣。主要是瞭解C++的面向對象的思想。學習C++的時候,我是把Primer裏面的例子仔細看了好久,然後做一些習題,編寫一些程序,來檢測自己掌握的程度。
前後差不多兩個星期時間看完Primer,然後基本就可以寫一些簡單的C++程序了。
如果是零基礎的話,建議可以先看 C++ essential


其實看完Primer之後就可以刷題了,我就開始在leetcode上刷題了(事實上,之前就學過數據結構,然後再看Primer之前看過了一遍算法導論,如果你沒有數據結構和算法的接觸,還是先學習一些基礎的數據結構和算法的知識)。刷題的過程會用到 vector, stack, queue, list, 你會對這些標準容器的操作更熟悉。有時也會用到 set, map, unordered_map, unordered_set,邊刷題邊複習Primer,也會讓你熟悉怎麼用它們。

Effective C++

看完Primer之後,我在網上看到一個C++學習書單,和一些其他推薦書目,選擇了 Effective C++,現在一個星期看了三分之二了。總的感覺這本書講得很實用,但是有一些內容過時了(Primer 5th 是C++11),如果你先看過了Primer你就會發現很多東西其實在Primer裏面也都講過了。不過Effective C++還是有必要看一遍的,有些東西還是適用的,而且講得特別清楚。
比如 Primer 裏面對於 is-a 和 have-a 的關係講得並不是很清楚(或者說我看Primer的時候對這兩者關係理解的不清楚),看 Effective C++ 的時候就很快弄明白了。
這本書的作者Scott Meyers 針對 C++11,14 寫了一本新書 Effective Modern C++,看完目前這本書,我就打算看 Effective Modern C++。 我沒有直接看Effective Modern C++而是先看 Effective C++的另一個原因是Effective Modern C++現在只有英文版的,沒有翻譯的中文版。所以想看完中文的書再來啃英文的。


強調一點,學習任何東西,最好的方式就是使用它。光看書和刷題是不夠的。這時候我已經開始在用C++實現一篇論文裏的算法了。這對我的C++學習很有幫助。因爲刷題主要是考算法部分,對於C++語言本身的一些東西,只有寫一寫真正的程序才能掌握。

Effective Modern C++

馬上要看啦。

Effective STL

這個書我也買了,還是同一個作者。這本書就是讓你學會使用STL。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章