在Java程序界流行著一種默認的說法叫“黃金5年”,也就是一個程序員從入職的時候算起,前五年的選擇直接影響著整個職業生涯中的職業發展方向和薪資走向。
如何走好這5年,徹底從一個剛入行的菜鳥蛻變成可以以不變應萬變的職業大牛,這是一個涉及到自身專業知識儲備和選擇的大難題。
那么,這五年里,一個Java程序員如何做才能完成從入行到大牛的晉升之路呢?
在這段時間里,想必對Java已經有了一個深入的了解。首先,你要非常熟悉設計模式,看一些關于代碼編寫優化的書,提高你的代碼能力,能夠寫出一手優雅的代碼;
其次,你在工作過程中肯定接觸過并發,你應該更加深入地去了解并發的相關知識;
后,你要對所使用的框架和Java的類庫有一定的研究,還需要去看一些JDK中的類的源碼,包括你所使用的框架的源碼。
總而言之,這個階段,你需要做的是深入了解Java底層和Java類庫,也就是JVM和JDK的相關內容。
如果你處于這個階段,說實話很難再提升代碼能力了,因為這個階段的學習會比較多樣化。
在前三年的工作中,你肯定不同程度地接觸過其它的技術,比如大數據、分布式緩存、分布式消息服務、分布式計算、軟負載均衡等技術,你能精通任何一項,都將是你未來面試時巨大的優勢。
因此如果你對某一項技術感興趣,這時可以深入去研究,這項技術不一定是你工作所用到的,但一定是相關的。
參加工作四至五年的程序員,這時,你應該遇到技術的瓶頸了。不要急于提高自己的技術,此時更重要的是提高你的影響力,你可以嘗試去一些知名公司提高你的就業背景;
你也可以發表一些技術文章去影響更多的人;你還可以去GitHub創建一個屬于你的開源項目,打造屬于自己的產品。
技術學到這個階段,很容易遇到瓶頸,而且往往達到一定程度后,你再深入研究的效果就真的微乎其微了,除非你是專門做學術研究的。
然而很可惜,大部分程序猿做不到這一步,那是科學家做的事情。這個時候提高影響力主要是影響力可以給你創造更多的機會,所以,你大的任務是提高自己的影響力,為未來工作生涯做準備。
針對當前互聯網公司的技術需求以及結合主流技術,年薪百萬的首席架構師整理了一套系統的架構技術體系,當你技術過硬的時候,能夠解決技術問題才會服眾。
不少公司都很重視高并發高可用的技術,特別是一線互聯網公司,分布式、JVM、Spring源碼分析、微服務等知識點已是面試的必考題,這些東西可能你們平時在工作中接觸過,但是缺少全面系統的學習。
百萬年薪架構師分享5年進階心得,無論走架構、管理還是項目經理的路線這些技術,你都應該有一定的了解及掌握!(篇幅較長,建議收藏慢慢觀看學習)
學會如何分析源碼
大部分程序員都會「寫」代碼,或者至少會抄代碼和改代碼。
但是,會讀代碼的并不在多數,會讀代碼又真正讀懂一些大項目的源碼的,少之又少。因為它是兩個原因造成的:
1.我們所有的教育和培訓都在強調怎么寫代碼,并沒有教大家如何讀代碼
2.大多數工作場景都是一個蘿卜一個坑,我們只需要了解一個系統的局部便能開展工作,讀不相干的代碼,似乎沒用
所以,要養成源碼三問的習慣:
“為什么要有這樣的架構”
“他是什么樣子的”
“他是怎么工作的”
分布式架構專題
首先需要說明的是,分布式系統是一個復雜且寬泛的研究領域,學習一兩門在線課程,看一兩本書可能都是不能完全覆蓋其所有內容的。
微服務為什么會這么火
相信大家都了解業務越來越復雜,服務分層,微服務架構是架構升級的必由之路,而對于微服務的優點相信大家都不陌生。
比如:易于開發與維護 / 微服務相對小,易于理解 / 啟動時間短,開發效率高 / 獨立部署 / 伸縮性強 / 每個服務都可以在橫向和縱向上擴展 / 微服務架構可以更好將架構和組織相匹配 / 每個團隊獨立負責某些服務,獲得更高的生產力 / 降低嘗試新技術的成本......
程序員到底要不要學習JVM
總有人問這個東西好像用不上,于是要不要學這樣的問題,然后又總有人擔心一直搬磚成天做些重復沒提升的東西。
如果你這輩子只甘心做一個平庸的Java碼農,那么你完全沒有必要去學習JVM相關的知識。
被我們忽略掉的工程化專題
在IT產業中,寡頭化出現代表著創業公司減少--沒人再去用聲勢浩大的發布會講故事、沒人再去宣傳自己拿了多少融資。
這一代中國人自小的教育不比歐美的STEAM,而是重學術、輕手藝。我們往往會為工科和產能過剩畫上等號。
強大的資本和技術門檻為這些產業蒙上了一層神秘的面紗,讓普通人很難真正了解到其中技術和工藝的復雜程度,也就更難明白其中的價值。
可正是因為中國的工程化能力,才讓我們有機會走到AI時代的第一梯隊,而不僅僅是靠學術研究能力。
沒有高并發經驗,想進大公司該怎么辦
假如沒有靠譜的公司,接觸不到高并發的業務場景怎么辦?你永遠解決的是小問題,工作10年技術也未必提升多少。
很多程序員也經常找我說,沒有經驗就沒有靠譜的公司收,沒有靠譜的公司也就沒有經驗,我看了無數的書,自己做了無數的實驗拼命想找個靠譜公司去深入,但是感覺好難,簡直是個死循環
大家都比較關注高并發,原因很簡單,想去BAT這樣的大公司,你必須要有高并發的經驗。今天普及下高并發的知識,希望大家對高并發有一個正確的認識。
學習千遍,不如項目實戰成功一次
有人說:項目實戰相信很多程序員都多少會有的,可是我們這個還要學習什么呢?
我的回答是:那就要看你想不想成為一個架構師了,為什么98%的程序員工作10年,一輩子還只是一個開發者,程序員們都要想一想這個問題,我是不是需要提升了。
學習項目實戰重要的還是學習項目管理,作為程序員,都應該學點項目管理。
凡事皆為“項目”,項目的兩類屬性:復雜的邏輯,龐大的信息量。這才是我們學習“項目實戰”的終極意義。
相信大家,在學習的路上總會遇到一些坑,有人放棄,有人堅持,但是小青相信作為程序員的你不會想終其一生也只是一個開發,所謂不想進階架構師的程序員不是好程序員。