1. 程式人生 > >為什麼我們不再購買技術類書籍

為什麼我們不再購買技術類書籍

最近我處理了一批已顯得過時的技術書籍,它們中的大部分都是我剛開始從事程式設計師這份工作時買的(大約是2004年前後),它們也是我從一個菜鳥程式設計師走向成熟的見證吧。然而,在這次整理過程中,我卻發現自己已經有很長時間沒有購買新的技術類書籍了,最新的一本還是自己在兩年前買的一本《精通AngularJS》,而我也僅僅看了裡面感興趣的其中幾個章節,就放在書櫥裡沒再去碰了。是不是因為我在從事管理工作後對技術的熱情降低了呢,應該不是,現在我用於程式設計的時間反而比前幾年更多,而且我也更熱衷於嘗試不同的技術,並將它們進行有效地組合與創造。那麼又是什麼原因使我們越來越少購買技術類書籍了呢?

我們更喜歡通過線上視訊學習技術

比起以前只能通過書本獲取最新的技術知識不同,現在我們學習技術的途徑比以往任何時候都多,而線上視訊教程就是其中之一。視訊教程相較傳統的書本學習,有很多優勢,比如,真人講授的視訊教程能讓我們學得更加輕鬆,也更容易接受那些新的知識,而那些線上教學平臺提供的課後練習、測試以及線上問答系統,更為我們提供了良好的互動學習方式,這些顯然增加了我們學習的樂趣並提高了學習效率。

其實網路教育很早便在國外出現了,我們熟知的Lynda.com早在1995年便已成立,由一對夫婦Bruce Heavin和Lynda Weinman共同創立,視訊課程主要來自於行業專家、工作專業人士以及經驗豐富的老師,經過20多年的發展,課程內容已幾乎涵蓋了從軟體開發、圖形設計、攝影到如何經營自己的商業等教學內容。

而最近幾年,我們看到越來越多國內的線上教育平臺也來到了我們的身邊,包括慕課網網易雲課堂、中文版的Codecademy等等都成了我們學習技術的好去處。值得一提的是,雖然國內線上教育平臺發展的時間並不長,但卻已經成為很多開發人員們學習一項新技術的優先選擇,可見其發展速度非常之快。

通過線上文件進行學習

雖然視訊教程能夠幫助我們快速入門一項新的技術,但要深入理解和掌握這項技術,光靠線上視訊教程還是遠遠不夠的。過去,我們通常會買一些進階的,比如《XXX高階程式設計》、《XXX開發寶典》 這樣大而全的書來進一步深入學習。而現在,我們則更樂於先去網上找到那些合適的線上文件或電子書。而我建議大家首先閱讀是那些官方文件。近幾年,隨著不同技術間競爭的日趨激烈,一份完善的線上技術文件已經成為一項新技術是否能夠獲得流行的必要條件。因此技術的創造者或擁護者們(往往是首批使用者及技術社群創立者)也會更積極地去更新和維護好他們的線上文件,而為了滿足不同層級開發者的需求,這些文件細還會被進一步細分為:

  • 起步教程 Quick Start:有點類似於每個程式語言的Helloworld程式,往往會提供一個比較簡明的示例,並結合環境安裝、編譯、執行、測試等場景,讓你能夠快速使用這項技術做出一些簡單可執行的東西來。下面是AngularJS提供的Tutorial,通過一些簡單的步驟能夠做出一個有趣的Web APP來。

  • API文件:包含所有的API及相應的使用示例。所有這門技術相關的語法都能在這裡找到。如AngularJS、JQuery、Spring這樣做得比較完善的平臺,還能讓使用者根據不同的釋出版本進行選擇,找到你所需要的API說明。

  • 開發指南:針對開發人員的開發指南,包括那些核心元件的使用方法與建議。開發指南往往寫得全面而深入,能夠幫助開發人員更好地理解和使用這項技術。

雖然那些官方文件基本都是英文的,有些甚至還需要VPN或代理才能瀏覽,但我仍然建議大家從這些官方的技術文件開始學習。一方面,技術相關的英語詞彙量並不大,邊看邊學,你很快便能適應英語技術資料的閱讀,另一方面,比起那些由第三方出版的書籍,這些官方技術文件往往更加權威,更新速度也是最快的。

學會提問與尋找答案

