金九銀十的招聘季結束了,相信無論是應屆畢業生還是在工作崗位拼搏了幾年的老鳥程式員,都對今年的就業形勢有了了解。
跳槽,對于已經就業的程式員來說絕對不是一個陌生的詞彙,在工作的前4年,小渡鼓勵大家跳槽,建議經曆2-3家公司。因為每個公司對技術的側重點都不同,對開發流程控制都不一樣,所需要的技術性人才自然不一樣。
比如外包公司,要的是一個代碼狂人,高效率工作是核心要素;規模較小的公司,要的是一個全能型的程式員,最好能設計分析,能寫代碼,還能部署;而網際網路大廠,則需要的是一個技術紮實,有潛力的人。
如果不轉換思維模式,在一家公司呆久了,很可能就模式化,多經曆兩家公司,對程式員很有益!找工作的同時還可以強制自己學東西,而且關鍵是,一次跳槽,薪資就更高了!
一旦工作5年後,小渡建議不要再跳了,你需要做的更多是規劃自己的職業生涯。但無論你是正在跳槽換工作的求職狀态,還是準備提升自己的技術的穩定狀态,有一點是所有階段程式員都必須做到的:保持一直學習狀态。
這一點,在你從事JAVA開發後,感受的則會更加明顯。JAVA知識更新特别快,有時往往根據項目的需要來不斷學習新東西。所有,很多時候感覺,自己用過的東西真多呀!但是真正深入研究的東西卻不多。
面試,是跳槽後第一個需要面對的問題;而且不同公司面試的着重點不同;但是卻有一個共同點:Java基礎是必考的。工作第一年,可能問你String對象建立的了解,常用的架構是什麼等等;工作第二年,就問你Java記憶體配置設定機制是什麼,類是如何加載的等等;第三年,就問你常用的設計模式是什麼,你在工作中充當什麼角色,怎麼獨立完成一個子產品等等。
可以看出------這是一個典型的程式員的成長過程:使用Java>深入了解Java積累經驗>獨立設計分析能力>獨當一面的多面手!
是以,無論什麼工作狀态,Java是必須要學習且需要深度研究的!
如何掌握好Java技術成為優秀的程式員?小渡給大家三點建議:
第一,寫人能看得懂的代碼
正所謂“代碼不規範,debug兩行淚”。
很多公司在對外招聘的時候常常要求“要有良好的程式設計習慣”,這其實就是在講代碼規範。當你獨立開發項目的時候,可以不用在意代碼規範這件事。
但在我們的職業生涯中,往往都是與團隊協同開發項目,如果沒有一個統一的編碼規範,那後續是真的要兩行淚了。良好的代碼規範對項目的開發、維護、擴充都能起到至關重要的作用。
第二,是打好基礎,掌握Java核心技術
基礎決定上層建築。Java高手由什麼構成?紮實的基礎+豐富的經驗+寬廣的知識面。
很多Java程式員都有着這樣的尴尬——随着工作時間的增長,手中經曆過的項目越來越多,越發感到疲憊,因為自己入門的時候沒有系統的學習規劃,竟然會被很基礎的問題絆倒。小渡在此提出一個由衷的建議,每一個Java程式員都要重視兩大基礎——計算機基礎和Java基礎。
第三,很重要的一點,眼界
人類社會結構是金字塔型的,程式員的代碼世界,也是。同樣專注于技術,為什麼你隻是一名基層碼農,而别人當上了頂級企業的技術專家、架構師甚至CTO?
當技術大牛遇到全新的技術問題時,會産生多條解決思路。技術人的眼界決定了他們的高度。如何提高自己的技術思維?
現在我在這裡給那些想達到這個高度甚至想往架構師發展的程式員提供一份進階路線圖,主要針對2到5年及以上工作經驗的Java開發人員,從廣度到深度架構圖還比較全面的,裡面的技術包涵了Java高并發、微服務、源碼分析、源碼分析、高性能、分布式等技術,這些也是目前網際網路企業比較常用的技術,那麼來詳細看看。
一:常見模式與工具
學習Java技術體系,設計模式,流行的架構與元件
—— 常見的設計模式,編碼必備, Spring5,做應用必不可少的最新架構,MyBatis,玩資料庫必不可少的元件......
二:工程化與工具
工欲善其事必先利其器,不管是小白,還是資深開發,玩Java技術體系,選擇好的工具,提升開發效率和團隊協作效率,是必不可少的:
Maven,項目管理
Jenkins,持續內建
Sonar,代碼品質管理
Git,版本管理
三:分布式架構
高并發,高可用,海量資料,沒有分布式的架構知識肯定是玩不轉的:
分布式架構原理
分布式架構政策
分布式中間件
分布式架構實戰
四:微服務架構
業務越來越複雜,服務分層,微服務架構是架構更新的必由之路,Java技術體系,和微服務相關的技術有哪些呢?
微服務架構
Spring Cloud
Docker與虛拟化
微服務架構
五:性能優化
任何脫離細節的ppt架構師都是耍流氓,向上能運籌帷幄,向下能解決一線性能問題,Java技術體系,需要了解:
性能名額體系
JVM調優
Web調優
DB調優
六:底層知識
從架構設計,到應用層調優,再深入了解底層原理,紮實的Java基本功才能讓自己變為掃地神僧:
記憶體模型
并發模式
線程模型
鎖細節
以上六大知識體系是我從業多年總結出來的經驗,都是目前最主流的技術。如果對Java分布式、工程化、高并發、微服務,JVM等技術感興趣的可以加我的架構群,裡面有阿裡大牛,大家一起交流分享經驗。
那如何學習呢,有沒有免費資料?
Java架構進階資源
分析源碼
分布式架構
性能優化
上圖中的資料都是我精心錄制視訊,感興趣的可以到我的Java學習圈子: 免費擷取。希望能夠在你接下來即将應對的的面試過程中能夠盡到一份綿薄之力。