正解:《Java 程序員的黃金 5 年》看完我才知道當時有多蠢

在Java程序界流行著一種默認的說法叫“黃金5年”,也就是一個程序員從入職的時候算起,前五年的選擇直接影響著整個職業生涯中的職業發展方向和薪資走向。

如何走好這5年,徹底從一個剛入行的菜鳥蛻變成可以以不變應萬變的職業大牛,這是一個涉及到自身專業知識儲備和選擇的大難題。

那麼,這五年裡,一個Java程序員如何做才能完成從入行到大牛的晉升之路呢?

正解:《Java 程序員的黃金 5 年》看完我才知道當時有多蠢


一、程序員的“黃金五年”

(一)、初級 Java 工程師(1-2 年)

正解:《Java 程序員的黃金 5 年》看完我才知道當時有多蠢

初級Java 工程師需要基礎紮實,在精通 Java 之外,深入瞭解數據庫技術也是必選項。計算機原理和思維邏輯清晰,能幹活,在這段時間裡,想必對Java已經有了一個深入的瞭解。在工作過程中肯定接觸過併發,你應該更加深入地去了解併發的相關知識;要對所使用的框架和Java的類庫有一定的研究,還需要去看一些JDK中的類的源碼,包括你所使用的框架的源碼。

(二)、資深Java工程師(3-5 年)

正解:《Java 程序員的黃金 5 年》看完我才知道當時有多蠢

有3-5 年經驗的 Java 工程師,要求算法基礎和編程能力紮實,有分佈式、高併發經驗優先,可獨立負責一個模塊的開發。在技術上一專多能,不侷限於寫好 Java,還要觸類旁通,對公司業務所需的新技術能快速學習運用。如果你處於這個階段,說實話很難再提升代碼能力了,因為這個階段的學習會比較多樣化。因此如果你對某一項技術感興趣,這時可以深入去研究,這項技術不一定是你工作所用到的,但一定是相關的。

(三)、Java 專家/架構師(5 年及以上)

正解:《Java 程序員的黃金 5 年》看完我才知道當時有多蠢

技術專家階段,擁有成熟大廠的高併發、分佈式經驗很重要。各個公司對架構和專家型人才的要求與業務需求結合得更緊密,因此,除了吃透技術深度、高效解決技術團隊的技術難題、做好團隊分工之外,候選人以往的業務場景也要和公司相契合。

技術學到這個階段,很容易遇到瓶頸,而且往往達到一定程度後,你再深入研究的效果就真的微乎其微了,除非你是專門做學術研究的。

然而很可惜,大部分程序猿做不到這一步,那是科學家做的事情。這個時候提高影響力主要是影響力可以給你創造更多的機會,所以,你最大的任務是提高自己的影響力,為未來工作生涯做準備。

二、如何快速學習並精通

針對當前互聯網公司的技術需求以及結合主流技術,不少公司都很重視高併發高可用的技術,特別是一線互聯網公司,分佈式、JVM、Spring源碼分析、微服務等知識點已是面試的必考題,這些東西可能你們平時在工作中接觸過,但不夠熟練需要繼續學習。

(一)、如何分析經典源碼

正解:《Java 程序員的黃金 5 年》看完我才知道當時有多蠢

但是,會讀代碼的並不在多數,會讀代碼又真正讀懂一些大項目的源碼的,少之又少。因為它是兩個原因造成的:

1、我們在工作中都在強調怎麼寫代碼,並沒有教大家如何讀代碼

2、大多數工作場景都是一個蘿蔔一個坑,我們只需要瞭解一個系統的局部便能開展工作,讀不相干的代碼,似乎沒什麼用,所以要養成源碼三問的習慣:

“為什麼要有這樣的架構”、“他是什麼樣子的”、“他是怎麼工作的”。


(二)、什麼是分佈式架構

首先需要說明的是,分佈式系統是一個複雜且寬泛的研究領域,學習一兩門在線課程,看一兩本書可能都是不能完全覆蓋其所有內容的。

正解:《Java 程序員的黃金 5 年》看完我才知道當時有多蠢

(三)、微服務為什麼會這麼火!

正解:《Java 程序員的黃金 5 年》看完我才知道當時有多蠢

相信大家都瞭解業務越來越複雜,服務分層,微服務架構是架構升級的必由之路,而對於微服務的優點相信大家都不陌生。

比如:易於開發與維護 / 微服務相對小,易於理解 / 啟動時間短,開發效率高 / 獨立部署 / 伸縮性強 / 每個服務都可以在橫向和縱向上擴展 / 微服務架構可以更好將架構和組織相匹配 / 每個團隊獨立負責某些服務,獲得更高的生產力 / 降低嘗試新技術的成本......


(四)、工程師的武功祕籍

正解:《Java 程序員的黃金 5 年》看完我才知道當時有多蠢

總有人問這個東西好像用不上,於是要不要學這樣的問題,然後又總有人擔心一直搬磚成天做些重複沒提升的東西。

如果你這輩子只甘心做一個平庸的Java碼農,那麼你完全沒有必要去學習JVM相關的知識。


(五)、容易被我們忽略掉的工程化

正解:《Java 程序員的黃金 5 年》看完我才知道當時有多蠢

這一代中國人自小的教育不比歐美的STEAM,而是重學術、輕手藝。我們往往會為工科和產能過剩畫上等號。

強大的資本和技術門檻為這些產業蒙上了一層神祕的面紗,讓普通人很難真正瞭解到其中技術和工藝的複雜程度,也就更難明白其中的價值。

可正是因為中國的工程化能力,才讓我們有機會走到IT時代的第一梯隊,而不僅僅是靠學術研究能力。

(六)、不可忽視的多線程併發

正解:《Java 程序員的黃金 5 年》看完我才知道當時有多蠢


假如沒有靠譜的公司,接觸不到高併發的業務場景怎麼辦?你永遠解決的是小問題,工作10年技術也未必提升多少。很多程序員也經常說,沒有經驗就沒有靠譜的公司收,沒有靠譜的公司也就沒有經驗,我看了無數的書,自己做了無數的實驗拼命想找個靠譜公司去深入,但是感覺好難,簡直是個死循環。

大家都比較關注高併發,原因很簡單,想去BAT這樣的大公司,你必須要有高併發的經驗。今天普及下高併發的知識,希望大家對高併發有一個正確的認識。


(七)、學習千遍,不如項目實戰成功一次

正解:《Java 程序員的黃金 5 年》看完我才知道當時有多蠢

有人說:項目實戰相信很多程序員都多少會有的,可是我們這個還要學習什麼呢?

我的回答是:那就要看你想不想成為一個架構師了,為什麼98%的程序員工作10年,一輩子還只是一個開發者,程序員們都要想一想這個問題,我是不是需要提升了。

我認為,學習項目實戰最重要的還是學習項目管理,作為程序員,都應該學點項目管理。

凡事皆為“項目”項目的兩類屬性(複雜的邏輯,龐大的信息量)

這才是我們學習“項目實戰”的終極意義。

【粉絲福利】:

《架構師資料》領取方法

關注+轉發,然後私信關鍵詞 【架構】,即可獲取。

正解:《Java 程序員的黃金 5 年》看完我才知道當時有多蠢

正解:《Java 程序員的黃金 5 年》看完我才知道當時有多蠢

正解:《Java 程序員的黃金 5 年》看完我才知道當時有多蠢

正解:《Java 程序員的黃金 5 年》看完我才知道當時有多蠢

相關推薦

推薦中...