淺談程序猿書籍的選擇,你會如何選擇你的愛書呢。


引言

 

  本篇博文的想法來源於跟群里的猿友們的交流,LZ發現很多人會說自己很迷茫,不知道要學什么。之前LZ已經寫過相關的文章,文章指出了程序猿需要掌握的一些內容,但是當中LZ也表達了一個觀點,就是LZ個人不太喜歡給人推薦書籍。因為LZ覺得,書籍的選擇與職業的道路一樣,充滿着個性化,每個人適合的都不一樣。所以沒有最好的書籍,只有適合的書籍,這和找女朋友是一樣的。

  寫這篇文章的目的,是為了幫助一些迷茫的猿友們,走出書籍制造的迷霧森林,選擇一條盡可能適合自己的最短路線走出來。鑒於一些猿友對書籍的選擇毫無重心,浪費了很多無謂的時間。因此盡管書籍是比較個性化的,但是考慮到選擇的路線還是有相同之處的,所以LZ就斗膽開了這么一篇博文,希望能給各位猿友一些有效的建議,以期能起到一些微薄之力。

 

對象范圍

 

  為了避免不必要的爭議,LZ這里還是要限定一下讀者范圍。本文的讀者應該是正在從事或未來即將從事程序猿一職的編碼工作,並主要依賴於某一種程序設計語言的猿友們。倘若你並不打算成為一名悲催的程序猿,又或者你並不打算依賴某一種語言生存,而是准備做一個全能人士,那么本文對你來說已毫無意義,可單擊瀏覽器右上方的叉叉按鈕。

  另外需要一提的是,由於LZ本人是非計算機專業出身,因此本文的內容對於中途改行做程序猿的朋友可能會更加適合一些。至於原本就是計算機專業的猿友們,可能會有一些不同,但這並不妨礙各位以此作為一個參考。不過LZ這里依然要扔出來那句話,此為LZ一家之言,各位猿友看完之后,還需要有自己的思考。

 

淺談深度

 

  很多人感覺迷茫的原因,就是因為自己懂的也不少,但是真要問自己有哪些特別擅長的東西,卻發現竟然一個都想不起來,也就是所謂的深度不夠。

  大部分人肯定都希望自己的深度足夠,生怕自己變成一個萬能的廢物。但是不知道各位猿友有沒有思考過,到底何為深度?倘若你連深度是什么都不知道,又何談提高自己的深度呢?

  LZ這里要給深度下一個定義,以表示LZ粗淺的理解。在LZ個人看來,一個簡單的理解,深度就是指在某一個領域的知識范圍之內(這里特指技術方面),你知道很多別人不知道的秘密,通俗的理解就是你成為了某一個領域的專家,這就稱之為深度。舉個例子,對於Java和.NET來講,都是運行在VM上的,那么如果你懂了VM的秘密,就說明你在Java和.NET領域當中,有了一定的深度,盡管這個深度只是一點點罷了。

  換句話說,如果你深刻了解了某一個領域當中所有或者說大部分的知識,並將這些知識融會貫通,那么你就成為了這個領域的專家,也就是俗稱的“你是有深度的”。因此這里的難度就在於,如何判斷某一個知識處於我們所在的領域當中。

  

