
原文:http://lucida.me/blog/on-reading-books/
作者:lucida
1. 摘要
這篇文章從如何閱讀書籍出發(fā),簡(jiǎn)單討論了如何選擇書籍、是否閱讀原版和閱讀數(shù)量這幾個(gè)常見問(wèn)題,然后自己的閱讀問(wèn)題進(jìn)行了分析和總結(jié)。
2. 注意
- “如何閱讀” 指 “What to read” 而非 “How to read”,Mortimer J. Adle r的 怎樣閱讀一本書 對(duì)How to read有著精彩的描述。
- “書籍”指非小說(shuō)(Non-fiction)類書籍。
3. 目標(biāo)
我是一個(gè)功利主義者(Utilitarianism),因此我認(rèn)為閱讀的目標(biāo)在于為自己創(chuàng)造實(shí)際價(jià)值,所以:
- 我不會(huì)因?yàn)槟潮緯雌饋?lái)很有趣就去閱讀(機(jī)會(huì)成本)。
- 也不會(huì)因?yàn)楹芏嗳送扑]某本書就去閱讀(從眾)。
- 更不會(huì)因?yàn)槟潮緯y就去閱讀(追求智商優(yōu)越感)
一本書值得閱讀,當(dāng)且僅當(dāng):
- 它可以直接為我創(chuàng)造價(jià)值。
- 它可以間接為我創(chuàng)造價(jià)值。
我的閱讀目標(biāo):
形成T型知識(shí)結(jié)構(gòu):專業(yè)知識(shí)盡可能深入,專業(yè)周邊知識(shí)盡可能精煉。
4. 如何選擇?
4.1 專業(yè)書籍
專業(yè)知識(shí)盡可能深入。
我是一個(gè)軟件開發(fā)者(Software Developer),因此這里的專業(yè)書籍均和軟件開發(fā)有關(guān)。
這里介紹我自己用的兩種方法:
根據(jù)引用列表
從一本經(jīng)典書籍出發(fā),深度優(yōu)先遍歷它的引用列表,通過(guò)書評(píng)和摘要了解這些引用書籍,再根據(jù)自己的實(shí)際情況決定自己的閱讀次序。
這里以 代碼大全 為例(為了方便和一致性,這里使用英文書名):
Code Complete:軟件構(gòu)建全程最佳實(shí)踐指南。
|
|----How to Solve it:系統(tǒng)解決問(wèn)題。
|
|----Conceptual Blockbusting:跳出思維的壁壘。
|
|----Mythical Man Month:軟件工程不能做什么。
|
|----Programming Pearls:極簡(jiǎn)算法手冊(cè)。
|
|----The Science of Programming:編寫正確的程序。
|
|----Writing Efficient Programs:編寫高效的程序。
|
|----Pragmatic Programmer:高效程序員的實(shí)踐。
|
|----Refactoring:如何改進(jìn)自己的代碼。
|
|----Programming on Purposes:用正確的編程模式處理問(wèn)題。
|
|----Software Tools:用合適的抽象封裝復(fù)雜度。
|
|----The Practice of Programming:極簡(jiǎn)編程風(fēng)格指南。
|
|---- Writing Solid Code:減少調(diào)試的時(shí)間。
|
|---- Elements of Programming Style:極簡(jiǎn)編程風(fēng)格指南。
可以發(fā)現(xiàn),通過(guò) 代碼大全 一本書,經(jīng)過(guò)短短兩層引用聯(lián)系,幾乎可以找到2004年以前所有軟件開發(fā)的經(jīng)典書籍。事實(shí)上,我閱讀的80%以上的軟件開發(fā)經(jīng)典書籍,都源自于代碼大全 的引用列表。
這種方法的好處:
- 簡(jiǎn)單直接:相對(duì)于從茫茫書海里找出10本經(jīng)典書籍,找1本經(jīng)典書籍再?gòu)乃囊昧斜砝锩嬲业?0本經(jīng)典書籍要容易的多;
- 質(zhì)量保證:靠譜書籍的引用書籍的質(zhì)量一般都很高;
- 發(fā)現(xiàn)一些被忽視的經(jīng)典:相當(dāng)一部分的書籍隨著時(shí)間的流逝而淡出人們的視野,但這并不代表它們本身沒有價(jià)值,例如:
- Programming on Purposes
- Software Tools
- The Science of Programming
- Writing Solid Code
- Writing Efficient Programs
- 等等… 這些書或者絕版,但它們都對(duì)我的軟件開發(fā)理念產(chǎn)生了巨大影響。 - 形成知識(shí)體系:引用書籍彼此具有天然的聯(lián)系,這使得創(chuàng)建知識(shí)體系更加容易。
我認(rèn)為這種方法適用于任何需要嚴(yán)肅閱讀的領(lǐng)域:
1.錨點(diǎn):找到一本經(jīng)典書籍。
2.撒網(wǎng):了解該書引用列表中的書籍。
3.收網(wǎng):根據(jù)自己實(shí)際需要,精讀相關(guān)書籍。
4.2 根據(jù)作者
這里以計(jì)算機(jī)書籍為例(以下僅代表個(gè)人口味):
- Richard Stevens:善。
- Brian Kernighan:極善。
- Deitel Series:翔。
- Bruce Eckel:廢話連篇。
- Jon Bentley:善。
- Andrew S Tanenbaum:大善。
- Jeffrey D Ullman:善。
- P.J. Plauger:大善。
- Robert C Martin:善。
- Bjarne Stroustrup:善,但略神叨(神侃世界觀方法論有點(diǎn)頂不?。?。
- Martin Fowler:善,但略嘮叨。
- Ron Jeffries:翔(好吧我是故意來(lái)黑的,尼瑪連個(gè)Sudoku都解不出來(lái)寫毛程序)
這種方法的問(wèn)題在于需要一定閱讀經(jīng)驗(yàn),但是它非常有效——以至于不用看內(nèi)容就對(duì)書的質(zhì)量有七八成把握。
5. 非本專業(yè)書籍
專業(yè)周邊知識(shí)盡可能精煉。
對(duì)于專業(yè)周邊知識(shí),了解關(guān)鍵概念及指導(dǎo)思想即可。
不需要,也沒有必要對(duì)專業(yè)周邊知識(shí)進(jìn)行深入了解。
“Know what” is enough, “Know how” is expensive.
以我2年前編寫手機(jī)應(yīng)用,學(xué)習(xí)用戶體驗(yàn)為例:
分別在現(xiàn)實(shí)中(身邊有幾個(gè)很不錯(cuò)的交互設(shè)計(jì)師)和線上(Quora和知乎)進(jìn)行問(wèn)和搜索,得到一個(gè)書單。
按照下面的原則過(guò)濾書單:
去掉教科書和大部頭。
去掉包含大量原理或論證的書籍。
保留結(jié)論型書籍。
保留指南型書籍。總結(jié)出書單,迅速的閱讀并找到關(guān)鍵點(diǎn)。
- 給大家看的設(shè)計(jì)書:CRAP原則,字體與配色。
- 設(shè)計(jì)心理學(xué):心智模型,心智摩擦,最小驚訝。
- 交互設(shè)計(jì)之路:為什么需要交互,交互有哪些坑。
- Tapworthy:具有實(shí)際操作性的移動(dòng)平臺(tái)交互設(shè)計(jì)指南。
了解設(shè)計(jì)的人可能認(rèn)為上面的書單過(guò)于初級(jí)——沒錯(cuò),它們都是結(jié)論型或指南型書籍,沒有原理,也沒有論證——但這正是對(duì)于我這樣的非專業(yè)者所需要的書籍:我不需要知道這些知識(shí)是怎么來(lái)的,知道怎么用足矣。
此外,受價(jià)值驅(qū)動(dòng),而非興趣——大多數(shù)情況下興趣只是把自己脫離當(dāng)前困境的接口。
6. 學(xué)習(xí)型書籍
學(xué)習(xí)型書籍是一種元(Meta)方法書籍:這類書籍用于提升學(xué)習(xí)能力,換句話說(shuō),就是縮短吸收知識(shí)所需要的時(shí)間。
這類書籍我只讀過(guò)下面的幾本,效果有但不明顯:
- 學(xué)習(xí)之道:冥想,體會(huì)。
- 如何閱讀一本書:檢視閱讀,主題閱讀。
- Learn more, study less:建立知識(shí)體系及聯(lián)系。
需要注意的是,不要陷入到尋求最優(yōu)學(xué)習(xí)方法的誤區(qū)——Best is the worthest enemy of better。
7. 閱讀原版?
7.1 如何在翻譯版和原版做選擇?
優(yōu)先選擇翻譯版。計(jì)算機(jī)書籍這種描述精確知識(shí)的書籍更是如此。
此外,如果閱讀中出現(xiàn)難以理解的問(wèn)題,不要下意識(shí)的把其歸咎于翻譯問(wèn)題——多數(shù)情況是理解問(wèn)題。
7.2 為什么還有那么多人閱讀原版?
- 因?yàn)榉g版還沒出版。
- 知識(shí)的價(jià)值有其時(shí)效性。
- 逼格。
8. 越多越好?
我經(jīng)常逛豆瓣,豆瓣有一個(gè)很有意思的現(xiàn)象就是人們喜歡去比較自己每年讀書的數(shù)量,或者是截圖炫耀自己讀過(guò)幾千本書云云。
我在這里酸一下:書的數(shù)量并沒有什么參考價(jià)值,就好比無(wú)法用蓋一棟大樓的磚數(shù)評(píng)價(jià)這棟大樓的質(zhì)量;換個(gè)說(shuō)法,Effort 不等于 Progress。
關(guān)鍵在于讀過(guò)書的質(zhì)量,吸收的程度,以及創(chuàng)造的價(jià)值。
此外,盲目追求讀書的數(shù)量會(huì)帶來(lái)另一個(gè)問(wèn)題——淺嘗輒止。本應(yīng)花在專業(yè)書籍上的時(shí)間被分配到其它無(wú)關(guān)緊要的事情上,導(dǎo)致該學(xué)好的沒學(xué)好,沒必要的學(xué)了一灘但用不上。
9. 總結(jié)
- 形成 T 型知識(shí)結(jié)構(gòu):專業(yè)知識(shí)盡可能深入,專業(yè)周邊知識(shí)盡可能精煉。
按照引用列表和作者深入閱讀專業(yè)書籍。
利用結(jié)論型/指南型書籍精煉閱讀專業(yè)周邊書籍。
不斷強(qiáng)化自己的按需學(xué)習(xí)能力。 - 不一定非要閱讀原版。
- 讀書并非多多益善。
- 讀書之前回答下面幾個(gè)問(wèn)題:
這本書能給自己帶來(lái)什么改變?
自己是否需要這種改變?
如果均為 Yes,繼續(xù);如果有一個(gè) No,砍掉。
以上。
文末
歡迎關(guān)注個(gè)人微信公眾號(hào):Coder編程
歡迎關(guān)注Coder編程公眾號(hào),主要分享數(shù)據(jù)結(jié)構(gòu)與算法、Java相關(guān)知識(shí)體系、框架知識(shí)及原理、Spring全家桶、微服務(wù)項(xiàng)目實(shí)戰(zhàn)、DevOps實(shí)踐之路、每日一篇互聯(lián)網(wǎng)大廠面試或筆試題以及PMP項(xiàng)目管理知識(shí)等。更多精彩內(nèi)容正在路上~
也分享一些雜文~
文章收錄至
Github: https://github.com/CoderMerlin/coder-programming
Gitee: https://gitee.com/573059382/coder-programming
歡迎關(guān)注并star~
微信公眾號(hào)