我們作為開發者,需要時刻跟上技術的步伐。我們每天都在學習各種編程語言、框架、庫,似乎我們知道的工具越多,我們的生活就會更美好。
我們樂于在Angular、React、Vue、Riot、Ember、Knockout之間輾轉騰挪,學習一個又一個新的框架。
但我們其實在浪費時間。
我的導師曾經給我上了一課:
導師:"艾德,你在做什么? "
我(很驕傲地)說:"我在看一本關于構建現代Java應用的GWT書。"
導師:"為什么?"
我:"作為一個Java工程師,我需要跟上時代的步伐,GWT現在最流行啊"
導師:"你之前看的什么書?"
我:"一門長達500頁的Apache Tapestry書,當年Tapestry最流行"
導師:"現在還流行嗎?"
我:"不流行了,被GWT替代了"
導師:"你還能用Tapestry的技術去構建應用嗎?"
我:"不,現在已經沒人用了"
導師:"Tapestry相關知識幫助你更好的理解GWT了嗎?"
我:"沒有,但我看到了一些相同的設計模式"
導師:"這些設計模式,能幫你解決現在遇到的問題嗎?"
我:"當然,很多啊"
導師:"技術來了又去,仿佛潮起潮落,但是他們有很多相同之處。你應該調整自己的時間優先級,花80%的時間在基礎和原理上,20%的時間留給框架、庫和工具,而不是80%的時間都用在研究框架的使用上。"
我:"額...,只花20%的時間在框架、庫和工具上?"
導師:"是的,當在工作中遇到具體的問題,你再學習他們。"
我:"謝謝"
導師:"你以后會更感謝我的。"
這個建議改變了我的一生。我書架上關于框架的書逐漸從50本減到0本,真正的解放了自我!
我買了一些真正的長青書(不隨技術的更迭而消失的書),這些書占據了我80%的學習時間:
我只學當前最流行的一門技術,按照Lindy效應的建議,我選擇了Spring框架:
對易損的東西來說,每多活一天,都會縮短其壽命;相反的,對于不易損的東西來說,每多活一天,都將更拉長其存在壽命
一門技術在市場上存活的時間越久,越值得投資。
不要盲目的學習最新的技術,他被淘汰的風險極高。
學習等待,時間是最好的顧問,時間會告訴你哪一個技術值得學習。
時光荏苒,轉眼10年。在此期間,我已經做過大大小小50多個項目,多虧這個建議,使我學到的每一個知識都能應用在不同的公司、團隊和領域。而且現如今依然適用,我沒有浪費時間!
當你看透編程的本質,你就會發現不同項目有很多相同之處:
· 編程語言不同,但編程思想相同
· 使用框架不同,但設計模式相似
· 開發者不同,但是處理問題的邏輯相通
請記住——框架、庫和工具如每天東升西落的太陽,來了又去,但是我們的時間卻一去不復返。
請將你的時間花在那些不隨語言、框架、工具變化而失去魅力的編程能力和思想上吧,這會讓你終身受益。