當我們已經對一項技術入門,並結合那些教程做了相應的練習之後,就可以開始在實際專案中應用這項技術了。都說實踐是最好的老師,通過實踐,你將能夠很快深入地理解和掌握它。但實際應用一項技術,與做那些教程中簡單示例不同,你會遇到很多問題需要去逐個解決,我相信大部分的問題,你都可以通過那些線上文件找到,但還有一些你可能需要一些技巧去找到正確的答案。

  • 用搜索引擎搜尋:遇到問題時大家首先想到的一定是通過搜尋引擎進行搜尋,但我發現國內大部分程式設計師只習慣通過百度這一種搜尋引擎去搜索答案。而我個人認為,百度對開發人員並不那麼友好,它一般無法為你找到那些國外知名技術社群或網站上的優秀解答。因此,我總是喜歡使用Google(如VPN無法使用則改用Bing English)來進行搜尋,當然我會用幾個簡單的英文關鍵字來讓搜尋引擎幫我找到想要的答案,這些答案往往來自於stackoverflow這樣針對程式設計師的線上社群,相較於國內的CSDN,stackoverflow上的那些問題和解答總是顯得更加全面也更有價值。

  • 向身邊的人請教:如果你花了一些時間(比如幾個小時),沒能找到解決問題的辦法,而你所在的團隊也恰好都在使用這項技術,那麼你就應該嘗試尋求他人的幫助。我一般不建議大家一有問題就直接請求團隊成員的幫助,因為一方面頻繁打斷他人的工作,會影響他人的工作效率。另一方面,嘗試自己解決的問題總是印象更深,對自己深入掌握這門技術也更有幫助。總之,先嚐試自己解決,如果不行,選擇對方樂於接受的方式尋求幫助。

  • 在社群中提問:如果你還是無法找到你所想要的答案,那麼你還可以嘗試在技術社群中進行提問,比如剛才提到的Stackoverflow。你可以用簡單的英語來描述你的問題,然後儘可能地將相關的程式碼新增到你的問題中(為了便於閱讀,你不應該將無關的程式碼也新增進你的問題),很快就會有熱心的開發者為你提供他們的建議。在你解決問題之後,也別忘了及時對解答者給於肯定與感謝,這樣做能夠幫助那些和你有著相似問題的人快速獲得想要的解答。久而久之你會發現自己也成了社群的一份子,你從他人那裡獲得幫助,同時你也在幫助別人。(下圖stackoverflow中,提問者標識正確的答案)

追隨那些專家和他們的優秀技術部落格

當我們已經能夠掌握並熟練地運用一項技術時,我們離成為一名技術專家可能還差一步。而通過在社交平臺上追隨那些真正的技術專家,以及定期瀏覽他們所寫的技術部落格,能夠幫助我們更加深入地理解這項技術,並學著像那些專家一樣進行思考。

近幾年,國內出現了一些不錯的平臺,比如稀土掘金、慕課網、簡書、CSDN等等都推出了一些APP,我們能夠使用這些APP去關注我們所感興趣的主題或作者,而他們的最新教程或文章也能及時推送給我們進行閱讀。另外還有很多針對不同領域的微信公眾號都能給我們帶來幫助。但對於我來說,最喜歡使用的還是Twitter,因為Twitter上匯聚了大部分優秀的技術開發者,通過Follow其中的優秀者,以及一些不錯的官方賬號,我能夠非常同步地瞭解到他們的所思所想,以及他們所推薦的優秀內容。當然,我從不將他們視作權威,而更像是一些不認識的朋友,他們的觀點、技能和知識能讓我的視野保持與世界的同步,也能使我的頭腦避免因知識堆積而變得機械化,失去創造的能力。

我們仍需要買書

從一門新技術的誕生,到有作者將它編寫為書籍,再由出版社編印出版,最快也需要將近一年的時間,而在這一年中,這門技術可能經歷了數次版本更迭,甚至可能已經被另一門新的技術取而代之了,這樣的書在它還沒問世之前就已經過時了,又還有誰願意掏錢購買呢?

技術發展得太快了,以至於紙質書已經很難跟得上技術的發展了。雖然它們已經無法幫助我們學到那些最新的技術,但它們仍然是總結過去,給我們帶來智慧與啟示的最佳途徑。因此,我們仍需要買書。

這幾年我買的書中,大多都是那些人物傳記、實踐方法、設計思想類的書籍(我用了較多的時間來自學設計)、以及其他人文類書籍。通過閱讀人物傳記,比如《喬布斯傳》,我能瞭解那些時代大背景下最優秀的人是依靠哪些特質,又是通過什麼創新性的方法獲得巨大成功的。雖然我們可能無法像他們一樣獲得這樣的成就,但通過發現那些優秀的東西,並將它們運用到我們的工作中,也能使我們在那些自身關注的領域內獲得成功。而通過閱讀那些實踐方法,比如《精益創業》、《增長黑客》、《瘋傳》、《遊戲化思維》等等,能夠讓我更貼近所處的這個時代,從而作為一個匠人設計和開發出更優秀的產品來。而那些設計相關的,如《設計中的設計》、《為什麼設計》、《白》等設計大師的設計思想類書籍,則能讓我更深入理解設計的本質,提高自己對產品設計的判斷能力。當然除了這些專業書籍,我也會閱讀那些人文類的書籍,比如龍應臺的《野火集》、克里希那穆提的《生命之書》、星雲大師的《人生就是放下》等等,這些都能啟發我對社會、人生的感悟,給我帶來不一樣的智慧。


我們不再購買技術類書籍,取而代之的是,我們獲得了更多學習技術的途徑:線上互動式的學習,通過線上文件進行學習,在技術社群中學習。相信在不久的將來還會出現能真正打破傳統教育的線上直播教學、以及基於VA、VR等技術帶來的更奇妙的學習體驗。身處這樣一個技術日新月異,科技大爆發的時代,誰能通過各種資源更有效地學習,並且學得更快已經成為個人核心競爭力之一,但同時也千萬別忘了通過那些真正優秀的書籍去提高自己的修養與對社會、人生、生活的認識,這對你來說同樣重要。