為教材一辯——資訊時代的技術閱讀 (轉)
劉天北
據說,我們生活在 一個“知識爆炸”的時代。作為專業開發者,我對此頗有些切身體會——事實上,我所在的行業就是這次爆炸的重災區。選擇開發軟體,就是選擇被彈坑包圍的、近乎偏執的思維方式:在這樣一個產品按照摩爾定律,技術以井噴速率向我們湧來的產業中,永不停頓的學習和追趕技術前沿似乎成了唯一可行的生存之道。
要是在這種語境裡談論“教材”,未免會顯得笨拙和老套。“教材”,在不少人聽來簡直是一個矛盾修辭(oxymoron)。每天,甚至每小時都會有幾種新技術、或是核心技術的新版本出現,大多數開發人員都在為趕上趨勢疲於奔命,若干年前出版的一本舊書與我們何干?教材至多是一瓶過了氣兒的酒,代表著那些早該歸檔入庫的舊概念、舊思路。是呀,在知識爆炸的彈坑裡為計算機教材辯護,不啻於號召大家搬進博物館辦公。
毫無疑問,如果上述種種全都屬實,那軟體行業所面對的就只能是一幅猙獰的圖景。任何平凡的個人,在無止境的逐新挑戰下,都終有一天會力不從心、敗下陣來。素聞軟體開發是“青春飯”,30歲是開發人員的退休年齡,這些都是上面的知識規律的有效推論,並也在國內不少地方已經成為令人難堪的現實。
我反抗事物的這種狀況。依我看來,上面給出的,只是關於知識的一幅似是而非的漫畫,遠沒有描繪出軟體業內恆常與革新之間、原理與應用之間、教材與實踐之間種種複雜而細微的張力和互動。事實上在不少軟體業發達的國家,企業的技術骨幹往往是30至40歲的開發者;相應地,不少十幾年、幾十年前出版的教材至今仍被奉為圭臬。一個例子?Marc Fleury,的主要設計者就曾坦承,這種當前構架最先進的應用中的核心技術“客戶端攔截器(client s interceptor)”,其靈感源自60年前Allan Turing關於自動機的論述。從這個意義上講,一本書頁發黃的教材中包含的現實性,遠比不少剛出鍋的資料更豐富。
近年來“複用性”是軟體開發追求的重要目標。在學習領域,研讀教材不失為提高學習過程可複用性的上選策略。所謂舉一隅而反三隅,我見過一些基本功紮實的開發者,學習任何新應用的速度都遠逾常人。可見多讀教材,熟知技術應用背後的原理,能使人以少許勝多許,進而降低學習新事物的成本,擺脫面對前沿技術的被動態度。
要說明上面的道理,恐怕首先得看看“教材”和“教程”的區別。教材(textbook)是某一學科領域的經典讀物。我們稱讚一個漂亮的解決方案,常說“這可以寫進教科書”,含義正在於此。與之相對,教程(tutorial)是對特定技術的使用介紹。在一些短視的、急功近利的語境中,這二者往往容易混同,甚至不少人輕教材而重教程,看到內容稍微詳盡的教程就大呼“經典”——這隻能是心態失衡引發的譫妄。教材和教程雖然名稱相近,實質上卻代表了知識的兩種極端樣態:教程讓人知其然(know-how),教材令人明其所以然(know-why);教程使用概念,教材塑造概念;教程傾向於灌輸,教材偏愛啟發;教程重,教材重原理。俗套的說法還愛用主食/副食,或是武俠小說中的內功/招式的對比來描述這二者間的關係。依我看來,這些隱喻未必搔到了癢處,但都肯定了一點:無論對於個人還是行業,單純推崇教程而忽略教材,都只能將自身引向災難。
據說不少人由於小時被迫背誦詩歌,成人後患上了叫做“恐詩症”的心理疾病。我猜想那些反感教材的人們,也是國內可悲的教育體系的犧牲品。這些人想起教材,腦中浮現的首先是一種難以下嚥、無法消化的鋸末類食物。但在我個人接觸的國外技術讀物中,好的教材遠比好的教程可讀。國外教材中的名著往往為大師巨匠所作,已開發國家的軟體業看重表達能力,光有內在美,不善交流也不成——所以越是名家手筆,文章越平易,表述越直觀。大師之所以為大師,在於他們對概念把握得更準確,並能以最明晰的方式傳播給世人——當他們在著作中首次引入某個概念時,就更在意表達方式是否易於接受。所以在你自己足夠清醒的時候,好的教材往往並不使人如墜霧中,反而會時時引發驚歎:我怎麼就沒想到這個!
教材的可讀性優勢還在於它對“參與”的鼓勵。一般我們看到的各種教程,多為國外企業的商業文件的衍生物。所謂商業文件,大致是使用手冊(user manual)或是速成指南(quick start)性質的技術資料,敘述風格以線性的平鋪直敘為主,喜歡“手把手”的灌輸。這是麥克盧漢(Marshall McLuhan)所說的“熱”,學習者的參與程度降到了最低。相反,好的教材的敘述總是啟發、對話式的,主題往往在迴圈中得到深化。故此教程往往訴諸運動神經,它是一種指令,讓人不由自主的跟從和忙碌,而教材則使人從盲動中抽身而退,賦予人獨立思考的能力。
以我個人所見,技術行業裡,大師巨匠大多自信、安恬,溫和有趣,水平低得多的技術人員反而常常自矜於一得之見,對旁人擺起面孔。相應地,很多教材名作也都面目有趣,語言溫醇,甚至不少段落漂亮得都可以拿去做英語範文。而你很難從大多數教程作者那裡指望考究的文風,他們的典型句式是:“讀完下面的10頁,你將學會a...b...”——要是再加上一個電話號碼,這就能構成不錯的電視購物廣告。
在讀書方法上,據說,波普爾(Karl Popper)剛到倫敦大學經濟學院(LSE)時,發現學生課程裡有一門叫“速讀(speed-reading)”。他先生居然跑去問院長,他能不能開門課教人“慢讀”。即使是對於計算機教材,卡爾爵士的建議也應該有效:別指望今晚讀的教材明天就變成現錢,掃描器式的線性攝入在這裡不起作用。越是名著經典,閱讀時越需要享受的、反覆體味的態度:應該像吃人參果一樣善待這裡的一字一句,而不是老想著把它當成果味VC,一口吞了。另外,依個人,我覺得帶著問題讀教材往往更合理——這更容易使讀者進入富於啟發的對話過程。
怎樣從大量的教材中找出合適的那本,也是一個困難的選擇。人生苦短,讀書作為時間上的投資也須慎重,開卷之前看看權威的意見——目前國外有專門的網站(而不只是網上書店)作這件事——對選擇閱讀,對讀書時更好地把握該書的長處和弊病,都會有一定幫助。此外,我個人(不無偏頗)的傾向是:首先考慮國外原文教材。語言遠不止是思想的載體。一個核心概念與表達它的語言總是處於一種非此不可的關係中。英語是電腦科學的世界語(相當於拉丁語對於神職人員的作用),要在問題的核心考慮一項技術,再精確的譯文都是離題萬里的。加之國內技術書籍的翻譯現狀遠遜於一般文獻的水平,除個別情況外,譯者往往不是國內特定領域的首選專家,無論技術水平還是語言能力都與原作者相差太遠。在原文裡一個微妙而尖銳的段落,經過譯者強作解人的濾波和轉換,往往平庸得可以去作社論,對於塑造核心概念的教材就更其如此。
Habent sua a libelli——西方的很多圖書館內都有這句拉丁文,大意是,書籍自有其命運。而我看來,我們能讀到什麼書,甚至進一步說,我們如何閱讀、如何思考,很大程度上取決於出版/傳媒界的生態狀況和圖書從業者的素質。近年來,計算機教材在國內似乎運數不差。隨著著譯增多,人們漸漸也對何謂佳作、何謂經典有了趨於合理的認識。前些年大家把一些具體語言開發教程奉若神明的風氣,似乎也有了一定轉變。其實,在軟體業發達的國家中,人們對技術書籍早有成熟的衡量標準——這是一套嚴密的價值體系,新書的出版,只能依據這個體系找到特定的位置。好比說書名中包括“*** Bible”、“*** in 21 Days”的,究竟針對什麼樣的讀者,大家心裡自然有數。而國內出版者對這一套潛在的規則的理解也許還有待加深,很多時候還是依靠一些所謂“buzz s”來判斷是否引進。事實上,在資訊全球化的今天,圖書從業者掌握類似的知識無需成為技術專家。這裡只要恰當的英語能力,也許再加上一點對圖書的熱愛就已足夠。在一篇談軟體工程經典《人月神話》的文章中,我曾經回憶在一次印度之行中購買影印版教材的情形,我也願意以此結束本篇:“...第三或四層是技術專區——我開始只找到了Jacobson們的OOSE(有點困惑於複雜的書店佈局)——看到另外一人手中的Software Project Survival Guide——我求助於一個店員,他立刻拿給我那本書,和一本《人月神話》——另一個店員看到它們,又遞來一本《人件》…”。對於一個技術讀者,這是難以忘懷的體驗。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-997910/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 官方教材閱讀整理Oracle
- 閱讀C語言教材的一些收穫C語言
- 軟體技術的森林時代 (轉)
- 如何閱讀技術類書籍
- 《Oracle核心技術》勘誤——個人閱讀Oracle
- 技術閱讀與寫作小記
- 技術書籍超級閱讀法
- 為何將這一項技術稱為人工智慧的“讀心術”人工智慧
- 家庭閱讀 數字時代下影響兒童閱讀的因素分析
- OCR識別技術—護照閱讀器2
- 主題閱讀-IT專案管理-工具技術專案管理
- iTuring技術閱讀社群誠邀加盟
- 如何準備技術晉級答辯
- 關於閱讀技術性書籍-談談我的一些做法
- 「程式設計師閱讀技術文章真的可以提升技術嗎?| 掘金技術徵文」程式設計師
- CDN技術詳解/轉型時代叢書
- 如何閱讀Cookbook技術書——如果我要把一本幾百上千頁的書從頭讀到尾,應該怎樣有效閱讀。
- 爭鋒相對,技術大咖辯論大PK!數字化轉型迎巨浪,技術管理見真章
- 《快速閱讀術》讀書筆記筆記
- [轉載]NoSQL領銜大資料時代的新技術SQL大資料
- 深入分析新時代的網路攻擊技術(轉)
- 閱讀這個時代,創造新的管理模式模式
- 當技術成為潤滑劑:AI時代的職場溝通AI
- 第三章:閱讀的第一個層次:閱讀的基礎——《如何閱讀一本書》
- 資訊化中的AT技術
- 來了!「年度最強技術答辯」看這裡
- AI時代的移動技術革新AI
- 如何閱讀一本書——分析閱讀Pre
- 高效的知識閱讀和資訊篩選技巧
- 你真的會閱讀Java的異常資訊嗎?Java
- 轉:Java同步技術 (一)Java
- 轉_如何閱讀程式碼
- 不要成為技術的奴隸(一)
- 資訊摘要技術
- 磨刀不誤閱讀工 |《如何閱讀一本書》之基礎閱讀和檢視閱讀
- 機器閱讀理解打破人類記錄,解讀阿里iDST SLQA 技術阿里
- DMA:消費者電子郵件閱讀行為調查(資訊圖)
- 如何閱讀他人的程式程式碼[轉]