關於C++的學習,對一位網友的回覆

這篇文章有灌水的嫌疑,畢竟其實我也只是個小菜,不應該這麼公開的說C++學習方法,尤其劉未鵬老大榜樣在先了。其實,我更多的是希望獲得更多交流的機會,也是對自己的學習歷程的回顧,學了很久的C++,對C++其實還是一知半解,尋地洞深藏遮羞中!不過這也讓我想起周國平先生的一句話,我將永遠困惑,也將永遠行走;困惑是我的誠實,行走是我的勇敢,下面說的大部分其實都是我自己沒有做到的,囧啊,嗚嗚,我現在大四,回顧自己的大學生活,覺得太多東西都沒有把握好,並沒有學精深,算是知恥而後勇,知不足而後憤吧,希望在以後的日子裏,我也能以下面說到的這些來要求自己,以示共勉!另外,請看到這篇文章的大牛們也能給出一些批評建議。如果各位覺得這篇文章不合適發表,我可以刪除本文~

***************************************************************************

關於對C++的學習。若你對C++的各種語法已經有了基本的瞭解,那麼我認爲有一本書是不能不看的,這就是《Effective C++》(最新是第三版,注意每一版都有較多改動)。有人稱它爲C++程序員的分水嶺,足見其分量。關聯的當然就有《More Effective C++》《Effective STL》,這些書都是以條款的形式給出,如果你對C++已經有了整體的瞭解,閱讀起來應該是很快的。讀完一本的話,你會很快喜歡上其它兩本。全部完成後你會發現很多散亂的知識會聯繫起來,以前很多不清楚的細節會明朗起來。

The C++ Standard Library》也很好,講述了C++標準庫的各方面,可以隨便看看,也可以作爲參考書,比直接查C++標準要方便得多了。

你跟我說過,你現在在看《C++ Primer》,囧啊,這本書我沒有看過,我看的是Bjarne Stroustrup的《The C++ Programming Language》,說實在的,我個人覺得,C++世界裏真沒有比BS老大更牛的人,到底人家是C++他爸嘛!靜態類型識別早在cfront就有,直到大約20年後 C++98 標準訂立的時候卻拒絕該特性,認爲實現太困難,想想吧倒是可以理解,畢竟世界上就一個 Bjarne Stroustrup,這不 C++0x 再次有了這個議題,大約過了30年,現在的專家才達到Bjarne Stroustrup cfront 當時的那個水平...當然,這也只是我的個人感覺吧。所以我還是推薦一下這本書,儘管這本書有一些罵名,比如翻譯不好(那就看原版嘛,我看的就是原版),比如文字艱深,這個...我也犯難呀~呵呵,不過書讀百遍,總會讀懂~

當你經過了前面的學習歷程之後,就可以考慮考慮《Essensial C++》,很薄,不到300頁,作者是Lippman(寫《C++ Primer》那位),翻譯是侯捷。完全可以當小點心享用,簡潔明瞭但同樣內涵卻並不單薄,對於迅速複習C++內容真的很好。

一般來說,這麼幾本書對個人比較熟練掌握C++語言應該是差不多了,可能對於悟性比較高的人來說,看了Bjarne Stroustrup一本《The C++ Programming Language》就足以寫出很瀟灑的C++程序了。但是仁者見仁,CSDN上很多老大對此都有自己的見解,最著名的可能就數劉未鵬老大了,他的博客在這裏:http://blog.csdn.net/pongba/archive/2007/12/11/1930150.aspx。我覺得如果時間充裕,你完全可以翻遍劉老大的博客,一定收益不淺。

就我個人來說,如果你不滿足於僅僅掌握C++編程,接下來就得做好四件事情:

  1. 博觀約取。C++的好書可謂汗牛充棟,到了這個時候,你自己都會知道自己想看什麼書,比如你對異常感興趣了,你自然而然就會找到Hurb SutterExceptional C++系列,講得確實是好!對模板癡情,自然而然就會找到《C++ Template大學啊,太美好了,時間TMD就是多,所以儘可能多讀C++名著真的是很好,具體有那些書,其實你去Google一下就會有一大堆,如果這時候依然讀C++抱有熱情,那麼看到越多的書就越會滿足於個人求知的慾望;
  2. 基本的算法和數據結構知識要熟練,最好,用C++自己動手實現數據結構和數據結構,甚至可以試試做一做中等難度的ACM訓練題,因爲我們念大學的時候項目經驗很少有的,能寫代碼的機會不多,這個時候寫寫數據結構的實現,對提高個人編程水平應該很有幫助;
  3. 你可以關心一下各種技術,不光是C++編程技巧方面,還有其它。例如,各種系統功能(多線程、進程通信、網絡通信、多媒體)的編程,各種平臺無關/平臺相關的C++(比如STLboost),等等。比如如果對Windows編程感興趣,MFC很值得學學,MFC罵名很多,但在我看來,MFC的確有自己的不好,但是它一直都有改進,而且在WindowsC++程序設計中的地位那真的很穩定,如果你用QT去開發Windows程序,總覺得有點非主流,呵呵。說到這一點,我覺得學C++最好儘量離開IDE,去Linux下學用g++gdbmake,個人感覺了,也不好多說什麼,你可以試試,覺得不過癮的話再折回VS或是CodeBlocksEclipseIDE也很靠譜~
  4. 那就是經常上上論壇或是寫寫博客和人交流交流,尤其,如果英語好,去DDJ這樣的網站耐心看帖子,一定功力暴漲。關於這個我就不多說了,只是爲了思維的全面性與說明的穩當性提到這一點。

對於C++, 可以這麼說,你選擇了C++,就是選擇了與複雜性相鬥爭,同樣的,這也意味着重大成就感的可能性。有人說C++程序員的水平比JavaC#高,這並不客觀,但是學習C++並堅持到底及至終有所成的過程,你個人的學習的韌性、鑽研的勁頭、調試的耐心,都會有極大的提升。這個過程,就是博觀而約取,厚積而薄發

說了這麼多,其實大部分都是我自己個沒有做到的,囧啊,嗚嗚,我現在大四,回顧自己的大學生活,覺得太多東西都沒有把握好,並沒有學精深,在以後的日子裏,我也希望以上面說到的這些來要求自己,算是共勉吧!

 

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