滿漢全席之外
Stanley B. Lippman 所著的C++ Primer 雄踞書壇歷久不衰,堪稱C++最佳教科書。但是走過十個年頭之後,繼1237 頁的C++ Primer 第3 版,Lippman 又返璞歸真地寫了這本276 頁的Essential C++。有了滿漢全席,為何還眷顧清粥小菜?完成了偉大的巨著,何必回頭再寫這麼一本輕薄短小的初學者用書呢?
所有知道Lippman 和C++ Primer 的人,臉上都浮現相同的問號。
輕薄短小並不是判斷適合初學與否的依據。Lippman 寫過Inside the C++Object Model,280 頁小開本,崩掉多少C++老手的牙。本書之所以號稱適合初學者,不在於輕薄短小,在於素材選擇與組織安排。
關於Lippman 重作馮婦的故事,他自己在前言中有詳細的介紹。他的轉折,他的選擇,他的職責,乃至於這本書的綱要和組織,前言中都有詳細的交待。這方面我不必再置一詞。
身為C++ Primer,3rd Edition 的譯者,以及多本進階書籍的作者,我必須努力說服自己,才能心甘情願地將精力與時間用來重復過去的足跡。然而,如果連Lippman 都願意為初學者再鋪一條紅地毯,我也願意為初學者停留一下我的腳步。
我是一名信息教育者,寫譯書籍,培訓人員,在大學開課……。我真正第一線面對大量學習者。借此機會我要表達的是,所謂“初學者”實在是個過於籠統的名詞與分類呃,談得上分類嗎)。一般所謂“初學者”,多半想象是大一新生程度。其實C++語言存在各種“初學者”,有13 歲的,有31 歲的當然也有41 歲的)。只要是第一次接觸這個語言,就是這個語言的初學者,他可能才初次接觸計算機,可能浸淫Pascal/C 語言十年之久,也可能已有Smalltalk/Java 三年經驗。有人連計算機基本概念都沒有,有人已經是經驗豐富的軟件工程師。這些人面對C++,學習速度、教材需求、各人領悟,相同嗎?
大不同矣!
每個人都以自己的方式來诠釋“初學者”這個字眼,並不經意地反映出自己的足跡。初學者有很多很多種,“初學者”一詞卻無法反映他們的真實狀態。
固然,輕薄短小的書籍乍見之下讓所有讀者心情輕松,但如果捨棄太多應該深入的地方不談,也難免令人行止失據,進退兩難。這本小書可以是你的起點,但絕不能夠是你的終站。
作為一本優秀教科書,輕薄短小不是重點,素材選擇與組織安排,表達的精准與閱讀的順暢,才是重點。
作為一個好的學習者,背景不是重點,重要的是,你是否具備正確的學習態度。起步固然可從輕松小品開始,但如果碰上大部頭巨著就退避三捨逃之夭夭,面對任何技術只求快餐速成,學編程語言卻從來不編寫程序,那就絕對沒有成為高手乃至專家的一天。
有些人的學習,自練一身銅筋鐵骨,可以在熱帶叢林中披荊斬棘,在莽莽草原中追奔逐北。有些人的學習,既未習慣大部頭書,也未習慣嚴謹格調,更未習慣自修勤學,是溫室裡的一朵花,沒有自立自強的本錢。
章節的安排,篇幅的份量,索引的保留,習題加解答,以及網上的服務,都使這本小書成為自修妙品、C++專業課程的適當教材。誠摯希望《EssentialC++中文版》的完成,幫助更多人獲得C++的學習樂趣——噢,是的,OOP面向對象編程)可以帶給你很多樂趣,我不騙你。
侯捷
2012/09/22
本文節選自《Essential C++中文版》一書
[美] Stanley B.Lippman 著
侯捷 譯
電子工業出版社出版