關(guān)于編程,你的練習是不是有效的?
最近由于工作及Solution項目的影響,我在重新學(xué)習DDD和領(lǐng)域建模的一些知識。然后,我突然就相到了這個(gè)問(wèn)題,以及我是怎么做的?
本文引用地址:http://dyxdggzs.com/article/201704/346615.htm對于我來(lái)說(shuō),提升技能的項目會(huì )有四種:
純興趣驅動(dòng)的項目。即我的Idea列表上的一個(gè)個(gè)酷炫的項目,先滿(mǎn)足自己再說(shuō)。
理論驅動(dòng)的項目。這一類(lèi)的項目會(huì )比較少,因為我們需要牽強地驅動(dòng)出這樣的項目,然后以理論的方式驅動(dòng)它。
興趣結合理論型。有一個(gè)長(cháng)長(cháng)的Idea列表,難免有些時(shí)間會(huì )和將要學(xué)習的理論有很大的交集。這種的練習效果是最好的。
整合成文章、電子書(shū)。這一步主要是為了分享、鞏固知識點(diǎn)、討論。
簡(jiǎn)單地來(lái)說(shuō),就是:
刻意的理論練習
興趣實(shí)踐
兩種不同的走向,上面的第三點(diǎn)和第四點(diǎn),算是獲得一些更好的效果。開(kāi)始之前,讓我們再次討論一下情緒周期的問(wèn)題。
編程與情緒周期
如果你每天都有很多可支配的自由時(shí)間時(shí),你也會(huì )觀(guān)察出情緒周期這件事。
所謂“情緒周期”,是指一個(gè)人的情緒高潮和低潮的交替過(guò)程所經(jīng)歷的時(shí)間。
這種周期看上去就好像是一圖所示,但是總體上好像會(huì )長(cháng)一點(diǎn)。

這一點(diǎn)在我的GitHub上看起來(lái)就有點(diǎn)明顯了,至少它是一年的一個(gè)周期:

對于我來(lái)說(shuō),我會(huì )交替寫(xiě)代碼和寫(xiě)博客、電子書(shū)。因為它以一定的規律在迭代著(zhù):
適合寫(xiě)大量代碼的日子
適合學(xué)習理論的日子
適合玩游戲《文明》、看電影、睡覺(jué)的日子。一般來(lái)說(shuō),這種事件的出現天數比較少。
主要還是集中在前兩點(diǎn)上,代碼練習與理論學(xué)習。
練習與計劃
持續性
對于練習來(lái)說(shuō),需要保持相當高的持續性。很明顯的一點(diǎn)是,參考我的GitHub的連擊。對于我的連擊來(lái)說(shuō),主要有下面的兩個(gè)意圖
裝逼
驅使不斷自己練習
如果有一個(gè)很好的動(dòng)機來(lái)驅動(dòng)自己去練習編程,那么GitHub的連擊就是一個(gè)很好的入口。當然,GitHub已經(jīng)不再顯示連擊多少天了。
在我們達到所謂的10000小時(shí)之前,我們還需要這么久:

這只算上了工作上的時(shí)間,如果我們還有一半的時(shí)間也在練習上面,那么就會(huì )縮短為2.4年?
答案是:不可能!
懷孕需要10 個(gè)月,但是顯然即使10 個(gè)人同時(shí)努力,也不能在一個(gè)月內生下孩子。
為了保證更好的練習效果,我們需要在每次短暫的時(shí)候之后,休息一段時(shí)間。為了實(shí)現這個(gè)我們可以用兩種方式:
多喝水。無(wú)論是學(xué)習還是工作,喝水總是有利于大腦思考,還有利于你多上廁所。多走動(dòng),可以防止你有各種職業(yè)病。
采用所謂的番茄工作法——可以找個(gè)借口讓自己休息。

不斷地休息,才能讓下一個(gè)練習走得更往,這樣才能保證好的練習效果。
練習之前,你需要知道三件事
練習要有計劃才會(huì )有效果的!
練習要有計劃才會(huì )有效果的!
練習要有計劃才會(huì )有效果的!
對于不同的類(lèi)型來(lái)說(shuō),你需要不同的練習計劃。
編程:使用新技術(shù)、新思想
在練習編碼的過(guò)程中,使用一些新的技術(shù)和新的編程思想可以幫助我們走出舒適區。當然如果你要在項目上用上新技術(shù)的時(shí)候,你也會(huì )采取相似的練習來(lái)做這樣的事。而這也是大部分人嘗試新技術(shù)的開(kāi)始,如在每個(gè)新的編程語(yǔ)言的入門(mén)手冊上,他們都會(huì )來(lái)一個(gè)經(jīng)典的:

然后我們就會(huì )做一些類(lèi)似的項目來(lái)快速上手這個(gè)語(yǔ)言,如以前我們用Java實(shí)現了一個(gè)Blog系統,我們就可以用Node.js實(shí)現一個(gè)Blog系統。同樣的,我們也很容易將其應用到不同的語(yǔ)言環(huán)境中。
假定,你在A(yíng)項目上使用了Java語(yǔ)言,而你們的新項目使用了是類(lèi)似于A(yíng)的業(yè)務(wù),那么你就可以采用新技術(shù)或者思想來(lái)實(shí)現。
理論:練習和總結
理論本身有可能很難理解,從而很難應用。因此,在學(xué)習理論的最好方式還是應用,而要構建一個(gè)好的場(chǎng)景并不是一件容易的事。
我們需要不斷地探索過(guò)別人實(shí)踐過(guò)的一些例子,模仿一些相似的用法,然后創(chuàng )建自己的類(lèi)似的項目。同樣的,我們還是可以基于我們以前實(shí)踐過(guò)的項目,在那之上做一些改進(jìn)來(lái)學(xué)習理論知識。
理論還有一點(diǎn)比較麻煩的是,記住它。在我們練習了很多之后,我們可能很快地就忘記它了。因此,你需要筆記或者博客來(lái)做這樣的事。
不過(guò),我還是覺(jué)得博客比私有化的筆記會(huì )有一點(diǎn),好的東西應該分享出來(lái)。既然你都已經(jīng)保存了,那說(shuō)明它很重要。既然它對你很重要,那么它也對別人很重要,要不你怎么會(huì )保存呢?
最好是能寫(xiě)一些文章來(lái)發(fā)現自己了解了多少,如果是一系列的理論,那么就可以整理成電子書(shū)了。
評論