無腦選書

 

  上面已經提到,我們增加深度的最大阻礙就在於,如何判斷一個知識是否處於我們所在的領域當中,說的通俗一點,就是判斷一本書我們是否該讀。這也是造成很多人學習迷茫的主要原因,因為很多人選擇書的方式是被動選擇,比如讓別人推薦,或者從網上《XXX必讀的幾本書》這種文章上拔下來的,尤其是某些博客大牛推薦的書籍,更容易引起新手們的無腦追捧。

  為何從來不會自己選擇書籍呢?

  LZ的觀點一直都是,不可不信,不可全信。高手們推薦的書籍自然是值得注意的,但是也要自己篩選,而且更重要的是要看時機,千萬不可一股腦收下。除非你能保證,你在讀任何一本高手推薦的書籍時,都能與他保持一模一樣的客觀與主觀的環境。比如思維方式、技術水准、知識體系、工作經歷等等,如果這些條件都一樣,那LZ不反對你照搬無誤的將這些書全部讀一遍。

  有的猿友倒不會無腦選擇別人推薦的書籍,不過卻更加糟糕。他們選擇書籍的方式是一些非常奇葩的標准,比如太厚的不想看,太枯燥的不想看,看不懂的不想看等等。這種情況更加危險,這種完全根據自己喜歡來選擇書籍的方式,純屬安樂死。之所以叫安樂死,就是因為這種選書方式,你會發現你看的非常舒服,因為不舒服的都被你排除掉了,但是卻對你的提高十分有限。

  這算是LZ見過的,兩種最無腦的選書方式,也是LZ個人極其不推薦的方式。如果你現在還是處於這樣的過程當中,請務必嘗試改變這種方式。

 

選書也是一種思考

 

  LZ推薦的一種選書方式,就是在思考中選擇書籍,而且這種思考有時候比你讀書更重要。估計有的猿友不服了,選個書而已,至於說的這么神秘嗎。猿友們先遏制下內心的這種想法,LZ之所以這么說,肯定是有一些自己的理由的,絕非大放厥詞。LZ說一個自己選書的例子,各位就知道LZ為什么這么說了。

  第一本LZ讀的書,是大名鼎鼎的Java寶典編程思想,當時讀完以后,感覺對Java當中的概念清晰了很多。比如初始化、泛型、拆裝箱等等一些比較基礎但卻很重要的內容,不過由於當時LZ只是第一次主動買書讀書,因此並沒有存貨。於是接下來,LZ就開始思考接下來到底應該買什么書。

  各位猜一下,LZ當時選擇的書是哪些?當時思考了很久,LZ選擇了兩本書,一本是Java虛擬機相關的書籍,一本是編譯原理這本龍書(電子版)。為什么選擇這兩本書,而不是其它的書呢?

  因為LZ漸漸思考清楚了兩件事,想要徹底明白初始化等一些Java內部機制的原理,答案就在Java虛擬機當中。而想要徹底清楚泛型和自動拆裝箱等一些編譯器給的糖衣炮彈,答案就在編譯原理當中,更確切的說,是在Javac編譯器當中。這一思考讓LZ對Java的生態系統清晰了很多,因為LZ抓住了幾本書之間的聯系,而每本書其實就是一個大的知識點,將這些大知識點在你心中形成一個知識網,絕對比你讀一本書的價值要大,這不正是傳中說融會貫通的過程嗎。

  這樣選擇書籍還有一個附加好處,就是因為你想要的答案就在你所選擇的書籍當中,因此你看起來大部分時候不會感覺無趣,甚至會十分迷戀也是正常的,這就要看你的求知欲和好奇心有多大了。

  因此LZ給各位猿友一個建議,在每次讀完一本書的時候,就將你現在已經讀過的書在你心中形成一個關系圖,然后尋找下一個節點應該在哪,這個節點代表的應該是一個知識點。只要你選定了下一個知識點,那么具體書籍的選擇參考高手們推薦的書籍並非不可。

  比如LZ當時選擇Java虛擬機書籍的時候,就是看到的一位高手推薦的書籍。不過請注意LZ選擇的順序,LZ並不是先看到的這位高手的推薦,然后直接就去買他推薦的Java虛擬機書籍了,而是LZ先一步想要找Java虛擬機相關的書籍,后面才找到的這篇文章,進而才采用的這位高手推薦的書籍。

  所以LZ更願意回答“龍哥,我想找一本XXX(比如Java虛擬機這一類任意一個知識點)相關的書籍,你能給我推薦一本嗎”這樣的問題,而不是直接問LZ“龍哥,給我推薦幾本書吧”這樣的問題。說實話,LZ並不知道你的知識體系,你走到哪里了,該看什么了,恕LZ無法給你推薦任何書。

 

