關於閱讀技術類圖書的思考

來源:互聯網
上載者:User

標籤:


       很多做編程朋友都喜好讀書的。但為什麼要讀書?讀什麼書?讀多少書?如何讀書?這都成了很大的問題。我想就這些問題談談我自己的看法。注意,本文讀者最好是那些時間不多,希望通過讀一些好書能有大收穫的朋友。如果那種只要是技術書都要去讀讀的朋友,你的精力和時間實在太多了,本文應該不適合你。

       首先,在中國,程式員只能靠讀書來提高自己的編程或設計能力,這本身其實是很無耐的,因為國內軟體編程方向的教育已經遠遠落後於編程業的發展了。名師鳳毛麟角,能夠聽到名師的課的人非常少。運氣好,進了大學或者公司,有個高手師兄或者大牛同事帶一帶,成長會快些。否則,要想提高,除了讀書,還真是沒有別的辦法。由於本人曾經做過數學教師,我很清楚,數學學習如果只是給你幾本參考書,然後就能高考得高分,那是不可能的(你如果例外,只能說你是天才,沒有普遍意義),但數學教育已經發展了不知多少年,特別中國這樣以應試教育為主導的國家,數學是不需要好書只要有好的老師就可以出好的學生,而軟體編程教育的師資就實在是不容樂觀。而我想強調的是,讀書永遠沒有好老師的好教學來得有效(注意需要強調“好”字)。因為老師和學生之間是有互動的,是在一個交流的氣氛中學習,而不是讀書的那種完全單方向的資訊傳遞。現在有了網路視頻錄影,情況得到了很大改善。不過視頻同樣存在只能告訴你東西,而不能最快速的解決你碰到的疑問的單向資訊傳遞問題。比如你看了一個視頻學習如何用VS2008寫一個“HelloWorld”程式,可是你始終找不到視頻裡提到的“方案總管”(原因是之前你或別人無意將它關閉了),或許你費了很大力,終於明白在工具列上有按鈕或者菜單中可以開啟它,但是你的挫敗感就很強烈了,這對於初學者來說,是很不爽的。如果有個老師,或者旁邊有個同學,這種問題幾秒鐘就能解決。再比如你看了策略模式的教學書或視頻,可是為什麼一定要用策略模式呢?我不可以用簡單工廠嗎?不可以用裝飾模式嗎?你的問題一個接一個,書中沒有答案,答案只能依靠自己去想。如果你堅持去想,你會有“悟”通的一天,但是更大的可能是,算了,設計模式也太難了,以後再研究吧。因此我覺得多讀書當然好,不過編程能力通過讀書顯然不是唯一,更不是最好的辦法。不過就目前的國內現狀來講,讀書或許是在你沒有老師的前提下最好的提高途徑,尤其是初學者,系統看一些好書,學習一項技術是很有必要的,只靠實際的做項目來提高極有可能會發展不全面(培訓學校我不推薦,因為騙錢居多,好教師太難找)。

      然後是讀什麼書的問題。現在很多過來的朋友都推薦了一些好書,這些好書大多是經過時間驗證,的確是難得的精品,看看一些網上書店的排名和評論就大概知道好書是哪些。不過問題又來了,是不是這些書都適合我閱讀呢。答案不是,並不是只要是好書就適合讀者閱讀的。從技術書的分類來看,簡單的分就有程式設計、軟體工程、資料庫、網路、圖形映像等等;從技術難度上分,就有入門讀物、進階讀物、進階讀物等;從寫作形式上分,有教材類、論文類、休閑類等;從價位上,有10-30、30-60、60-90、90-搶錢沒商量價等;從書的厚度或閱讀時間來講,有三天讀完、兩周讀完、兩月讀完、半年讀完、閱讀三遍、終生閱讀等分類;當然最重要的分類,即按書的寫作品質來分,應該是垃圾書、一般書、可讀書、精品書、絕對必讀書等。換句話說,僅僅是告訴你,編程書好書有哪些是遠遠不夠的,往往會讓讀者根本沒辦法去區別這個好書是不是適合自己,是不是應該要現在閱讀,是否有必要全部讀完。當然,商家是不會做這麼細緻的分類的,沒有什麼商家會告訴你,本書是垃圾書,本書不適合低手閱讀,本書太厚沒時間不要讀,本書很貴買前要謹慎、本書只有三章可以一讀等等。但作為讀者,如果你沒有這種多角度分類的思考去找書的話,你或許會迷失在書的海洋中,無以自拔。打個比方(儘管這個比方我已經打過很多次),GoF的《設計模式》的的確確是好書,但真的不是每個編程者需要去閱讀的,至少不是一開始去閱讀的,如果你是非物件導向程式員(比如嵌入式開發),你是關聯式資料庫開發人員(比如預存程序開發人員),你是UI設計者(偏設計但涉及程式的那種),甚至你是物件導向編程初學者,我都建議你不要讀它,真的沒什麼必要,只有等你真的已經達到一定的開發量了,真的有必要提高自己的編程和設計能力的時候再去閱讀它。總結,一定要讀經過時間檢驗的好書,但在這些好書中,需要分分類,需要多多思考自己是不是真的適合當前閱讀。

      接著,就是讀多少書的問題了。好書很多,不是一本,不是十本,而是幾十本上百本。有些書是全本都好,有些書是部分章節優,有些書有很強的時效性(比如現在去閱讀一些asp.net 1.0入門經典方面的書可能就沒有與時俱進了)。是不是有必要把相同類型好書都讀了呢?我看沒什麼必要。比如你要學習asp.net,你真有必要把這方面的好書都閱讀一遍嗎?讀一本足矣。畢竟這裡更加需要的是練習而不是閱讀了。而要讀的這一本書就應該是精讀,甚至反覆讀。其實。因此別的行業可能很需要參考書,我看編程行業基本不需要參考書,Google百度就是最好的參考。思想層面的,比如設計、分析、專案管理等方向的,可能要多讀一些。但書實在是貴在精而不是多,還是以設計模式為例,入門讀《Head First設計模式》,進階再去讀GoF的《設計模式》就足夠了。當然,像《Java與模式》、《設計模式解析》都是好書,你有精力可以多讀,沒精力,那就不讀也罷。

      跟著,也是比較關鍵的,就是如何讀的問題,本來這個問題不應該我來多說的,讀書嗎,從頭讀到尾就行了,但其實這裡學問還真是不少的,技術書還是很有區別於一般的小說書的。如果你只是簡單的理解為讀書就是花點時間,從頭讀到尾的話,你從這本書得到的收穫是很小的。首先,技術書,並不一定都是需要從頭讀起的。這要看是什麼書,特別是應用級的書,往往是你當前最需要瞭解的技術,你需要多花時間去研究相關的章節。好的書通常都會在前言就告訴你,應該如何去讀這本書。我記得《敏捷式軟體開發 (Agile Software Development):原則、模式與實踐》書中前言就寫得很清楚什麼樣的讀者應該更加關注什麼樣的章節,特別他提到如果你覺得無聊就看看書後的兩個故事,哈,我還真是在一次沒事做時,去認真的閱讀了那兩個項目開發對比的故事,感覺非常好。技術的學習不是看完書就完全理解的,更不是看完就能馬上應用自如的,一項技能要經過知道、理解、掌握、應用等等過程。我強烈建議讀者朋友在精讀一本書時,一定要手拿著筆,最好旁邊再有一本筆記本(紙)和一台筆記本(電)(哈,PC當然也沒問題)。看到好的句子要摘錄到筆記本上(別懶,這其實不是讓你以後去看你抄的東西,而是讓你在抄的時候,放慢你閱讀的速度和節奏,而把大腦緊緊的集中在這個知識點上),有句話說,在一個人用筆寫東西的時候,他是不可能分神去想別的事情的。這對於記憶和理解是非常有協助的,簡言之,不動筆墨不讀書(非常可惜,現在我已經很少看到喜歡記讀書筆記的朋友了,有些人可能一年除了簽名都寫不了幾個字,這實在是一大悲哀)。那麼旁邊那台筆記本或PC要來幹嗎呢?不是讓你來玩遊戲的,更不是讓你和MM聊QQ的,而是用來寫代碼的,代碼只是看看是沒用的,一定要自己打一遍,最好的效果是看懂了後,根據自己理解的來編,效果差一些的是照著書中的抄一遍,但無論哪種都比你根本不寫只是看要強。我見過不少朋友買了書,可能連隨書的光碟片封套都沒拆過,又或者光碟片中的代碼只是簡單的運行一下。沒有認真的模仿打一遍,這都是不好的學習方法。有些人認為書讀完了,應該就差不多都掌握了,其實未必。不知你有沒有過看一部電影,過段時間再看第二遍發現很多很有意思東西原來根本沒在意。特別是英文字幕的片子,看第一遍甚至根本就不懂,看第二遍就輕車熟路這種情況不是很多嗎。讀書也是一樣的,好書絕對有必要多讀,常讀。否則理解可能還是會很片面。

      最後,還得提一提兩個細節問題。
      關於電子版和紙版書的閱讀問題。有些朋友喜歡收藏電子版的好書,一收藏就是幾十上百本,可惜真正看完的可能是零頭。書是用來看的,這些放在硬碟裡不看的圖書,不如刪除更換為幾部AV短片(畢竟後者看的可能性要大得多)。但為什麼這些好書,卻不能好好閱讀呢?這也不能全怪讀者,而是電子版圖書天生有其不足之處。第一,它不方便攜帶,它一定要在電腦面前才能閱讀(特指有圖有代碼的編程技術電子書),不像紙質書那樣可以在地鐵公交甚至廁所裡閱讀;第二、長時間傷眼睛,書不同於短的文章,在電腦面前長時間閱讀很容易疲勞,特別是要學習技術的書,看紙質書會更舒服一些;第三、不方便批註,儘管有的軟體可以解決這問題,不過怎麼使用不如紙質書來得方便;第四、有些電子書不清晰,有可能直接是把原書掃描而得,這顯然無法和紙質書相比,閱讀情緒會產生很大影響。所以,只有在能完全克服這些困難的人才可以通過閱讀電子書來學習。不過現在老外的有些英文原版電子書製作得非常精良,在美元跌落卻依然購買不起紙質書的前提下,閱讀好的電子書也是不錯的選擇。

      關於圖書館借書還是自己買書看的問題。有句俗語叫“書非借不能讀也”。說的是因為自己的書,會有一種反正已經擁有,有空再讀的想法,造成反而很長時間都不去閱讀。而借的書因為有還期,所以抓緊讀的機會還更大一些。加之圖書館借書可以省很多買書的錢,所以去圖書館借書也是不錯的選擇。不過圖書館的書很難跟得上時代,很多都太老了,有些新書圖書館雖然引進了,但因為搶手也很難借得到,特別好書,基本都要碰運氣才行,加之有些書一個月外加一個月續借的時間很難讀完。所以借圖書館的書是好辦法,但有些書借不到時,還是要考慮購買。但盲目的購買圖書顯然不是好辦法。說到買書,不妨幾個同事相約買書,這樣可以平攤的購書的成本,另外網路購書優惠不少,也是不錯的選擇。

     總之,在國內的大環境下,讀書還是編程工作者提升技術能力的最好辦法。那麼上面所談到的問題,也就顯得非常的必要。希望本文可以給你的技術書閱讀有所協助,我的看法也可能有失偏頗,大家一起討論。但不管你是否同意,留句話,那儘管我花這麼幾個小時打字的勞動也甚感欣慰了。

關於閱讀技術類圖書的思考

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.