入門:
入門就是要初步對編程的思想有個了解,並且能編程解決一些小問題。入門一定要選好書,難度如果太低了會造成對讀者的誤導,以為編程就是這麼回事;也不能太高深,免的打擊讀者的信心。既然編程的入門要求是編一些小程序解決小問題,那麼就沒必要直接學習C++,我覺得循環、判斷、跳轉、指針才是最基本的編程思想,學通了這些對以後學習C++很有幫助。
我建議應該先把C扎實地學好,不光要掌握C的語法,因為學習編程的最終目的是解決實際問題,所以還要適當掌握把實際問題與編程聯系在一起的能力,我推薦《 C程序設計語言(第2版) 》,這本書是C語言之父寫的,不僅詳盡介紹了C的語法,還提供了很多實際的小問題作為實例,可以說看了這本書之後能為以後的編程學習打下一個扎實的基礎!
提高:
學了《 C程序設計語言(第2版) 》後可以開始學習C++,一開始沒必要鑽很深的大部頭書,《 Essential C++中文版 》非常適合初學,一個禮拜就可以看完,看了它可以快速對C++的全貌有個了解,雖然不會馬上熟練掌握C++。
我們不能滿足於解決“百錢買百雞”,真正實現程序還有很多非功能上的問題,比如怎樣做才能使用更少的內存?怎樣做才能更快?在熟悉一門語言後,一定要認真學習的就是數據結構!數據結構保證了我們的程序能以高效的方式運行。《 數據結構算法與應用C++語言描述 》是本好書,它提供了很多實際的例子,比如火車站調度、走迷宮,相比於“百錢買百雞”這種問題又提高了一個層次。
接下來專心提高C++的水平,可以選擇《 C++編程思想 》,然後再看《 Effective C++中文版 2nd Edition 》和《 More Effective C++中文版 》,這兩本書介紹了高效使用C++的寶貴經驗,語言很幽默。至此,你已經可以自稱是C++程序員了,恭喜!
下面介紹幾本書,有興趣的朋友可以選讀。如果想高效地使用C++開發軟件,STL一定要學!《 C++標准程序庫—自修教程與參考手冊 》可以幫你學會STL的使用,而且開發時可以拿它做手冊,有了前面數據結構的基礎,學習STL的使用不會遇到什麼困難。如果你還想知道STL的設計思想及原理,不妨看看《 泛型編程與STL 》。有些朋友可能會問,C++的面向對象機制是怎麼實現的?《 深度探索C++對象模型 》給了你答案,它剖析了C++底層的實現。最後,如果想有一本C++大百科全書,那非《 C++程序設計語言(特別版) 》莫屬!這本書是C++之父Bjarne Stroustrup的大作,算是書中權威。
再提高:
到現在為止,你已經熟練掌握C++語言了,現在需要提高的就是設計思想,面向對象(OO)的最大特點是把我們的注意力從系統的執行體系結構轉移到概念體系結構,因此利用OO開發大型系統會更輕松。但是經常可以看到人們拿著C++用面向過程的思想解決問題,缺乏的就是面向對象的設計思想,也難怪,在這裡之前看的書都沒有教你怎樣用面向對象的方法開發系統,頂多介紹了面向對象是什麼,看了這麼多書難免會先入為主,《C語言程序設計》(或者你看的第一本編程書)中的思路潛在的影響著我們。這條鴻溝就由《 設計模式--可復用面向對象軟件的基礎 》來補救吧!所謂模式就是前人總結出來的、經過千錘百煉的一種系統結構,設計模式展示了23個經典的模式,通過學習、理解,你可以看到什麼是真正的面向對象。
看了《 設計模式--可復用面向對象軟件的基礎 》後,有時間不妨看看《 重構--改善既有代碼的設計(中文版) 》,學了面向對象的設計思想後看它,可以站在一定高度重新審視一下自己的C++編程水平。
結束語:
在學習編程的過程中一定要注意多實踐!學習時到專業論壇同大家討論是個不錯的辦法,你會找到許多熱心的朋友與您一起學習,能通過學習編程交些朋友不是更好嗎?最後,希望您能成為優秀的程序設計師,為中國軟件的發展貢獻一份力量!