天天看點

Java開發者,請停止學習架構

假設你面前有兩個應聘者,一個對架構特别熟,但是對基礎知識一點都不懂;另一個對架構一點都不熟,但是基礎知識特别懂。

你會雇傭誰?

小公司雇傭前者,能用就行。大公司雇傭後者,能堪重任。

對于程式員,你應該知道

程式設計語言不同,但設計風格相似

架構不同,但有類似的設計模式

開發人員不同,但與人打交道的原則卻是一緻的

永遠記住,架構、庫和工具的更替永不停息,而你的時間很寶貴。

一定要把你最寶貴的時間投入到可遷移的技能上。也就是說,在那些始終會用得到的技能上下最多的功夫,比如下面這些内容,可能會讓你長期受用。

不要學習微服務架構,學習演進式架構(Evolutionary Architecture)。

不要學習新的程式設計語言,學習代碼整潔之道、設計模式、領域驅動設計(DDD)。

不要學習 LeSS 和規模化靈活架構(SAFe),學習精益生産原則(Lean manufacturing principles)。

不要學習 Hystrix,學習容錯模式(Fault Tolerance Patterns)。

不要學習 Docker,學成持續傳遞。

不要學習 Angular、React 和 Vue,學習 Web、HTTP 和 REST。

下面這類書就占據了我閱讀學習時間的80%:

程式員修煉之道 The Pragmatic Programmer

代碼整潔之道 Clean Code

程式員的職業素養 The Clean Code

領域驅動設計和實踐 Domain-Driven Design

測試驅動的面向對象軟體開發 Growing Object-Oriented Software, Guided by Tests

持續傳遞 Continuous Delivery

我隻買了一本關于最新技術的書,是關于 Spring 的。因為根據林迪效應,學習 Spring 是一項不錯的投資。

林迪效應認為,對于不會自然消亡的事物,如一項技術或一個想法,其預期壽命與其目前的生命成正比;即,隻要這一事物多存活一天,就意味着其預期生壽命會更長一些。

技術的未來預期壽命與其目前的“年齡”成正比,技術每延長存續一段時間,其剩餘生命周期也會相應延長。

越是在市場上持續存活時間長的技術,投入時間學習越安全、越值得。

我的授業導師曾經教我這樣一課:

導師:“艾德,你在做什麼?”

我(自豪地說):“我在讀一本使用GWT建構現代Java應用程式的書。”

導師:“你為什麼要讀這本書?”

我:“作為一個Java開發者,我需要緊跟趨勢,GWT現在最火。”

導師:”在讀GWT之前你在讀什麼技術書?“

我:”是一本500多頁的Apache Tapestry的書,Tapestry當時非常流行“

導師:”這個Tapersty一直流行嗎?“

我:”沒有多長時間。GWT現在最火。“

導師:”你能重新用Tapersty的能力來解決現在的問題嗎?“

我:”不能了。現在它沒有什麼用。“

導師:”Taperstry的知識能幫你對GWT了解的更好嗎?“

我:”不能,沒有太大用。但是我看到裡面有一些設計模式有些相似“

導師:”是設計模式。這些能幫你解決現在的問題嗎?“

我:”是的,幫助太多了。“

導師:”技術一直在向前發展。但是有一些是相通的,要找準重點,将80%的時間放在提升基礎問題上,餘下的20%再去學習架構,庫和工具“

我:”Hmmm... 隻留20%的時間學習架構,庫和工具?“

導師:”是的。你在解決問題時自然就會學會架構、庫和工具“

我:”謝謝指點“

導師: 現在不忙着謝,過一段時間,你自然會明白。

不要忙着去學習最新的技術,因為這些新技術很可能很快消亡。

時間會告訴你,哪種技術值得投入精力去學習,時間是你最好的顧問,學會等待是很重要的。

本文轉自公衆号java思維導圖

原文連結:

https://mp.weixin.qq.com/s/KmkCCiYjGYiAj857FrA4Wg

繼續閱讀