寫給技術人員:停止學習框架,要專注基礎知識
作為一名開發人員,需要不停地學習新技術。那么,我們應該學習什么樣的技術?關于這個話題,有著 15 年工作經驗的軟件工程師 Eduards Sizovs 寫了一篇文章,讓我們來看看他是怎么說的吧~
我們是開發者,我們需要掌握***的技術。我們每天學習編程語言、框架和庫。我們知道的工具越新越好。
但這一切都是在浪費時間!
時間是我們擁有的最寶貴的資源。時間是有限的,不可更新的,并且是你不能買到的。
科技就像時尚一樣,它也在以光速變化。為了趕上時間的變化,我們需要跑得很快。這場比賽沒有贏家,因為它沒有終點。
有一次,我的導師給我上了一堂課。
導師:「Ed,你在做什么?」
我(驕傲地說):「我在閱讀一本關于如何用 GWT 構建現代 Java 應用程序的書。」
導師:「為什么?」
我:「作為一名 Java 開發人員,我需要緊跟時代趨勢。GWT 是我必須跟進的技術。」
導師:「在學習 GWT 之前,你讀了什么技術書籍?」
我:「一本 500 頁的關于 Apache Tapestry 的書,Apache Tapestry 也是需要學習的知識。」
導師:「那現在你還學習 Apache Tapestry 嗎?」
我:「不了,現在我學習 GWT。」
導師:「那你能用 Apache Tapestry 相關的技術,解決現在遇到的問題嗎?」
我:「不能,它已經不會被用到了。」
導師:「Apache Tapestry 技術能幫助你更好地理解 GWT 嗎?」
我:「不,并沒有,但我看到了一些重復的模式。」
導師:「這就是設計模式。它能幫助你解決目前的問題嗎?」
我:「是的,很多都能。」
導師:「技術變了又變,但它們都有共通性。正確地設置優先級:你需要把 80% 的時間花在基礎學習上,然后剩下 20% 的時間留給框架,庫和工具的學習。」
我:「只有 20% 的時間留給框架、庫和工具?」
導師:「是的,在以后解決工作相關問題的過程中,你隨時都會學習到這些。」
我:「謝謝。」
導師:「你以后會更加感謝我。」
這一建議改變了我的人生。我把書架上所有和框架相關的書都移走了:從 50 本變為 0 本。多么大的改變!
我買了一套基礎書籍。這些書占據了我 80% 的學習時間:
-
The Pragmatic Programmer
-
Clean Code
-
The Clean Coder
-
Domain-Driven Design
-
Growing Object-Oriented Software, Guided by Tests
-
Continuous Delivery
我還買了一本關于當前技術的書,學習 Spring 框架是一項良好的投資:
技術的未來預期壽命與其當前存在時間成正比,每一段額外的生存期意味著更長的剩余預期壽命。
技術存在的時間越長,學習它就越安全。
不要急于學習新技術——它有很高的消亡概率。
時間是***的導師,它會證明哪些技術值得學習,所以請學會等待。
十年過去了,我經歷了 50 個不同的軟件項目。感謝這些建議,我學到的所有東西都可以跨公司、團隊、跨領域使用。今天,我所學的知識仍然有用。我沒有浪費時間。
只有深入研究項目的本質,你才會發現它們都是相似的:
-
編程語言是不同的,但設計是相似的。
-
框架是不同的,但設計模式是可以通用的。
-
開發者是不同的,但與人打交道的規則是統一的。
記住——框架、庫和工具是會變化的。時間是寶貴的。
請將寶貴的時間花在可移植的技能上:
-
微服務框架進化體系結構
-
新的編程語言,干凈的代碼,設計模式,DDD
-
量少安全精簡編碼原則
-
高端、容錯的模式
-
容器持續交付
-
Angular 網頁、HTTP 和 REST