LZ現在的知識體系

 

  LZ現在簡單羅列一下自己的知識體系,這其實算是LZ選擇書籍的路線,這其中不會包含任何一個具體的書名,只是一系列知識點的關聯。另外,LZ是主Java的程序猿,因此這個體系圖更多的是給Java的猿友們參考的。不過.NET的整體架構與Java還是十分相似的,因此對於.NET的猿友們來說,也並非毫無價值。

  在此LZ必須聲明,以上體系完全是LZ根據自己的情況所畫的,因此不具備任何權威意義,任何人都可以根據自己的需要調整,而且圖中的知識聯絡也並非十分嚴謹,只是LZ個人的一個簡單的串聯而已。圖中所標注的Java領域的知識其實也是不全的,因為這只是目前LZ已經了解或准備了解的內容而已。

  不過從這里也能看出來,Java這個入門簡單的語言其實非常不簡單,就圖上的內容就夠我們喝一壺的了,更何況這里還不全。對於.NET來說,盡管LZ並不了解,但相信也是一樣的。因此各位千萬不可掉以輕心,千萬別讓自己這個屌絲青蛙,沒當上王子,卻被溫水煮死了。

 

深度與廣度

 

  各位看到上面的內容,估計會有點暈菜,不是說要深度嗎,上面這么多東西需要學習和了解,如何能有深度。其實這個擔心沒有錯,也正因為如此,LZ才將上面的一部分內容加上了紅色背景,被LZ將背景標紅的那部分,就是LZ現階段學習的主線。

  紅色背景的內容就是深度的保證,而其余的部分,則是在此基礎上廣度的擴張。因此,LZ有一個很重要的忠告,就是千萬不要被上面的知識體系迷惑了,紅色背景部分才是我們的主線。我們學習的任何其它內容,都應該是為了主線服務的,而且通常情況下,這些內容我們並不都需要精讀。

  對於經常討論的有關深度與廣度的問題,就像先有雞還是先有蛋一樣,沒有雞哪來的蛋,而沒有蛋又哪來的雞。同樣的,沒有深度哪來的廣度,沒有廣度又何來的深度,這樣糾結的問題LZ還是決定不攙和進來了,而且這樣的爭論其實毫無意義

  我們這里只談談學習的過程應該是怎樣的,LZ個人的想法是,學習的過程就像爬金字塔一樣,我們從最底層的基礎開始爬,而最底層是最廣的,因為需要很多的鋪墊才可以繼續攀登金字塔,如果你足夠努力與幸運,最終可能可以爬到金字塔尖上。對於LZ這種非計算機專業的同學來說,屬於一上來就爬到了一定高度的情況,在這個時間,我們必須有事沒事就回去修修你的金字塔底層,直到牢固為止,否則就算你繼續向上爬到一定高度,也一定會摔下來的。

  金字塔尖是特別窄小的,否則也不可能稱為尖。由此可見,我們學習的過程應該是從基礎漸漸攀爬的過程,是將掌握的領域無限壓縮並提升的過程,最終將我們的知識壓縮成一個鋒利的塔尖,直插雲霄。不過需要注意的是,你爬的越高,應該看得越遠,而不能只盯着你的金字塔尖,否則你得到了金字塔尖,卻會失去你身邊廣闊的天空。

  

小結

 

  作為一個程序猿來講,學習確實是很重要的一環,而學習的過程中,書籍的選擇又是重中之重。所以我們平時多花一些時間去選擇一本合適的書籍,是非常值得的,書籍才真的應該是寧缺毋濫,與其將時間浪費在一些相對無用的書籍上面去,還不如好好的思考一下你的知識網,謹慎的選擇下一個知識節點,下一本書。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM