Posted on 2007-10-29 19:30
海邊沫沫 閱讀(5152)
評(píng)論(39) 編輯 收藏 引用 所屬分類:
高起點(diǎn)C++學(xué)習(xí)之路
最開(kāi)始學(xué)習(xí)C++,是還在學(xué)校讀書(shū)的時(shí)候,教材是清華大學(xué)出版社的白皮書(shū),用的工具是Visual C++ 6.0。那時(shí),我連一臺(tái)自己的電腦都沒(méi)有,每天都要到圖書(shū)館去搶位子。直到畢業(yè)參加工作后,才有了自己的PC,然而,C++卻用得很少了。
沒(méi)畢業(yè)之前,以為C++語(yǔ)法加上MFC就是全部,連STL是什么都不知道。工作后,隨著見(jiàn)識(shí)的增長(zhǎng),知道了Unix/Linux,知道了開(kāi)源軟件,知道了X Window,知道了Qt和wxWidgets,也知道了boost和ACE,知道了Effective C++和Imperfective C++。我對(duì)C++一直不能忘情,雖然日常工作使用的是Java,但我卻一直關(guān)注著C++。凡是討論C++的文章,無(wú)論是褒獎(jiǎng)還是貶低,我都看得津津有味。編譯器我也是從Visual C++ 6.0關(guān)注到Visual Studio 2005,從GCC 3.3關(guān)注到GCC 4.2。硬件也是從單核關(guān)注到多核,從32位關(guān)注到64位?,F(xiàn)在,我決定暫時(shí)放下Java,重拾C++,付諸系統(tǒng)的學(xué)習(xí)并加以實(shí)踐。以我目前的見(jiàn)識(shí),這可以算是高起點(diǎn)C++學(xué)習(xí)之路了。
之所以說(shuō)是高起點(diǎn),我認(rèn)為可從以下方面闡述:
1、硬件的高規(guī)格,目前的CPU已經(jīng)全面從32位上升到了64位,從單核上升到了多核。因此,我必須更加注重64位編程,更加注重并發(fā)程序設(shè)計(jì);
2、操作系統(tǒng)的高規(guī)格,目前新版本的Linux一個(gè)接著一個(gè),每一個(gè)都提供了越來(lái)越優(yōu)越的內(nèi)核和越來(lái)越漂亮的桌面,讓人目不暇接;
3、框架的多元化,目前已不僅僅只是MFC的天下,Qt、wxWidgets,每一個(gè)都比MFC設(shè)計(jì)得要更好,STL、Boost這些庫(kù)也必須得花苦功去學(xué)。
4、C++ 0x標(biāo)準(zhǔn)就要出臺(tái)了,所以更加需要把目前的C++學(xué)好用好,不僅要知道C++之所能,更要知道C++之所不能,要和其他的更多的優(yōu)秀語(yǔ)言進(jìn)行比較以便知道什么樣的語(yǔ)法特色既簡(jiǎn)潔優(yōu)美又不失效率,這樣才能理解C++ 0x設(shè)計(jì)小組的苦心孤詣。
好了,不說(shuō)了,C++ 0x標(biāo)準(zhǔn)的出臺(tái)還有那么幾年,而符合標(biāo)準(zhǔn)的編譯器誕生還要再遲那么幾年。在這幾年的時(shí)間里,我得抓緊學(xué)習(xí),趕快把自己鍛煉成一個(gè)C++高手。
Feedback
弱弱的問(wèn)一個(gè)問(wèn)題。X windows 是什么東東哦?
你說(shuō)的都是C++的精華,贊一個(gè)!
汗……夢(mèng)在天涯tx……開(kāi)始懷疑你的……呵呵。
X Windows是Linux/Unix系統(tǒng)下的圖形界面系統(tǒng)
可惜,C++已經(jīng)風(fēng)光不再了
C++的語(yǔ)法……感覺(jué)實(shí)在和優(yōu)美搭不上邊
無(wú)所謂風(fēng)光不風(fēng)光,好用/滿足自己需要就行了
和樓主情況差不多,問(wèn)個(gè)問(wèn)題:wxWidgets倒沒(méi)學(xué)過(guò),請(qǐng)問(wèn)和Qt相比如何?
我大學(xué)還沒(méi)畢業(yè),不錯(cuò)你說(shuō)的我都聽(tīng)過(guò)了。
呵呵,電腦早點(diǎn)有就是好
ACE其實(shí)還有ICE呵呵
smartwin也不錯(cuò)的瓦。呵呵
做了點(diǎn)C++又玩.NET
現(xiàn)在又回到C++
C++還是王道...
雖然一直用的別的語(yǔ)言,但我從學(xué)習(xí)C++的過(guò)程中得到太多東西,所以對(duì)C++就有一種特殊的感情。
樓主情況和我差不多!
但我覺(jué)得,我要是學(xué)習(xí)C++的話,就會(huì)選擇COM來(lái)學(xué)習(xí)。
COM的設(shè)計(jì)還是很好的,很優(yōu)美!
純粹的C++不怎么樣!語(yǔ)法太多,太不規(guī)范,容易出問(wèn)題!
COM面向接口編程,能夠顯出面向?qū)ο蟮谋举|(zhì)。雖然不能在Unix上運(yùn)行。但是,我只用Windows!Unix上編寫(xiě)C++程序能夠賺錢嗎?有市場(chǎng)嗎?
真要在Linux上寫(xiě)程序,我也寧可寫(xiě)Java程序!
我寫(xiě)了COM程序以后,就用Java的JNI來(lái)調(diào)他們!
恩,大學(xué)里學(xué)過(guò)C++,盡管現(xiàn)在是用C#,JAVA,但還是對(duì)c++,VC,情有獨(dú)鐘,對(duì)偏向于硬件編程情有獨(dú)鐘,感覺(jué)這些都恨奇妙,有一段時(shí)間甚至在研究匯編程序。
感覺(jué)語(yǔ)言是其次~真正的是要懂得windows內(nèi)核,懂得操作系統(tǒng),懂得可執(zhí)行文件格式,懂得控件是如何封裝如何運(yùn)作的,懂得COM是怎么以回事就好了。
細(xì)節(jié)方面用哪種語(yǔ)言是其次的。
嗯,受教!阿睿說(shuō)了,這學(xué)期把C++學(xué)精...
@良少
關(guān)于Unix上的C++。。。你真幽默。你好好見(jiàn)識(shí)一下Unix和它上面的軟件是怎么賣的。還有,你知道gnu的一個(gè)全寫(xiě)嗎?GNU's Not Unix。為什么Not?去找找看吧。
還有,不要把Unix和Linux混為一談,盡管二者都是C社區(qū)的人搞得東東。
Minix說(shuō)得對(duì),不是新技術(shù)就是高起點(diǎn),否則的話難道C#和Java不比C++起點(diǎn)高嗎?難道C++不比ASM起點(diǎn)高嗎?
我進(jìn)來(lái)只是支持一下樓主~~~
另外寒一下 良少
"純粹的C++不怎么樣!語(yǔ)法太多,太不規(guī)范,容易出問(wèn)題!
COM面向接口編程,能夠顯出面向?qū)ο蟮谋举|(zhì)。 "
這樣的言論不得不寒
我可沒(méi)有說(shuō)新技術(shù)就是高起點(diǎn)哦,是不是高起點(diǎn)主要還是看個(gè)人的見(jiàn)識(shí)是不是增長(zhǎng)了?,F(xiàn)在的我比讀書(shū)時(shí)的我,那不知是高了多少了,不管使用的是不是C++語(yǔ)言。
新技術(shù)有時(shí)候也會(huì)帶來(lái)挑戰(zhàn),如64位、多核、硬件虛擬化技術(shù),我們不得不去面對(duì)。
對(duì)于COM,難道我不懂嗎?不是我吹牛,Windows下的那套在下可精得很啦,MFC、ATL、COM+以及Windows下的多線程和網(wǎng)絡(luò)編程本人都曾下過(guò)苦功,只不過(guò)現(xiàn)在興趣已經(jīng)遠(yuǎn)遠(yuǎn)超過(guò)Windows了。雖然我的文中不斷出現(xiàn)Linux/Unix字樣,也并不代表著只局限于Linux/Unix系統(tǒng)。我關(guān)注的,是更具通用性的東西。
高手們都知道,GNU和開(kāi)源社區(qū)的東西,那都是可以跨越很多個(gè)平臺(tái)的!
# re: 高起點(diǎn)C++學(xué)習(xí)之路[未登錄](méi) 回復(fù) 更多評(píng)論
2007-11-01 18:28 by
頂禮膜拜!
空明流轉(zhuǎn)同學(xué)太逗了,GNU's Not Unix。為什么 NOT,估計(jì)是找不到的
# re: 高起點(diǎn)C++學(xué)習(xí)之路[未登錄](méi) 回復(fù) 更多評(píng)論
2007-11-01 22:17 by
理論上來(lái)說(shuō),精通MS ATL MFC com/com+,我不得不說(shuō)你說(shuō)的高起點(diǎn)是
不折不扣的,另外我對(duì)你精通以上的技術(shù)而精通C++有些懷疑。呵呵,沒(méi)有什么別的意思,但我了解精通的含義。
# re: 高起點(diǎn)C++學(xué)習(xí)之路[未登錄](méi) 回復(fù) 更多評(píng)論
2007-11-01 22:20 by
MODIFY:
另外我對(duì)你精通以上的技術(shù)而<add>不</add>精通C++有些懷疑.
呵呵,每個(gè)人對(duì)“精通”的解釋都是不一樣的,所以這樣的現(xiàn)象也不奇怪了。
我說(shuō)過(guò)我精通C++嗎?我的目標(biāo)是要把自己鍛煉成一個(gè)C++高手。
也不要認(rèn)為我對(duì)“精通”有一個(gè)很“低格調(diào)”的理解,混跡C++世界的高手們都是不敢隨便說(shuō)自己精通的。C++是這樣一個(gè)東西,你越學(xué)得多,越是覺(jué)得自己不夠,越是想往里面鉆研。C++太有吸引力了。
但Windows下那一套很顯然不具有這樣的特質(zhì),搞著搞著就會(huì)覺(jué)得心煩,因此,對(duì)這些技術(shù)都下過(guò)苦功,能夠在自己的項(xiàng)目中熟練應(yīng)用這些技術(shù),就隨便說(shuō)個(gè)“精通”了;但也并不是全都了如指掌了,往上看要能把握整個(gè)軟件系統(tǒng)的架構(gòu),往下看要能明白每個(gè)組件的封裝細(xì)節(jié),那在下確實(shí)是大大的不足的。
@<a href=
http://minidx.com>minidxer</a>不是我逗,這可是GNU社區(qū)的一個(gè)提法,呵呵,我上次記得在哪里看到過(guò)有詳細(xì)的將這個(gè)的典故的。
http://vip.6to23.com/huanggeyang/Dnzl/Linux/Gnu/GNU1.htm這個(gè)帖子是GNU宣言。為什么是Not Unix?因?yàn)閁nix(泛指)是商業(yè)系統(tǒng)。無(wú)論是大名鼎鼎的MAC OS,還是Solaris,還是AIX,它們都是Unix。它們也都是賣錢的。
中文真是博大精通阿~確認(rèn)了幾遍,發(fā)現(xiàn)博主原文是"關(guān)注"C++,回復(fù)中是"精得很",的確沒(méi)有說(shuō)過(guò)精通~~~~
另外發(fā)現(xiàn)一個(gè)問(wèn)題哈,"高手們都知道,GNU和開(kāi)源社區(qū)的東西,那都是可以跨越很多個(gè)平臺(tái)的! "
是不是可以說(shuō):
1,知道啥啥啥跨越很多個(gè)平臺(tái)的,就是高手?
2,跨越很多個(gè)平臺(tái)的就是好東西?
呵呵,成立的話那以后我就開(kāi)始說(shuō)自己是高手了……
另外,GNU的解釋是,GNU's Not Unix-->(GNU's Not Unix)'s Not Unix-->((GNU's Not Unix)'s Not Unix)'s Not Unix…… 呵呵,明白了嗎?
<a href=http://minidx.com>minidxer</a>
不好意思,有很多東西讓閣下誤解了。
我的第一個(gè)回帖,同時(shí)對(duì)多個(gè)人的言論進(jìn)行了辯解,即辯解了不是新東西都是高起點(diǎn),又辯解了不要只局限于Windows操作系統(tǒng),當(dāng)然,也不要局限于Unix或者Linux系統(tǒng)。等等。
讓閣下總認(rèn)為我在標(biāo)榜自己是高手,看來(lái)是我回帖時(shí)太懶惹得禍了。
“高手們都知道,GNU和開(kāi)源社區(qū)的東西,都是可以跨越很多平臺(tái)的”,這句話只是為了進(jìn)一步說(shuō)明不要局限于Windows,不要局限于COM,Windows下有COM這樣的好東西,開(kāi)源社區(qū)肯定也有好東西和它對(duì)應(yīng),而且開(kāi)源社區(qū)的好東西,同樣也可以運(yùn)行于Windows。
至于閣下推論的知道啥啥啥就是高手的言論,那不是我的本意。
“不僅要知道C++之所能,更要知道C++之所不能,要和其他的更多的優(yōu)秀語(yǔ)言進(jìn)行比較以便知道什么樣的語(yǔ)法特色既簡(jiǎn)潔優(yōu)美又不失效率,這樣才能理解C++ 0X設(shè)計(jì)小組的苦心孤詣”——這句說(shuō)得好
希望你能夠搭上C++ 0X的航天飛機(jī).........
C++很強(qiáng)大,但是現(xiàn)在的人已經(jīng)不再在意標(biāo)準(zhǔn)C++了。。
頂啦·
還在學(xué)習(xí)C++ 受教??!
哈哈
你還好,學(xué)C++,我覺(jué)得我學(xué)好C就OK了.現(xiàn)在正在回嚼C,還是感覺(jué)C好,比較簡(jiǎn)潔.
C++學(xué)不懂,我腦袋不夠.
看了lz的博文,看來(lái)真的要好好學(xué)習(xí)STL啊,不過(guò)STL畢竟還是有起局限性,在實(shí)際中還是要構(gòu)建自己的數(shù)據(jù)結(jié)構(gòu)。
是X WINDOW而不是X WINDOWS,是Linux下的圖形化界面@夢(mèng)在天涯
樓上的不要噴樓主了,樓主的文章我大部分都看了,還是很牛的