一些同學問我,如何學好c++,我沒有別的辦法給你們,唯一的辦法就是讀書,讀大量的書,就可以解決。要把c++作為日常語言,而不是一種程式語言,這樣就好辦了。有人又要問我,那麼我應該讀什麼書才好?沒有時間怎麼辦?我只能對你們說,沒時間的話,就別學c++了,做你們喜歡做的事。生活中沒有c++,也同樣美好。
如果你準備學,一定要學好,那麼我開個書單,應該問題不是甚大。首先肯定要讀一讀bjarne stroustrup的the design and evolution of c++,了解一下這個語言的歷史。接下來就可以看別的書了,但要不停地回頭看這本書,看到你不斷地學到的新技術是怎麼樣一點點地被接納到這個語言中去的。
第一本書因人而異,基礎好一些的,可以看stanley b. lippman的c++ primer,這本書非常地巨大,你打星號的部分可以不要看。基礎不太好的,可以看stanley b.lippman的essential c++,這本書份量要輕得多,不過四個c++的范型都講了,而且講得非常清楚。
第二本應該停止技術層面的東西,靜下心來看看pike和kernighan的the practiceof programming,好好地整理一下,在程式設計中應該有哪些注意的事項。這本非常薄的booklet,可以說是程式設計師必讀的指南。
第三本書,就應該是bruce eckel寫的、候捷譯的thinking in c++,這本書每過半年我就要重讀一遍。可以說每一章都是寫得發人深省的,這本書讓我感覺到了技術運用的非常高的境界,但是語言非常平實,只要認真地讀,即使基礎不行,也一定可以懂。我在教課的時候,就是用這本書(面對的學生是零基礎)。
要更上一層的話,就要慢一步,先要把握c++設計習慣的良好。這是scottmeyers的effective c++和more effective c++帶給我們的無盡收益。我moreeffective c++買不起,只好花了10塊錢影印裝訂了一本"線裝本",看起來像葵花寶典(;-))。這兩本書是真正的經典,作者對c++的純熟,使得語言的風格讀起來簡直是如飴甘甜,就像他站在對面在講課。我手中有這兩本書的原版cd,如果有興趣,可以發e-mail到[email protected]或在飲水思源投條兒給gaobo索要,只要您提供光碟我就給免費燒。如果你已經深刻地理解了effective c++和more effectivec++,那你可以發現,你在眾人中已經是雞群之鶴。可以指導專案運作了,可以編寫一切你想做的程式了,可以指出別人看起來不錯的**的大小問題了。如果你能一眼看出有人的**是對應於"條款27"或"條款m6",那你可真是讓本人刮目了。
的細節,以及記憶體分配的細節,呵呵,這些都知道了,我還怕什麼呢?最近得到了另一cfront實現者、c++標準委員會koenig的 c++沉思錄,看起來非常不錯,這裡也推薦給大家,但我也沒看完,亦無發言權。
最後最後,你們,未來的c++理論家們,可要記住,bjarne stroustrup的the c++ programming language無論如何也應該讀個四五遍!這是一切c++的書本的源泉。
如果還覺得不夠,就向c++標準委員會訂購一本c++標準。
一切中國大陸作者的書,一概不要看(包括我的)。一切vc++或講特定的編譯器的書,一概不要看。如果需要補c語言的課,買一本非常小的k&r的the cprogramming language足矣,其它的書一概不要看。不要先學c,再學c++,而要直接學c++。你不是先學古文,再學白話的,對不對?所以相信我,直接來更容易。
以上文字,皆為原創,本人願意為每個字負責。
第二篇好久未來c板了,原因這段時間一直在研究兩本書,看得自己不敢多說一句話。
1、《effective stl》
訂購:出版社:中國電力出版社
一開始欺負這本書比較薄,想快點看完,但不久就發現自己已經翻不動了。直到看完最後乙個字,才發現乙個基本的事實:薄的不是這本書,而是自己的見識。
有關stl的書也讀了不少,正如讀《effective c++》以前,有關c++的書也讀了不少。meyers的書總是給人一種脫胎換骨的提公升感覺,他總能在大家以為老生常談的地方挖出想不到的新意,並指出一些一般人習以為常的東西其實存在種種危機,或是在一些看來完全等價的選擇中,為特定的場合選擇最有效的(mosteffective)那一種。而且他的切入口總是讓人看得懂的(不像stroustrup的書,第一句話就要琢磨半天),但是他總是會選擇幾個拓展點,並把它們分析得淋漓盡致,這時候就需要一段**一段**甚至是語句粒度地閱讀了——當然,最後總是看得懂,這和讀者的閱讀程度總是正比,這會給人極大的成就感。可以說,在stl實踐的書籍,無書可出其右(當然在stl實作方面,我還是要向大家推薦侯捷的《stl原始碼剖析》)。
讀完這本書後,和pascal就產生明顯的距離感了。這裡我仍然要說:請熱愛delphi!我還是更願意寫「var s:set of char;」而不是「set , allocator> s」,;-)。
2、《modern c++ design》
訂購(中文):
訂購(影印):
譯者:侯捷、於春景
出版社:華中科技大學出版社(中文)
中國電力出版社(影印)
讀完這本書的第一頁,我就知道自己放不下它了,但我也知道,我的苦難經歷又要多上一筆了。用c++實作設計模式,已經是骨灰級的難度,但這本書明顯還在講乙個template的物件模型的問題,這在我讀《inside the c++ object model》時是屢攻不下的難點。不過,出乎意料的是這本書居然使我具有一些概念了,而且動手寫
出了乙個smartpointer。
這本書我還遠不能說我讀懂了,但是確乎是讀完了。如果你還沒有讀過物件模型和設計模式的書,我認為需要讀一讀。否則,直接看這本書根本就是受罪。最近,有一些朋友也注意到設計模式的重要性了,可能從明年起我在《電腦報》上要發表一些文章,屆時請朋友們指教吧。
另外就是effective c++點評繼續寫,我現在覺得更惶恐,但是信心也更足了。
如何學好C語言
我現在是一名計算機專業的大三學生,從大一剛進大學校園,我的c語言老師就告訴我們,我們在大學注定要和程式設計糾纏四年,我們的設定就是程式設計師,當然畢業後不選擇本專業就另當別論了。我們學的第一門電腦語言就是c語言,我在大學之前完全不知道這個專業會學這些電腦語言,所以這對我來說就是個全新的領域。剛開始學...
新手如何學好C語言?
作為一名資深碼農,在軟體行業也拼搏了十多年,這裡跟想學習c語言的萌新童鞋分享下我的個人學習心得!在大學時代,我們大二才開始學習c語言 起步有點晚啊 第一次看到那本黃黃的譚浩強老師的 c語言教程 哈哈哈,就是這本了,滿滿的回憶啊!開學拿到這本書後,心情很激動,因為以前總是羨慕那種黑客,好像很牛的樣子,...
如何學好VC
這個問題很多朋友都問過我,當然流汗是必須的,但同時如果按照某種思路進行有計畫的學習就會起到更好的效果。萬事開頭難,為了幫助朋友們更快的掌握vc開發,下面我將自己的一點體會講一下 1 需要有好的c c 基礎。正所謂 磨刀不誤砍柴工 最開始接觸vc時不要急於開始windows程式開發,而是應該進行一些字...