re: C++閱讀漸進(jìn)書目 任我行 2005-11-30 10:11
再貼:
推薦C++教程
1. <<The C++ Programming Language>> , Bjarne Stroustrup
這是一本每個人都應(yīng)該買但不一定要看的書,強(qiáng)烈建議初學(xué)者不要看這本書,否則可能會一頭霧水,失去信心,BS寫書本來就不怎么樣,他自己都說他的書有些晦澀難懂,但是買一本放在書柜里,有什么不清楚的地方查查高人如何解析還是有必要的。中文版是裘老師翻譯的,以裘老師的深厚功力,技術(shù)上大家大可放心,但語言流暢上我就不敢認(rèn)同了,況且這還是一本大書,如果要追求語言流暢的話,可能沒有兩3年是出不來的,而且國內(nèi)的出版社又那么急功近利,稿酬不高,做得那么好有必要嗎?
2. <<C++ Primer>> , lippman
lippman的地位自然不用猜疑,此書也被評為C++的最佳入門書籍,也是Lipman寫得最認(rèn)真的一本書,第3版在國內(nèi)98年就有了。全書可謂是C++大全,深度適當(dāng),比較適合初學(xué)者,或者想對C++和程序設(shè)計(jì)有大概了解的讀者, 但就是比較厚,這也只能怪C++的源遠(yuǎn)流長,總是在打園場,不斷增加新特性,讓我們這群讀者都不得不捧著這本大書品讀。中文版是潘老師翻譯的,文字通順,但缺乏味道,看著一本千來頁的書,而且前面一部分講的都是程序設(shè)計(jì)思想,容易令人產(chǎn)生困倦,也難怪很多人半道出家學(xué)java。
3. <<effective C++ >> Scott meyer 同下
4. <<more effective C++>> , meyer
這年本書乃是改善設(shè)計(jì)思維和設(shè)計(jì)思想的必讀書籍,書中每個item莫不是經(jīng)過千錘百煉之后得出。其中,effective比較淺顯易懂,每個item都比較短,而more設(shè)計(jì)思想更進(jìn)一層,有些item已經(jīng)多多少少有設(shè)計(jì)模式的味道。我看過的是繁體版,這兩本書候老師翻譯得不錯(我覺得是候老師翻譯得最好的兩本書,比較認(rèn)真),讀起來比較有味道。建議初學(xué)者在看完一本C++比較完整的書后直接拜讀此2書。
5. <<The C++ standard library>>
就是現(xiàn)在賣得比較熱的書,夢魘和候節(jié)翻譯的,翻譯得很好,語言很通順,技術(shù)上也很好,只是書中有些代碼我是調(diào)試不過,或許只能怪STL里面有幾個經(jīng)典錯誤,不知看這本書的讀者發(fā)現(xiàn)了沒有?我嚴(yán)重建議C++的初學(xué)者看這本書,先知道應(yīng)該怎么來用C++,怎么來充分利用標(biāo)準(zhǔn)庫,而不是一頭鉆入C++的龐大晦澀語法里面,先用標(biāo)準(zhǔn)庫才能養(yǎng)成良好的代碼編寫風(fēng)格,更可以提高自己的實(shí)作能力,否則你如果花上一年半載在C++的語言細(xì)節(jié)上,可能自己都生氣為什么還是寫不出好的程序出來,公欲善其事,必先利其器就是這個道理。
6. <<modern C++ design >> Andrei Alexandrescu
這是天才Andrei Alexandrescu的作品,很好的一本高階書,此書我只是瀏覽一下大概,沒有仔細(xì)看,有些地方看不懂,全書把C++和設(shè)計(jì)模式融為一體,向人展示了許多不平常的設(shè)計(jì)技巧與設(shè)計(jì)規(guī)范,令人折服。但有些難度,還望各位慎重。至于里面的技術(shù)實(shí)不實(shí)用,就要因人而異了。
7. <<C++ Template>> 據(jù)說書中展示了模板的精華之處
8. <<exceptional C++ 和more exceptional C++>>
Herb Sutter的書讀起來比較輕松,此2書可以作為effective與more effective的姐妹篇,寫作風(fēng)格有些如蘇格拉底的提問式教學(xué),但應(yīng)用得還不夠火候。書的內(nèi)容確實(shí)不錯,定位和effective差不多,但我個人而言還是更喜歡Meyer的書。More有中文版,有Lostmouse翻譯,質(zhì)量一般,翻譯給人的感覺比較倉促,很多地方都過于直譯,味道怪怪的。
9. <<essential C++>> lippman 很簡單的一本書,初學(xué)者如果覺得自己確實(shí)很菜可以先看這本書,你肯定能看懂,也是lippman的書,但英文版有些地方值得商榷,還是看候節(jié)的中文版吧,翻譯得還可以,就是臺灣味道太濃了些,有點(diǎn)喧賓奪主之嫌。如了門的讀者就沒必要看這本書了,看它還不如看lippman的inside the C++ object model呢。
10 . <<designing and coding reusable C++>> 關(guān)于重用和程序庫設(shè)計(jì)的一本書,是由AT&T的Ellis夫婦寫的,書寫得很好,充分考慮了設(shè)計(jì)可重用程序庫的方方面面,對于每個想設(shè)計(jì)程序庫和的讀者都應(yīng)該看這本書,中文版名是《設(shè)計(jì)和重用C++程序庫》,即將出版。
11. <<thinking in C++>> 我是覺得此書一般,并沒有外面吹的那么好,可以說是中等偏上吧,要看就要看英文版的,中文版的千萬別看,那個譯者太不負(fù)責(zé)了
12. <<Runmination on C++>> 據(jù)說人郵既要出版了,是由konnig夫婦寫的,如果你想知道cfront的歷史,還想清楚cfront的領(lǐng)導(dǎo)者,就找他們夫婦吧,那時,konig和BS是獨(dú)立的,而其它的人都是由konig夫人Barbara領(lǐng)導(dǎo)的,konig在C++中可算是number 2,屬于學(xué)術(shù)派的那種,實(shí)際上C++也是分派別的。 英文版的質(zhì)量肯定很好,有很多新的設(shè)計(jì)觀念,中文版還要期待,看看結(jié)果如何。
13. <<16Accelerated C++>> 也是koenig和Barbara夫婦寫的,據(jù)說很好,但我沒機(jī)會看,實(shí)在不敢評價。
14 <<C語言接口與實(shí)現(xiàn):創(chuàng)建可重用軟件的技術(shù)>>
你知道金庸對吧, 他的小說里把各種武功寫的出神入畫, 當(dāng)然那是胡吹八撤
的是吧,可是你知道嘛,這些武功真的存在哦,不信看看我練劍的經(jīng)過:
[[[ 本為杜撰, 絕無此事]]]
A 我想學(xué)習(xí)劍術(shù)
[[["如果你不想從事IT這一行業(yè)我看學(xué)學(xué)打字,上網(wǎng),聊天就算了,就算你有所成就,
也只不過是都得如何更有效的操縱機(jī)器,外面的世界多精彩!看看小說,和朋友閑聊
都比象程序員那樣整天坐著面對沒感情的機(jī)器好!想賺錢就去搞銷售,只要肯賣里,
一年下來搞個萬兒八千的不成問題!"
我開始猶豫了,學(xué)?不學(xué)?還是學(xué)吧, 不學(xué)也行吧...]]]
B 我的朋友說太極劍法更易于養(yǎng)生,但我還是我選擇了華山派劍法,因?yàn)楹苡忻?
[[[你在猶豫不決嘛?哦,如果你真的要干,那么先學(xué)會和機(jī)器說話,找門語言吧,
可好多人好像在搞BASIC 或JAVA,他們說效率高,"我行我素"不知道是優(yōu)點(diǎn)還是
缺點(diǎn),反正我選擇了C, 聽說這個很難學(xué).]]]
C 拜師不成, 每日只能借送水的機(jī)會學(xué)習(xí)基本的撥,擋,撩,刺,總算"會"用劍了
[[[跨進(jìn)IT好難,想考個好的院校偏偏落了榜,不過走進(jìn)大學(xué)了,總算老師管不
著了吧,所以到處"搜刮"C語言的資料,花錢上機(jī),功夫不復(fù)有心人, 總算學(xué)到了
點(diǎn)C的基本知識, 好像我會編程序了,自然心里美滋滋的! ]]]
D 剛剛學(xué)會點(diǎn)皮毛我就學(xué)會打架了,結(jié)果...唉, 被打是丟盔棄甲,手忙腳亂的連
劍也丟了! 怎么才能把劍拿穩(wěn)? 從此我開始研究各種套路,集"各家之所長" 好像
是進(jìn)步的捷徑吧!
[[[剛剛學(xué)會點(diǎn)語法就拿著三腳貓的功夫到處炫耀!"我會編程序,牛X吧!", 知道
<葉公好龍>的故事嘛? 好在我不姓葉要不肯定會"千古留名". 很快消息傳到了
我的一個老師那里,她把我叫去問我關(guān)于VC的基本操作知識,因?yàn)樗趯W(xué),結(jié)果我
本來是學(xué)TC的嘛,所以張口結(jié)舌,后來的事我就不提了! 回去后我就打算多學(xué)幾種
開發(fā)環(huán)境下的程序設(shè)計(jì),把什么VC.BC.Pro-C.等多種開發(fā)環(huán)境都熟悉了一下.呵呵,
你來問我啊?結(jié)果不會有人找你了! :( ]]]
E 有一天我碰到了一個高手, 他看到我手中拿著劍就讓我和他比試比試, 我真是
高興, 可是他偏偏不讓我用劍,他給了我把斧頭,讓我砍木樁,比試誰砍得深. 那個
斧頭好重,總算試著拿了,然后用盡全身力氣, 一下把木樁砍了可口!可那個人搖搖頭,
說 "你根本沒力氣,就算斧子以自身的重量掉到樁上也比你砍的深". 那個人
原來是個柴夫!
[[[上大學(xué)二年我去一家公司打工,本來是想跟別人學(xué)點(diǎn)東西的,但是大家一起
工作,不會有人閑著沒事偏偏來教我. 工作的第三天組長拿給我些代碼給我看,我
一看就傻了,用PASCAL 寫的,組長說讓我把那些函數(shù)改寫用C寫, 以前從來沒寫過
超過500行的代碼,可是我數(shù)了數(shù),那些代碼超過了2000行,我真的傻了,然后硬著頭
皮假裝看著, 坐在我旁邊的同時看出了我的問題,他很愿意解答我些問題.最后他告
訴我說,各種語言是相通的,程序設(shè)計(jì)的基本結(jié)構(gòu)相差不多,他讓我學(xué)好數(shù)據(jù)結(jié)構(gòu)和算
法和編譯原理等基本知識. 這個同事是搞硬件的,他那時候在測試自己做的顯卡!]]]
F 我真的不明白,為什么沒力氣? 我放下了手中劍, 開始從事正常的勞動,打水,砍柴...
不過從來沒有放下心里的劍, "到底什么是'正宗'?' 什么是'劍', 砍柴也可以練劍嘛?"
從此我開始鍛煉身體因?yàn)槲抑酪殑?先練氣,氣不足也許連砍柴的斧子都拿不起!
日復(fù)一日,年復(fù)一年,我?guī)缀跬浟宋疫€會些用劍的招數(shù).
[[[ 我辭了工作,回到學(xué)校開始學(xué)習(xí)計(jì)算機(jī)基本知識, 因?yàn)槲抑?本來C語言就
是來操縱計(jì)算機(jī)工作的,我連計(jì)算機(jī)是什么怎么工作的都不知道,何談編程? 一年來
我沒有寫一句代碼!]]]
G 數(shù)年來我練就了一身的力氣, 有一天我決定拿起劍來闖蕩江湖, 所謂不入江湖怎知
江湖.
[[[ 大學(xué)沒畢業(yè)我就到一家軟件公司做程序員, 我終于又寫代碼了,]]]
H 馭劍術(shù). 闖蕩江湖沒幾日我遇到一個高手, 可能是我的福氣吧! 他很年輕,不過
衣著和氣語不俗,我們約好月初一一比高下. 很快日子到了. 我們大戰(zhàn)
二十多個回合, 最后我還是輸給他三招, 不過我們總算有緣,因此無名山下結(jié)拜為兄弟
當(dāng)然免不了到小店去喝酒談劍. 原來他家是武學(xué)世家, 酒過三旬, 他交給我一本
<馭劍術(shù)> 作為見面禮然后我們相互道別了!
[[[ 這是北京的一家小公司, 我的一個同事和我相處的很好,當(dāng)然平時還要他
多多指點(diǎn). 一次他和我說:"我知道你寫過兩萬行以上代碼的程序,所以我才和你討
論一下,我有個毛病:寫代碼少于萬行的人我從來都不和他談?wù)摷夹g(shù),不過雖然你寫
的代碼多,基本功也不錯,但是你不能靈活運(yùn)用,所以你寫程序的效率太低,我這
里有很多C語言方面的經(jīng)驗(yàn),是我總結(jié)的,看看能不能對你有些幫助" 我十分高興!]]]
I 劍道. "學(xué)劍干什么?" 這個問題在我闖蕩江湖的時候越發(fā)模糊了, 除暴安良?
或是僅僅拿些賞錢呢? 一日在京城, 我在酒店碰到了一位鏢局的弟兄, 他看我一副
俠客的打扮就讓我到鏢局去干,他是那里的鏢頭,一個月二十兩紋銀還算好,我總算
安定下來了,平時除了押鏢我依然默默的做我的劍客!
[[[ 做小工好辛苦又不能轉(zhuǎn)政,所以我辭退了工組打算另謀高就, 恰好我的
一個朋友是一家稍大的公司的股東之一,因此他聽說我的事后就把我叫到他們公司
工作,除了每月薪水外,我還額外的拿到了些股份,呵呵,總算不錯了! 在那里的工
作也很辛苦,其實(shí)我是"打雜的", 和幾個同時專門從事技術(shù)研發(fā),公司讓干什么我
們就干什么. 在我看來學(xué)習(xí)語言就是為了拿來用.]]]
J 無劍.