怎樣更好的學(xué)習(xí)C++語言?
在學(xué)習(xí)C++應(yīng)該由易至難,循序漸進(jìn),之前往往有人說學(xué)習(xí)C++之前應(yīng)該學(xué)習(xí)C語言。事實(shí)上那不是必須的,只要你能了解C++的構(gòu)成和C++的一些語法,相信你會(huì)從中得到許多秘訣的。
既然編程的入門要求是編一些小程序解決小問題,那么就沒必要直接學(xué)習(xí)C++,我覺得循環(huán)、判斷、跳轉(zhuǎn)、指針才是最基本的編程思想,學(xué)通了這些對(duì)以后學(xué)習(xí)C++很有幫助。
我建議應(yīng)該先把C扎實(shí)地學(xué)好,不光要掌握C的語法,因?yàn)閷W(xué)習(xí)編程的最終目的是解決實(shí)際問題,所以還要適當(dāng)掌握把實(shí)際問題與編程聯(lián)系在一起的能力,我推薦《 C程序設(shè)計(jì)語言(第2版) 》,這本書是C語言之父寫的,不僅詳盡介紹了C的語法,還提供了很多實(shí)際的小問題作為實(shí)例,可以說看了這本書之后能為以后的編程學(xué)習(xí)打下一個(gè)扎實(shí)的基礎(chǔ)!
學(xué)了《 C程序設(shè)計(jì)語言(第2版) 》后可以開始學(xué)習(xí)C++,一開始沒必要鉆很深的大部頭書,《 Essential C++中文版 》非常適合初學(xué),一個(gè)禮拜就可以看完,看了它可以快速對(duì)C++的全貌有個(gè)了解,雖然不會(huì)馬上熟練掌握C++。
我們不能滿足于解決“百錢買百雞”,真正實(shí)現(xiàn)程序還有很多非功能上的問題,比如怎樣做才能使用更少的內(nèi)存?怎樣做才能更快?在熟悉一門語言后,一定要認(rèn)真學(xué)習(xí)的就是數(shù)據(jù)結(jié)構(gòu)!數(shù)據(jù)結(jié)構(gòu)保證了我們的程序能以高效的方式運(yùn)行。《 數(shù)據(jù)結(jié)構(gòu)算法與應(yīng)用C++語言描述 》是本好書,它提供了很多實(shí)際的例子,比如火車站調(diào)度、走迷宮,相比于“百錢買百雞”這種問題又提高了一個(gè)層次。
接下來專心提高C++的水平,可以選擇《 C++編程思想 》,然后再看《 Effective C++中文版 2nd Edition 》和《 More Effective C++中文版 》,這兩本書介紹了高效使用C++的寶貴經(jīng)驗(yàn),語言很幽默。至此,你已經(jīng)可以自稱是C++程序員了,恭喜!
下面介紹幾本書,有興趣的朋友可以選讀。如果想高效地使用C++開發(fā)軟件,STL一定要學(xué)!《 C++標(biāo)準(zhǔn)程序庫—自修教程與參考手冊(cè) 》可以幫你學(xué)會(huì)STL的使用,而且開發(fā)時(shí)可以拿它做手冊(cè),有了前面數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ),學(xué)習(xí)STL的使用不會(huì)遇到什么困難。
如果你還想知道STL的設(shè)計(jì)思想及原理,不妨看看《 泛型編程與STL 》。有些朋友可能會(huì)問,C++的面向?qū)ο髾C(jī)制是怎么實(shí)現(xiàn)的?《 深度探索C++對(duì)象模型 》給了你答案,它剖析了C++底層的實(shí)現(xiàn)。***,如果想有一本C++大百科全書,那非《 C++程序設(shè)計(jì)語言(特別版) 》莫屬!這本書是C++之父Bjarne Stroustrup的大作,算是書中權(quán)威。
到現(xiàn)在為止,你已經(jīng)熟練學(xué)習(xí)C++語言了,現(xiàn)在需要提高的就是設(shè)計(jì)思想,面向?qū)ο螅∣O)的***特點(diǎn)是把我們的注意力從系統(tǒng)的執(zhí)行體系結(jié)構(gòu)轉(zhuǎn)移到概念體系結(jié)構(gòu),因此利用OO開發(fā)大型系統(tǒng)會(huì)更輕松。
但是經(jīng)??梢钥吹饺藗兡弥?FONT size=+0>C++用面向過程的思想解決問題,缺乏的就是面向?qū)ο蟮脑O(shè)計(jì)思想,也難怪,在這里之前看的書都沒有教你怎樣用面向?qū)ο蟮姆椒ㄩ_發(fā)系統(tǒng),頂多介紹了面向?qū)ο笫鞘裁?,看了這么多書難免會(huì)先入為主。
《C語言程序設(shè)計(jì)》(或者你看的***本編程書)中的思路潛在的影響著我們。這條鴻溝就由《 設(shè)計(jì)模式--可復(fù)用面向?qū)ο筌浖幕A(chǔ) 》來補(bǔ)救吧!所謂模式就是前人總結(jié)出來的、經(jīng)過千錘百煉的一種系統(tǒng)結(jié)構(gòu),設(shè)計(jì)模式展示了23個(gè)經(jīng)典的模式,通過學(xué)習(xí)、理解,你可以看到什么是真正的面向?qū)ο蟆?/P>
看了《 設(shè)計(jì)模式--可復(fù)用面向?qū)ο筌浖幕A(chǔ) 》后,有時(shí)間不妨看看《 重構(gòu)--改善既有代碼的設(shè)計(jì)(中文版) 》,學(xué)了面向?qū)ο蟮脑O(shè)計(jì)思想后看它,可以站在一定高度重新審視一下自己的C++編程水平。
在學(xué)習(xí)C++編程的過程中一定要注意多實(shí)踐!學(xué)習(xí)時(shí)到專業(yè)論壇同大家討論是個(gè)不錯(cuò)的辦法,你會(huì)找到許多熱心的朋友與您一起學(xué)習(xí),能通過學(xué)習(xí)編程交些朋友不是更好嗎?***,希望您能成為優(yōu)秀的程序設(shè)計(jì)師,為中國(guó)軟件的發(fā)展貢獻(xiàn)一份力量 。
【編輯推薦】