Re: [轉錄] 簡介三本 C++ 的書
※ 本文轉錄自 [Programming] 看板
發信人: tinlans.bbs@whshs.cs.nccu.edu.tw (汀) 看板: programming
標 題: Re: C++書介紹
發信站: 政大狂狷年少 (2005/03/09 Wed 14:31:55)
※ 引述《weihan.bbs@bbs.math.ncu.edu.tw (天天天藍)》之銘言:
> ※ 引述《ooa.bbs@bbs.ntu.edu.tw (蒙ꤠ蒙ꤠ布丁甜)》之銘言:
> > C++ Primer 中譯本
> > 侯俊傑
> 這本書若是給初級者學 是害了他
> 這本書在我看來不能當教科書 僅能當成參考書 也就是如果你有
> 哪個地方不太清楚的 可以查索引 直接到相關的地方看
> 不過如果是這樣 還不如直接拿 C++ 之父所寫的書當參考書
> 這本書在我看來僅能擺在書櫃上當藏書使用 :-)
其實我覺得還好,
我是 C++ Standard 制訂出來以後 C++ Primer 出中譯本才開始學 C++,
所以我第一本 C++ 的書就是 C++ Primer,
不過我也承認當時我已經有 C 的完整基礎和一般性的 language 共通概念,
所以要看對初學者的定義是怎樣下的。
如果所謂初學者是連程式設計都沒碰過,
那無論 C++ Primer 還是 The C++ Programming Language 都不好,
Essential C++ 也不好,
老實說我還沒看過什麼 C++ 的書是真正適合初學者又不會讓他誤入歧途的,
所以我的結論其實是 C++ 這個語言本身就不適合沒程式設計經驗的人學,
我當然知道這個論點很特立獨行,
但這是我翻閱數十本 C++ 書籍,
加上長期實作,
以及閱讀新手、老手撰寫的 C++ 程式碼,
所下的結論。
C++ Primer 的作者當初取 Primer 之意本身就是希望能帶人入門,
而後他因為工作需求,接觸到對他而言很陌生的 perl 時有感而發,
轉而꜠定 C++ Primer 對初學者的適用性並出一本精簡版,也就是 EC++,
但它的定位點也不像是作為「第一本程式設計書籍」而設計的,
而是「第一本 C++ 程式書籍」的角度來寫的,
這本書跟明顯在序言提出此點的 The C++ Programming Language 本質相同。
如果所謂初學者是有程式設計經驗但沒接觸 C++ 的,那麼...
我也曾經為了教 C++ 新手而特別買了一本 EC++ 來讀,
到最後我還是覺得這本講得太過精簡了,
而且 EC++ 讓新手讀뀠來的感覺其實跟重點式讀 C++ Primer 差不多,
看不懂的還是看不懂,看得懂的人大都只是懶得看 C++ Primer,
其實看 C++ Primer 還是都看得懂,只是懶而已,
這讓我發覺到其實不是 C++ Primer 不適合 C++ 新手,
而是很多 C++ 新手沒有耐性跟恆心去讀完它。
沒翻完 C++ Primer 或 The C++ Programming Language 的人,
有很多看不懂 C++ compiler 吐出來的 error message,
不清楚所謂的多載決議程序,不清楚什麼是候選函式,
也不清楚 template 引數推導程序,
寫到最後怪 C++ compiler 很爛或有 bug 的一大堆,
(結果不是他想要的,不然就是來個 ambiguous 什麼的)
要不就是講一句 C++ 程式很難除錯就不碰了。
如果真的要我講哪些書該給任何形式的新手讀,
我還是會選擇 The C++ Programming Language 或 C++ Primer,
因為我認為要學一個高階語言,
對於變數(variable)如何宣告(declare)、定義(define),
資料型別(data type)的名稱和可表示範圍,
認清何謂運算式(expression),何謂敘述(statement),
運算式可由哪些運算子(operator)搭配怎樣的運算元(operand)構成,
是學一個語言的基礎認知,而這兩本都花了很大的篇幅在講,
我覺得不管是哪種初學者花時間去看它都很值得,
理想上是還要能介紹多檔編譯的環境下要怎樣規劃程式,
這是 C++ Primer 不及 The C++ Programming Language 的地方,
所以要我二選一的話,我會挑 The C++ Programming Language。
另外就是很多人蠻ꤠ怪的,不喜歡看書的前言跟序,
C++ Primer 言明 Chapter 2 是新手可以跳過,
但是卻聽到一堆人說他看到 Chapter 2 就覺得這本書太難看不下去,
這點真的就是很糟糕,不依照作者的指引亂讀還怪書不好讀。
我實在不願意建議其它的書籍,
因為我看過很多書要不就是太舊要不就是亂教,
然後就會看到很多新手,
寫出會讓 C++ 爸爸看到會吐血的 code,
不然就是能讓 C++ 標準委員會的委員們公幹的 code,
我想熟 C++ 又看過各種號稱是 C++ code 的人,
應該很清楚我在說什麼...
所以我的建議是,
The C++ Programming Language (Special Edition) 當課本讀,
C++ Primer (3/e) 當規格書耐心讀完,
還有附註一點,
C++ Primer Plus 跟 C++ Primer 是完全不同的書,
內容和編排大不相同,原作者也不同,譯者也不同,
差一個字差很多,C++ Primer Plus 不要買來讀,
比 C++ How to Program 這本更不建議看...
--
Name: Tseng, Ling-hua E-mail Address: uranus@it.muds.net
School: National Chung Cheng University
Department: Computer Science and Information Engineering
Researching: Porting GCC and Implementing VLIW instruction scheduler in GCC
Homepage: https://it.muds.net/~uranus
--
╔═══╗ ┼────────────────────────╮
║狂狷 ║ │* Origin:[ 狂 狷 年 少 ] whshs.cs.nccu.edu.tw ╰─╮
║ 年少║ ┼╮ < IP:140.119.164.16 > ╰─╮
╚╦═╦╝ ╰ * From:218-171-149-250.dynamic.hinet.net
─╨─╨─ KGBBS ─ ◎ 遨翔"BBS"的狂狷不馴;屬於年少的輕狂色彩 ◎
◆ Modify: 05/03/10 10:03:01 <202-39-18-142.hinet-ip.hinet.net>
討論串 (同標題文章)
完整討論串 (本文為第 2 之 11 篇):