学习知识[置顶] C++学习方式方法
查了好多資料,發(fā)明還是不全,干脆自己整理吧,至少保證在我的做法正確的,以免誤導(dǎo)讀者,也是給自己做個(gè)記錄吧!
????很多人認(rèn)為C++牛B,學(xué)好了可以無(wú)敵于天下,我只想說(shuō):別天真了,沒(méi)有一種說(shuō)法,學(xué)習(xí)好一種語(yǔ)言就就可以笑傲江湖了,如果這樣,為什么大家都不跑來(lái)學(xué)習(xí)C++呢。C++只是一個(gè)龐雜一點(diǎn)的語(yǔ)言,請(qǐng)大家別神話(huà)它。
????學(xué)習(xí)C++,為什么有很多C++大牛,有各自不同的學(xué)習(xí)方式,這個(gè)人這么學(xué),代碼這么寫(xiě),那個(gè)人那么學(xué),代碼那樣寫(xiě),到底誰(shuí)的正確的?我告訴你:沒(méi)有誰(shuí)對(duì)誰(shuí)錯(cuò),因?yàn)樗麄兊娜蝿?wù)、學(xué)習(xí)、方向、環(huán)境培養(yǎng)了他們的學(xué)習(xí)方式。
????很多剛出道的,慕名來(lái)學(xué)C++,但我想說(shuō)一句,不要為了那么一點(diǎn)點(diǎn)興趣,就跑來(lái)學(xué)C++,不然到頭來(lái)只會(huì)糟蹋你的時(shí)間,還會(huì)讓你痛苦,你若只專(zhuān)研了一孔之見(jiàn),你再回去用其它語(yǔ)言來(lái)寫(xiě)程序,你會(huì)發(fā)明,不太會(huì)寫(xiě)了,寫(xiě)的不酣暢不順手了。你本來(lái)建立在上層的一整套知識(shí)體系,被這個(gè)銜接上下層的C++語(yǔ)言打亂了,讓你如鯁在喉,幾個(gè)月都不舒暢。
????所以假如你想學(xué)C++,請(qǐng)拿出你的偉大的毅力和精神來(lái)學(xué),不做好這類(lèi)預(yù)備,不提議學(xué)習(xí)并精通C++。
????這里只說(shuō)C++,不涉及操作系統(tǒng)、計(jì)算機(jī)原理、網(wǎng)絡(luò)通信、加密解密等其它計(jì)算機(jī)學(xué)科的知識(shí),雖然他們是相輔相成的,但是我盡量不涉及這些知識(shí)。當(dāng)你學(xué)完之后,你或許可以重新學(xué)一遍我上面所提的一些學(xué)科知識(shí)。當(dāng)然,你不須要太過(guò)深入,把你大學(xué)里面的學(xué)會(huì)了懂得了就可以了。
????那么下面重點(diǎn)說(shuō)說(shuō),如何學(xué)習(xí)C++了。
????當(dāng)然首先無(wú)外乎重要的一點(diǎn),買(mǎi)一本或者從哪里搞一本C++語(yǔ)法方面的書(shū),從頭到尾看一遍,看的過(guò)程,多敲樣例代碼,書(shū)后習(xí)題一定要做,詳細(xì)重點(diǎn)看那些了,我提議,看到類(lèi)那里,把繼承看完,全部弄懂基本就可以了。(一定要多敲代碼,多動(dòng)手,一定要弄懂指針,不懂的話(huà)后面學(xué)習(xí)讓你如墜云里霧里,所以指針一定要直到弄懂為止)搞完之后,網(wǎng)上下載幾份C++試卷,多得很,就不給出鏈接了,如果感覺(jué)省力實(shí)現(xiàn)四五套試卷,那么下面可以進(jìn)行下一步了。
????學(xué)習(xí)完當(dāng)前,你的C++基本功底差不多了,那么如何強(qiáng)固和提高你的基本功了,這個(gè)時(shí)候,你要重點(diǎn)專(zhuān)研C++的多態(tài),虛函數(shù)、虛基類(lèi)等一些饒人令人輕易忘記又輕易搞混的東西,這些東西,你幾個(gè)月不用,基本上就忘的差不多了。但是為什么搞懂還這么重要了,因?yàn)楹髞?lái)你須要學(xué)的時(shí)候,或者你看到其他須要這些基礎(chǔ)知識(shí)的時(shí)候,你會(huì)比別人更輕易來(lái)學(xué)習(xí)這些東西。
????然后,你須要學(xué)習(xí)模板的知識(shí),模板函數(shù)、模板類(lèi),為下一個(gè)階段學(xué)習(xí)做預(yù)備。
????
????學(xué)習(xí)完上面之后,這個(gè)時(shí)候,你要開(kāi)始學(xué)習(xí)STL,這個(gè)可以算是進(jìn)階了。當(dāng)然,學(xué)習(xí)STL之前,你必須要有一點(diǎn)點(diǎn)數(shù)據(jù)結(jié)構(gòu)的知識(shí),假設(shè)你大學(xué)測(cè)驗(yàn)數(shù)據(jù)結(jié)構(gòu)測(cè)驗(yàn)不是抄的過(guò)了,你就可以開(kāi)始學(xué)習(xí)STL了,你須要弄懂vector、queue、deque、priority-queue、list、stack、map、set、multiset、multimap等,須要了解迭代器、算法、容器的觀(guān)點(diǎn)以及應(yīng)用方法。學(xué)習(xí)到什么水平就可以了呢,這個(gè)不好說(shuō),得看大家,自己把握。
每日一道理古人云:“海納百川,有容乃大。”人世間,不可能沒(méi)有矛盾和爭(zhēng)吵,我們要以磊落的胸懷和寬容的微笑去面對(duì)它 。哈伯德也曾說(shuō)過(guò):“寬恕和受寬恕的難以言喻的快樂(lè),是連神明都會(huì)為之羨慕的極大樂(lè)事。”讓我們從寬容中享受快樂(lè),從諒解中體會(huì)幸福吧!
????然后,學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)吧,親,用C++實(shí)現(xiàn)你大學(xué)數(shù)據(jù)結(jié)構(gòu)課本上全部的知識(shí)點(diǎn)(棧、隊(duì)列、樹(shù)、圖、查找排序算法等),當(dāng)然,實(shí)現(xiàn)完之后,你須要將這些實(shí)現(xiàn)的代碼記錄下來(lái),以備當(dāng)前任務(wù)應(yīng)聘等不時(shí)之需。
????以上學(xué)完了,下一階段該怎么學(xué)了,這個(gè)階段很重要,是銜接理論與事實(shí)應(yīng)用的銜接點(diǎn),很多時(shí)候,C++如果不借助于其它方面的一些已經(jīng)寫(xiě)好的庫(kù),一些很簡(jiǎn)單的任務(wù)C++都實(shí)現(xiàn)不了,比如說(shuō)讓你寫(xiě)一個(gè)windows的窗口應(yīng)用程序,你用C++,就實(shí)現(xiàn)不了。因?yàn)镃++的標(biāo)準(zhǔn)庫(kù),沒(méi)有與GUI相干的東西,這個(gè)時(shí)候,我們須要借助于其他的一些庫(kù),比如,MFC,QT的庫(kù)等,在這一個(gè)階段,你須要學(xué)習(xí)如何應(yīng)用IDE平臺(tái)庫(kù)或者系統(tǒng)平臺(tái)的庫(kù),利用各種已經(jīng)寫(xiě)好了現(xiàn)成的庫(kù),你只須要調(diào)用,就可以實(shí)現(xiàn)非常壯大功能。這個(gè)時(shí)候,如果你挺聰慧的,你或許可以用C++來(lái)寫(xiě)一些小游戲了,比如俄羅斯方塊、貪食蛇等。
????平臺(tái)庫(kù)我們用完了,但我們不局限于IDE或者系統(tǒng)函數(shù)庫(kù)的調(diào)用與應(yīng)用,我們要應(yīng)用除此之外的其它第三方庫(kù),比如網(wǎng)絡(luò)游戲那超級(jí)酷的3D效果,這個(gè)時(shí)候,比如opencv、PCL、opengl、directX等,詳細(xì)怎么學(xué),看你的任務(wù)學(xué)習(xí)所需了。
????直到當(dāng)初,我們一直從語(yǔ)言層面上來(lái)學(xué)習(xí)C++,這一次,我們要從鳥(niǎo)瞰的角度來(lái)審視C++,我們要學(xué)習(xí)C++的開(kāi)辟模式,提議大家學(xué)習(xí)一下C++的開(kāi)辟方法,開(kāi)辟模式,二十幾種的設(shè)計(jì)模式。
????到了當(dāng)初為止,你須要溫故而知新,因?yàn)槟愫竺婧芏嗉?xì)節(jié)都忘了。你可以報(bào)考一門(mén)中級(jí)軟件工程師測(cè)驗(yàn),用來(lái)讓你的編程與全部學(xué)科的知識(shí)進(jìn)行有效的糅合,系統(tǒng)化的學(xué)習(xí)計(jì)算機(jī)知識(shí),讓你對(duì)C++的懂得和計(jì)算機(jī)的懂得相輔相成,齊頭并進(jìn)。
????學(xué)習(xí)完上面之后,C++我認(rèn)為你基本上算中上等水平了,可能很多的C++應(yīng)用的人都停留在這個(gè)水平。不出不測(cè),這個(gè)時(shí)候,你已經(jīng)學(xué)會(huì)用C++走路了,當(dāng)前的路,須要你自己走了,當(dāng)前的進(jìn)階,你須要選擇一個(gè)方向,比如通信、二維三維圖像、3D大型網(wǎng)絡(luò)游戲里面的某個(gè)重要的C++分支開(kāi)辟等(基本上是公司和你自己的定位來(lái)幫你選擇方向),這個(gè)時(shí)候,須要的,大多是算法、算法優(yōu)化、林林總總奇技淫巧的算法等,我們發(fā)明C++的學(xué)習(xí)方式,就是先廣度后深度。
????注:C++當(dāng)初是沒(méi)落的,我個(gè)人不太看好C++未來(lái)的開(kāi)展,不會(huì)像很多人說(shuō)的那樣王者返來(lái)。或許會(huì)在不溫不火中漸漸老去。底層,嵌入式,拼不過(guò)C,高層,拼不過(guò)java,C++的應(yīng)用,當(dāng)初主要會(huì)合在對(duì)C的封裝來(lái)構(gòu)建更加壯大和龐雜的應(yīng)用程序(系統(tǒng)軟件,比如網(wǎng)絡(luò)軟件、分布式的一些應(yīng)用),圖像處理行業(yè)、大型網(wǎng)游游戲行業(yè),工業(yè)上面也有一些應(yīng)用。但是,請(qǐng)注意,以上所說(shuō)的,未來(lái)都將可能會(huì)被其他語(yǔ)言越來(lái)越豐碩的庫(kù)來(lái)替代。但是其他語(yǔ)言的簡(jiǎn)練易用性,高效的編程,是C++無(wú)法比擬的。
????所以,我說(shuō),C++,沒(méi)落了,假如你是C++的愛(ài)好者,我提議為了當(dāng)前的生存,你可以再學(xué)習(xí)java、jsp等。
????謹(jǐn)以此文,獻(xiàn)給那些酷愛(ài)C++的人。
文章結(jié)束給大家分享下程序員的一些笑話(huà)語(yǔ)錄: 與女友分手兩月有余,精神萎靡,面帶菜色。家人介紹一女孩,昨日與其相親。女孩果然漂亮,一向吝嗇的我決定破例請(qǐng)她吃晚飯。
選了一個(gè)蠻貴的西餐廳,點(diǎn)了比較貴的菜。女孩眉開(kāi)眼笑,與我談得很投機(jī)。聊著聊著,她說(shuō):“我給你講個(gè)笑話(huà)吧。”“ok”
“一只螳螂要給一只雌蝴蝶介紹對(duì)象,見(jiàn)面時(shí)發(fā)現(xiàn)對(duì)方是只雄蜘蛛。見(jiàn)面后螳螂問(wèn)蝴蝶‘如何?’,‘他長(zhǎng)的太難看了’,‘別看人家長(zhǎng)的丑,人家還有網(wǎng)站呢’。”
“呵呵………”我笑。忽然她問(wèn):“你有網(wǎng)站嗎?”
總結(jié)
以上是生活随笔為你收集整理的学习知识[置顶] C++学习方式方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 在ssh项目中的中配置数据源c3p0
- 下一篇: rails3使用ActionMail发送