閱讀技術(shù)文章可以說是我們程序員的日常之一吆鹤,Peak 君每天也會進行定量的閱讀厨疙。特寫一篇小文分享下心得,介紹下過去幾年檀头,在糾正閱讀習慣上所做的一些努力和取得的成果轰异,或許可以幫助一些朋友,節(jié)省少許閱讀時間暑始,提升一點學習效率。
差不多兩年前婴削,我開始搭建 Android 相關(guān)的知識體系廊镜。最開始的想法是從基礎(chǔ)知識的積累開始,正好這幾年社區(qū)的技術(shù)分享盛行唉俗,「掘金」嗤朴、「開發(fā)者頭條」、「簡書」等渠道上每天都有大量的新文章發(fā)布虫溜,文章主題五花八門雹姊,內(nèi)容深淺不一,看上去都很不錯衡楞≈ǔ可堅持讀了幾天之后,深感自己踏進了錯誤的方向瘾境,讀過的比較有代表性的一篇文章是:「關(guān)于 Service 你所需要知道的一切」歧杏,文章內(nèi)容的質(zhì)量遠低于標題所勾起的預期,無非是把官方文檔里的幾個知識點做下摘錄迷守,有些地方反而因為摘錄不全導致邏輯不連貫犬绒,順藤摸瓜找到出處之后,發(fā)現(xiàn)官方文檔才是我的救贖兑凿。
最初學習 iOS 的時候凯力,也走過類似的彎路,急于在短時間內(nèi)掌握要點礼华,急于能盡可能快的開始寫代碼咐鹤,所以略過了看上去冗長繁瑣的官方文檔,轉(zhuǎn)而搜索各類總結(jié)文章以求速成卓嫂,結(jié)果是所有心存僥幸投機取巧跳過的知識點慷暂,都會在某一天變成一個個費時費力去填的坑。
對于基礎(chǔ)知識框架的搭建,沒有比官方文檔更好的起點了行瑞。當然官方文檔太過全面奸腺,無法在一開始就通讀一遍。正確的做法是血久,在計劃深入某一塊知識域之前突照,先讀一遍與之相關(guān)的官方文檔,如果還有疑惑再去其他渠道搜索相關(guān)知識點氧吐,做進一步的深入發(fā)掘讹蘑,這就涉及到下面有關(guān)「精讀」的話題。
從這一角度來說筑舅,上面提到的三個渠道座慰,對于基礎(chǔ)知識的積累,閱讀價值并不高翠拣,很有可能版仔,整篇讀下來都是些零零碎碎已知的知識點,收效甚微误墓,絕大部分文章都是標題驚艷蛮粮,內(nèi)容單薄。當然不排除偶爾會遇到一些高質(zhì)量的深度好文谜慌,但這些好文大多是轉(zhuǎn)載的然想,是有自己的發(fā)布渠道的。按我以往經(jīng)驗觀之欣范,好文是稀缺資源变泄,數(shù)量稀少且發(fā)布渠道穩(wěn)定,比如一些類似 bugly 這樣的大廠對外渠道熙卡,國內(nèi)外一些優(yōu)秀的博客寫作者杖刷,或者是偶爾在微博上被大量轉(zhuǎn)發(fā)的文章。這些渠道都可以被分門別類的裝進瀏覽器的收藏夾驳癌,無需每次去「掘金」這類的渠道做大海撈針式的搜索滑燃。
閱讀行為一般可以劃分為兩類:泛讀、精讀颓鲜。技術(shù)類的文章閱讀也不外如是表窘,不同點在于,技術(shù)閱讀應該重精讀甜滨,輕泛讀乐严。技術(shù)知識的價值能否得以體現(xiàn),關(guān)鍵在于最后是否在閱讀者的記憶里得以沉淀衣摩。泛讀行為很難形成有效且深刻的記憶昂验,但偏偏泛讀較之精讀要輕松很多,所以很多初學者習慣性的去做大量的泛讀行為,看標題感興趣就點進去瀏覽既琴,一天下來能讀好幾篇占婉,最后形成收獲頗豐的錯覺,這其實是一種潛意識下的偷懶行為甫恩。這種閱讀行為中收獲的知識逆济,別說難以在實際項目中去應用,就是在面試中聊聊都是不能磺箕。這條彎路 Peak 君也走過奖慌。
在精選、形成完自己特有的閱讀渠道之后松靡,我們應該調(diào)整自己的閱讀行為简僧,盡量強迫自己去做精讀,去深入挖掘击困、消化自己認可的深度好文涎劈。一篇技術(shù)好文,一天能消化干凈算得上奢侈了阅茶,有些文章需要陸陸續(xù)續(xù)讀上一個星期也是可能的。精讀一篇文章確實會比較辛苦谅海,但你想想脸哀,寫文章的人更辛苦,不光要理解文中所談的各個知識點扭吁,還需要做串聯(lián)歸納以成體系撞蜂,精讀一篇深度好文就是一次和某個領(lǐng)域的專家做深入交流的機會,只是草草的瀏覽一遍而錯過一次寶貴的加深知識域的機會豈不可惜侥袜。如果文章主題和當前自己的關(guān)注點切合蝌诡,讀起來越是費力的文章,其價值也越高枫吧。簡而言之浦旱,技術(shù)類文章閱讀,是宜少不宜多九杂,宜靜不宜泛颁湖。
相信不少人閱讀技術(shù)文章時,都有過類似的體驗:在文中發(fā)現(xiàn)一個陌生的術(shù)語例隆,轉(zhuǎn)而 google甥捺,搜出更多的術(shù)語或者相關(guān)文章,于是切換到新的環(huán)境中去繼續(xù)閱讀行為镀层,有時會如此反復跳躍幾次镰禾,最后瀏覽器上的 tab 越來越多,感覺文章根本讀不完。
這是由于技術(shù)的知識體系往往是個樹形的結(jié)構(gòu)吴侦,單個術(shù)語下都有其相關(guān)的知識域屋休,可以一層又一層牽扯出更多的子術(shù)語。在閱讀文章遭遇這種樹形結(jié)構(gòu)的時候妈倔,要能抑制住自己不停探索的欲望博投,對于技術(shù)術(shù)語的學習只做適度延伸,最終的目的還是在于完成根部文章的閱讀盯蝴。Peak 君的閱讀習慣是只做一到兩層的延伸毅哗,比如剛開始學習 ReactiveCocoa 的時候,接觸到函數(shù)式編程捧挺,了解函數(shù)式編程又挖出了 pure function虑绵,pure function 又包含若干其他的概念,可以持續(xù)的深入下去闽烙,但到 pure function 這一層之后其實就可以適可而止了翅睛,可以回過頭來完成原先的閱讀任務(wù)。
要克制對于知識的求索欲黑竞,有時也不容易〔斗ⅲ現(xiàn)實是,我們精力有限很魂,無法在每個領(lǐng)域都成為專家扎酷,看到優(yōu)質(zhì)深入的分享好文時,很容易產(chǎn)生知識的焦慮感遏匆,迫使自己去閱讀并無太大交集的話題法挨,這反而容易造成時間和精力上的浪費。不同技術(shù)人員之間幅聘,在知識的儲備量上其實不具備可比性凡纳,真正需要在意的是學習和解決問題的能力。
再者是對于閱讀時間段的選擇帝蒿。程序員工作時很容易被打斷荐糜,產(chǎn)品,設(shè)計陵叽,測試隨時都有可能找上門狞尔,做深度閱讀時一旦中斷,閱讀效果會大打折扣巩掺。我們應該根據(jù)自身的情況偏序,盡量選擇沒人打擾的時間段來做閱讀,可以是早上剛到公司胖替,或者別人午睡時研儒,總之越安靜豫缨,越?jīng)]人找越好。
最后一點端朵,可以從慌不擇食的技術(shù)文章閱讀時間里好芭,多摳出一些來,完完整整的閱讀一些大部頭的英文原版技術(shù)書冲呢,這才是知識學習的正餐舍败,別人寫的零散文章更適合作為飯后甜點。比如 Peak 君經(jīng)常推薦的 【TCP/IP 協(xié)議詳解】敬拓,這種經(jīng)典書籍邻薯,即使耗費一年的時間去閱讀,也遠遠強過讀一年別人所寫五花八門的技術(shù)文章乘凸。
說了這么多厕诡,提煉下摘要:對于基礎(chǔ)知識的閱讀,要重官方文檔营勤,切莫心急動手灵嫌,看完文檔形成知識體系后再寫代碼不遲。減少泛讀行為葛作,避免漫無目的的隨意瀏覽技術(shù)文章寿羞。注重精讀,一天一篇不算少赂蠢,一周一篇也正常稠曼。重閱讀質(zhì)量而非數(shù)量,挑選每天安靜且不易被打斷的時間點來閱讀客年,盡量多啃原版書。
一點小心得漠吻,全文完量瓜。