年終總結:來一波程式設計科普書籍推薦
古人云:“書中自有黃金屋,書中自有顏如玉。” 說明我們的老祖先在很久之前就認識到讀書的價值。
在古代讀書還真是挺奢侈的一件事情,第一,書太少了,古代其實總共就沒有多少書籍;第二書籍不容儲存,全部使用竹捲來書寫,如果要讀現在的一本書,相當於古代讀了一牛車的車,不知道是不是這個原因古代人喜歡用文言文和詩詞,可以讓幾個詞語代表很多意思,所以在古代能讀上書的基本都是富人了。
到了近代,也就是在網際網路沒有出現的時候,是讀書最好的年代,書籍是很多人瞭解外面世界的唯一途徑,那時書籍也不是特別豐富,所以大家也不挑,拿到一本就專心致志的讀起來,也不管對自己有用還是無用,沒有太多的功利性。當時讀書要不是為了增長見識、就是為了消磨時間而已。人們之間經常的借書還書,慢慢的發展成為書友的一種特殊人際關係,有的還會給陌生的人寫信成為筆友。
到了網際網路發展起來的時候,特別是自媒體發展火爆之後,讀書已經成為了人們的二等選擇,甚至很多的技術人員會說,我不需要買任何的一本書,因為網際網路上有我需要的任何東西,有一段時間我也是這樣認為的。在現在生活壓力越來越大的情況下,人們的心態會發生一些變化,很難平靜下來或者沉下心來好好的去看一本書,另外人們的時間越來越碎片化,很難有整段的時間用來讀書,甚至很多大V會推薦碎片化閱讀,碎片化學習、碎片化時間管理等。
那麼當今社會讀書的意義是什麼?因為我是搞技術的,首先從技術的角度來看為什麼要讀書,如果需要系統全面的瞭解一門知識的話,需要去讀書。比如Mongodb的使用,基本的增刪改查網上的例子一大堆,但是當我們需要深入或者全面去了解MongoDB的時候,網上的知識就比較凌亂或者太碎片了,我們只需要看一本《MongoDB權威指南》就立刻在腦海中對MongoDB有一個全方位的瞭解,如:MongoDB設計的原理是什麼,如何監控,MapReduce可以解決什麼樣的問題等等。
對於搞技術的同學,特別建議大家不要只看技術書籍,更多應該關注其它方面的內容。讀科普類的書籍可以讓你瞭解世界的廣闊、時間的永恆,代表作:人類簡史、智慧時代;讀文學類的書籍可以認識人類思想藝術的精華,代表作:三國演義、平凡的世界;讀網路小說可以讓你瞭解人的想象力居然可以如此的豐富,代表作:盜墓筆記、鬼吹燈。太多了,不再一一舉例了,作為技術人員跳出自己的視角去看待問題,可能就會有不同的收穫,最重要的是我們的生活不只是程式碼。
讀書多了久了,讀過的書會改變你的容顏,改變你的氣質和修養,你的舉止和談吐也會受到讀過書籍的影響,很可能你都沒有意識到,這是一種潛移默化的行為。讀書也是打破自己侷限性最廉價,最有效的途徑之一,可以參考我前期文章思維的侷限。但讀書也不是盲目的,一定要找適合自己的,經典的書籍,經典書籍永不過時。適合是第一,經典是第二,再怎麼經典不適合自己也沒有用,看了也沒有感悟,如果書讀了一段時間不感冒可以立刻放棄,那麼多書總有適合自己的,不需要勉強自己同時又浪費了時間。
下面推薦一些,我個人喜好的幾本書籍
技術類
作為技術的同學,總會感覺有一段時間內,技術遇到了瓶頸,總是不能提高,這個時候就需要多看技術書籍了。因為我本身是搞Java的,所以看的技術書籍大都是關於Java類的。
深入理解Java虛擬機器
是關於JVM一本好書,基本上也是瞭解JVM必看的一本書籍,文章寫的很詳細和專業,但是也有一些章節比較難懂,大家可以根據自己的需求選擇感興趣的章節來閱讀。還有一本《Java效能權威指南》也是一本不錯的選擇,但是還麼來得及細看。
核心內容:Java類的載入機制、JVM記憶體結構、垃圾回收原理、垃圾回收演算法、記憶體溢位和調優、程式編譯與程式碼優化等。
Java併發程式設計實戰
被大家評論為Java併發的聖經。但是這本書並不是人人都適合讀,書中對於併發的理論性知識描述的特別多,也會從最根本的底層來解釋併發的原理。相比於這本書我更推薦一個人的部落格,《深入淺出 Java Concurrency》 作者重點介紹了JUC(ava.util.concurrent)中各類以及常用的使用方法,特別偏重實踐。因此本書+此部落格結合起來學習Java併發是最好的方案了。
Effective java 中文版
本書介紹了在Java程式設計中78條極具實用價值的經驗規則,這些經驗規則涵蓋了大多數開發人員每天所面臨的問題的解決方案。通過對Java平臺設計專家所使用的技術的全面描述,揭示了應該做什麼,不應該做什麼才能產生清晰、健壯和高效的程式碼。本書中的每條規則都以簡短、獨立的小文章形式出現,並通過例子程式碼加以進一步說明。java經典書籍之一。
Spring揭祕
搞Java的如果不瞭解Spring,那麼你基本不用再Java這個圈子裡面混了,Spring發展到現在已經成Java程式設計師誰都無法繞過的框架了,關鍵Spring做的確實太牛了。這本書主要描述了Spring框架原理和使用,先介紹了Spring最核心的兩塊內容Sping IOC和Spring AOP概述及其實現機制,接下來介紹了Spring ORM框架的支援,Spring MVC的使用以及原理,最後介紹了Spring對j2ee的支援。基本上Spring最核心的部分都有介紹,如果你想了解Spring這絕對是一本好書。
重構
這應該是程式碼重構中,最優秀的一本書籍了。重構,一言以蔽之,就是在不改變外部行為的前提下,有條不紊地改善程式碼。本書通過詳細介紹了幾十中實戰的重構方式,書中以Java程式碼為例來舉例,但不僅僅於Java,其它程式語言也都可以參考。其實我一直認為:好的程式碼不是寫出來的,而是重構出來的。重構是提高個人程式設計能力的重要手段之一,不斷的去回顧自己寫過的程式碼,看還有沒有重構提升的空間。
研磨設計模式
設計模式是什麼呢?Patterns,顧名思義,具有某種重複性規律的方案。Design Patterns,就是設計過程中可以反覆使用的、可以解決特定問題的設計方法。可以這樣比喻:設計模式就是古代武林中精妙的招式(武林祕籍),其實也是一種解決問題的思想,前輩根據經驗總結了23種武林招式,在某種場景中使用某種設計模式必定會事半功倍,少趟很多坑。另外特別推薦csdn的一個部落格Java之美[從菜鳥到高手演變]之設計模式,例子淺顯易懂,非常適合快速入門型的學習。
《研磨設計模式》詳細介紹23設計模式中的一本書,書本比較厚,程式碼示例也比較多,可以作為了解設計模式的一本讀物。
寫在最後:
原則上推薦大家閱讀紙質書籍,為了方便大家試讀我這裡都有電子版本(大部分為非PDF格式),需要的話加群963,944…895領取