關于編程,你的練習是不是有效的?
最近由于工作及Solution項目的影響,我在重新學習DDD和領域建模的一些知識。然后,我突然就相到了這個問題,以及我是怎么做的?
本文引用地址:http://cafeforensic.com/article/201704/346615.htm對于我來說,提升技能的項目會有四種:
純興趣驅動的項目。即我的Idea列表上的一個個酷炫的項目,先滿足自己再說。
理論驅動的項目。這一類的項目會比較少,因為我們需要牽強地驅動出這樣的項目,然后以理論的方式驅動它。
興趣結合理論型。有一個長長的Idea列表,難免有些時間會和將要學習的理論有很大的交集。這種的練習效果是最好的。
整合成文章、電子書。這一步主要是為了分享、鞏固知識點、討論。
簡單地來說,就是:
刻意的理論練習
興趣實踐
兩種不同的走向,上面的第三點和第四點,算是獲得一些更好的效果。開始之前,讓我們再次討論一下情緒周期的問題。
編程與情緒周期
如果你每天都有很多可支配的自由時間時,你也會觀察出情緒周期這件事。
所謂“情緒周期”,是指一個人的情緒高潮和低潮的交替過程所經(jīng)歷的時間。
這種周期看上去就好像是一圖所示,但是總體上好像會長一點。
這一點在我的GitHub上看起來就有點明顯了,至少它是一年的一個周期:
對于我來說,我會交替寫代碼和寫博客、電子書。因為它以一定的規(guī)律在迭代著:
適合寫大量代碼的日子
適合學習理論的日子
適合玩游戲《文明》、看電影、睡覺的日子。一般來說,這種事件的出現(xiàn)天數(shù)比較少。
主要還是集中在前兩點上,代碼練習與理論學習。
練習與計劃
持續(xù)性
對于練習來說,需要保持相當高的持續(xù)性。很明顯的一點是,參考我的GitHub的連擊。對于我的連擊來說,主要有下面的兩個意圖
裝逼
驅使不斷自己練習
如果有一個很好的動機來驅動自己去練習編程,那么GitHub的連擊就是一個很好的入口。當然,GitHub已經(jīng)不再顯示連擊多少天了。
在我們達到所謂的10000小時之前,我們還需要這么久:
這只算上了工作上的時間,如果我們還有一半的時間也在練習上面,那么就會縮短為2.4年?
答案是:不可能!
懷孕需要10 個月,但是顯然即使10 個人同時努力,也不能在一個月內(nèi)生下孩子。
為了保證更好的練習效果,我們需要在每次短暫的時候之后,休息一段時間。為了實現(xiàn)這個我們可以用兩種方式:
多喝水。無論是學習還是工作,喝水總是有利于大腦思考,還有利于你多上廁所。多走動,可以防止你有各種職業(yè)病。
采用所謂的番茄工作法——可以找個借口讓自己休息。
不斷地休息,才能讓下一個練習走得更往,這樣才能保證好的練習效果。
練習之前,你需要知道三件事
練習要有計劃才會有效果的!
練習要有計劃才會有效果的!
練習要有計劃才會有效果的!
對于不同的類型來說,你需要不同的練習計劃。
編程:使用新技術、新思想
在練習編碼的過程中,使用一些新的技術和新的編程思想可以幫助我們走出舒適區(qū)。當然如果你要在項目上用上新技術的時候,你也會采取相似的練習來做這樣的事。而這也是大部分人嘗試新技術的開始,如在每個新的編程語言的入門手冊上,他們都會來一個經(jīng)典的:
然后我們就會做一些類似的項目來快速上手這個語言,如以前我們用Java實現(xiàn)了一個Blog系統(tǒng),我們就可以用Node.js實現(xiàn)一個Blog系統(tǒng)。同樣的,我們也很容易將其應用到不同的語言環(huán)境中。
假定,你在A項目上使用了Java語言,而你們的新項目使用了是類似于A的業(yè)務,那么你就可以采用新技術或者思想來實現(xiàn)。
理論:練習和總結
理論本身有可能很難理解,從而很難應用。因此,在學習理論的最好方式還是應用,而要構建一個好的場景并不是一件容易的事。
我們需要不斷地探索過別人實踐過的一些例子,模仿一些相似的用法,然后創(chuàng)建自己的類似的項目。同樣的,我們還是可以基于我們以前實踐過的項目,在那之上做一些改進來學習理論知識。
理論還有一點比較麻煩的是,記住它。在我們練習了很多之后,我們可能很快地就忘記它了。因此,你需要筆記或者博客來做這樣的事。
不過,我還是覺得博客比私有化的筆記會有一點,好的東西應該分享出來。既然你都已經(jīng)保存了,那說明它很重要。既然它對你很重要,那么它也對別人很重要,要不你怎么會保存呢?
最好是能寫一些文章來發(fā)現(xiàn)自己了解了多少,如果是一系列的理論,那么就可以整理成電子書了。
評論