學習一項技能要花多少時間?

轉載自: Rei(Ruby-China 創始人)   http://chloerei.com/2013/12/12/how-long-does-it-take-to-learn-a-skill/

前不久,一個技術 party 上有人問我:“我學習 Rails 已經2個月了,但還是對整個開發流程缺乏清晰的瞭解,我應該怎麼學呢?”這不是個別現象,在 ruby-china.org 上也經常有人發帖,說自己學習了 1個月、2個月、半年了,還是不太清楚 Rails 的很多細節,不知道應該怎麼學。

看到這樣的提問,我第一反應是他/她們對自己的要求是不是太高了? 


我學得很慢

我從沒有什麼 Web 基礎開始直接學 Rails 框架,到找到一份 Ruby 程序員的工作用了2年半。此後在正職工作上編程1年半,自由職業編程9個月。現在我考慮開發什麼的時間已經比要怎麼開發多了,這個過程用了4年半。

如果平均每天有效利用時間是3小時,至今已經接近了5000小時的量,按照10000小時到專家的理論,我還有另一個4年半要學習,我感覺這個估算還是比較準確的。

我當然不是隻學習一個工具,同時也學習前端、UI 設計、運維……但不會前3年學開發,後3年學設計分得這麼清楚。有時我又會看看跟已有知識完全重合的工具,比如 Python 和 Nodejs,以免錯過什麼。總的來說,到現在的程度用了4年半,覺得自己學得慢的朋友,可以以此作爲參照。


不是天才

大學畢業以後最讓我失望的一件事,就是發現自己不是天才。我身上沒有特殊才能,跟大部分人一樣,這多麼令我沮喪!

世界上確實有些天才,像是 26 歲獲得 Best Hacker 稱號然後去開賽車,或是 21 歲環遊世界同時成爲 O'Reilly 的作者。而我只能坐在小房間裏面做一些不知道有沒有人需要的軟件,看來“奇蹟”是不會發生在我身上的了。

我經常犯低級錯誤,例如花一個下午發現一個拼寫錯誤引起的 bug,或者花一兩天時間搞明白一個問題,興奮過後又沮喪,爲什麼花了這麼多時間在這些淺顯的問題上。

那麼,既然我不是天才,就不要用天才標準要求自己了。花多少時間都好,解決一個問題就是一個收穫。不再只看着那些天才,而是把昨天的自己作爲競爭對手,今天比昨天有進步,那麼這一天就是有意義的。笨人有笨辦法,一步一個腳印往上爬。

能解決問題不是因爲天資聰穎,而是因爲已經花時間實踐過了。如果有什麼問題還解決不了,那是因爲實踐得還不夠。


學習效率指數上升

萬事開頭難,對於技能學習也適用。起步的時候,不懂的地方太多,每解決一個問題都會引出很多新問題。隨着知識面的增大,接觸到的新知識也會隨之增多,你會感覺自己永遠學不完。

但隨着知識積累的增多,吸收知識的速度也會加快,你會逐漸成爲“花一個下午看文檔瞭解基本用法”俱樂部的一員。這不需要什麼魔法,你只要遇到一個問題,解決一個問題,效率自然會提升。我現在每半年學到的新知識的價值都等於過去學到的知識價值總和。

所以在入門階段感到焦慮時,請從容的接受它,並且堅持下去,每個人都有這個階段。如果你之前已經有1、2年的編程經驗還是感到焦慮,那是因爲之前的視野太小,現在就是踏入新天地的好時機,不要原地踏步。

當你拿出幾個月前的代碼,發現自己寫得超爛的時候,那麼恭喜你,你進步了!


最後

課時觀念在真實世界不適用,在學校裏之所以可以一個學期學習好幾門課,是因爲只需要學到應付考試的程度,這種知識是不可靠的。真正掌握一項技能,需要長時間的實踐,或者說,需要終生學習。

沒有人告訴你要走什麼路線,什麼時候前進,什麼時候停止,一切都取決於你自己,志向決定高度。但也正是這麼多的未知和可能性,產生了這麼多的樂趣。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章