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