怎样学习和阅读技术书籍?
技術的更新換代非常的迅速,作為一個技術人,需要持續不斷地學習才能不被淘汰。但是學習沒有速成的方法,只可能有一些技巧讓我們事半功倍,本文是我對學習和讀書的一點思考。
學習是一件「逆人性」的事,如果讓你選擇是學習枯燥的技術,還是躺在沙發上看電視或者打游戲,相信很多人都會選擇后者,想要克服學習的困難和人的惰性,我們就需要給自己設定目標。
目標
5年想要達到年薪50萬,需要做些什么?
3年要讓自己具備架構師的能力,需要怎樣去規劃?
想要管理一個團隊,又該如何去提升自己?
總之先要定一個短期或長期的目標,如果是長期的,還可以再分解成一個個小的目標,通過目標一步步反推到當下,然后制定好計劃,行動就可以了。當能夠完成一個個小目標后,就不會覺得那么的「逆人性」了。
同學習一樣,我覺得跑步也是件「逆人性」的事,我的方法是,我先報一個幾個月之后的馬拉松比賽,然后反推,要能完成這個比賽,我一個月大概要有多少跑量,多長時間要能完成5公里,多長時間能達到10公里,像這樣跑步就持續下來了。有人會說,我報了馬拉松比賽,也可以不去參加呀,這也需要我們自己去找一些不可抗拒的因素,比如:
報名馬拉松,是需要報名費的,總不能讓錢打水漂吧
馬拉松是需要抽簽的,如果能中簽,這種幸運總不能浪費吧
早早的就發個朋友圈,總不能等著放棄后打臉吧
同樣的道理用在學習和讀書中也是適用的。
主動學習和被動學習
現在獲取知識的方法和途徑越來越多了,視頻、書籍、博客、公眾號、官方文檔等等,當我們要學習一門新的編程語言或技術時,我認為書籍是最系統的,一本好的書可以讓我們知其然也知其所以然,主動系統地去學習某個知識領域,這是我所理解的主動學習。
而被動學習與之相反,常常是在工作中遇到問題,或者需要引入一個新的技術的時候,臨時去網上查,然后進行各種嘗試,以程序能跑通為終極目標,并沒有理解背后的原理,這樣臨時找到的一些代碼或方案極大可能不是最優解,也會給后人留下大坑。
我個人比較喜歡主動學習,在探究技術細節的時候,可以知道以什么方式來實現便于擴展和維護,又能性能最好;在技術選型的時候,可以不用盲目聽網上的人云亦云,有自己的思考和判斷。好的書籍和官方文檔是我認為能比較好系統學習的方式。
技術書的分類
讀技術方面的書籍,不能像看武俠小說一樣,如果只是為了完成讀書量的任務,囫圇吞棗的通讀一遍,起不到任何作用,還浪費了時間。我把技術書籍分為了三類:原理型、實戰型、和工具型。
原理型
不會隨著時間的推移而過時的技術書籍,我歸為原理型,像《設計模式》、《CLR via C#》、《重構》等都屬于此類,這一類書籍需要反復多次的閱讀,隨著經驗的增長,不同時期讀,會有不同的體會,最終要達到的就是能將知識融會貫通。
實戰型
實戰型的書籍,隨著時間的推移,技術的發展,書里的內容會過時,所以我更推薦的是看相關的官方文檔,因為得到的是第一手資料。像In Action系列叢書就是屬于實戰性。
實戰型的書通常章節的前后有較強的關聯性,適合從前往后看,而且并不能只是看,要配合書中的講解做相應的代碼演練。
工具型
工具型的就比較簡單了,目的型很強,用于查閱,我們可以先了解目錄結構,然后泛讀全書,沒有必要去強行記憶,主要是要了解書中都提供了那些方面的知識結構,以便于在需要用到的時候,能夠快速地檢索到。熟能生巧,用到次數多了自然就記住了。
閱讀方法
閱讀技術書籍,目的是為了獲取某方便專業的知識,我自己在讀技術書籍的時候用到了下面的一些方法。
讀前先提問
一本書拿到手后,我一般會先看目錄和書結構的講解,如果章節之間沒有連續性,那就可以挑自己感興趣的章節開始閱讀。
閱讀前,先可以問自己幾個問題:
如果是涉及過的內容,現在的理解是什么?
如果是全新的知識和概念,那么通過這個章節的學習,要能達到什么目的?
然后在閱讀的時候,就可以帶著這些問題去閱讀和思考。比如我們閱讀《Javascript高級程序設計》的7.2小節,這一小節是講閉包,假設我完全不懂閉包,那么我的問題如下:
閉包的概念是什么?
閉包用代碼是如何實現的?
什么場景下我們需要使用閉包?
閉包有副作用嗎?
然后帶著問題去尋找答案。
讀中做筆記
俗話說,好記性不如爛筆頭,在閱讀中根據自己的理解做一些記錄,形成自己的知識脈絡。這里我推薦使用思維導圖來做筆記。
閱讀完成時,一張適合你的知識圖譜就同步繪制完成。再加以整理,就是一篇適合初學者的入門文章了。當我們能講一個知識以口頭或文字的方式表達出來的時候,說明真正的掌握了。
讀后復盤
對于新的知識,讀前的提問,可能你閱讀完書籍中所有相關介紹,也沒有能完全找到答案,沒關系,我可以再通過網絡搜索,或同類書籍交叉來作為補充,
對于接觸過的知識,讀完后,我們可以看看自己之前的理解和書中的介紹是相吻合還是有分歧,如果覺得書中介紹的還有欠缺,同樣可以采用其他的方式來作為補充。
總之我們的目的是要獲取知識,而不是「讀完書籍」。
總結
以上是生活随笔為你收集整理的怎样学习和阅读技术书籍?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET Core - 基于IHt
- 下一篇: 【译】C#9的候选功能