java后期發展方向_Java程序員的4個職業發展方向,該如何把握黃金5年?

b1202700166e5aca1bb1a9b1e6eae93a.png

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

而這5年,也決定了一個程序員能否成為職業大牛的可能。那么,在這黃金5年,Java程序員如何做才能實現自我突破呢?

8167e300a189745de8751a3349608a69.png

對初學者建議

首先,對尚未進入職場工作的在校生以及準備轉行Java的同學的建議:

一定要從最基礎的知識學起,學習Java基礎的時候,應該盡量多動手寫,寫出來運行一下,會發現很多問題。

學完基礎內容之后,對Java有一個基本的了解之后,不要著急著進入更高級的學習,嘗試用Java語言寫出一些簡單的程序鍛煉自己。

ee4e98bda76637521837bf103e87d026.png

參加工作1-2年之間

在這段時間里,想必對Java已經有了一個較為深入的了解。
首先,要非常熟悉設計模式,日常要多看一些關于代碼編寫優化的書,提高自己的代碼能力,能夠寫出一手優雅的代碼;
其次,在工作過程中肯定接觸過并發,應該更加深入地去了解并發的相關知識;
最后,要對所使用的框架和Java的類庫有一定的研究,還需要去看一些JDK中的類的源碼,包括自己日常所使用的框架的源碼。
總而言之,這個階段,需要做的是深入了解Java底層和Java類庫,也就是JVM和JDK的相關內容。

參加工作3-4年之間

處于這個階段,說實話很難再提升代碼能力了,因為這個階段的學習會比較多樣化。
在前三年的工作中,相信或多或少都會接觸一些其它的技術,比如大數據、分布式緩存、分布式消息服務、分布式計算、軟負載均衡等技術,你能精通任何一項,都將是你未來面試時巨大的優勢。
因此,如果自己對某一項技術感興趣,這時可以深入去研究,即使這項技術不一定會在工作時用到,但一定是相關的。

參加工作4-5年之間

到了這個階段,應該遇到了所謂的“技術瓶頸期”了。不要急于提高自己的技術,此時更重要的是提高你的影響力。
可以嘗試去一些知名公司提高你的就業背景;也可以發表一些技術文章去影響更多的人;還可以去Github創建一個屬于自己的開源項目,打造屬于自己的產品。這個時候提高自己的影響力主要是可以給自己創造更多的機會,所以,這個階段最大的任務是提高自己的影響力,為未來工作生涯做準備。
對于軟件開發同學而言,首先要客觀認識自身的情況,想清楚自己現在要什么、未來要什么,做好職業規劃,從而選擇不同類型的企業。

Java程序員職業發展規劃和方向

走向架構師

程序員與架構師之間的主要區別是什么呢?

架構師,是Java開發人員非常向往的一個角色。架構師需要擁有完善和扎實的技術體系,具備較好系統分析和設計能力,豐富的項目研發經驗。架構師是一個漫長的積累過程,大部分架構師的年齡在35歲左右,這個階段就是程序員的黃金期。
程序員要向一名架構師發展,需要進一步加強技能的修養。對于互聯網公司來言,最重要的技能是對網絡和分布式系統的理解,比較麻煩的是分布式系統,除了分布式,在現在大型互聯網企業中,還需掌握高性能、深入淺出、性能調優、Spring、JVM等技術。

64bd9beb4cdbb3ed5f3461f9be2c2b39.png

走向項目經理

當然,也有一些運氣比較好的程序員,不但負責項目的設計工作,而且還負責項目的管理工作,對項目經理這個工作有一定的嘗試。
因此,這類程序員可以審視一下自己,是否合適這項工作,如果自己對這種工作比較滿意,而且具備項目經理的要求,則可以向項目經理這個方向發展。
項目經理的工作重點已經從編程轉移到對人、對技術、對進度、對項目的管理,因此,項目經理必須要了解軟件開發的各個環節、了解開發的各種技術和運用、了解開發隊伍人員的水平和特點。在日常的工作和生活中就得側重鍛煉這方面的能力,還要學習一些項目管理的知識,例如:PMP、CMMI、敏捷開發管理等。
從程序員到項目經理可以使項目經理更好地理解程序員在項目中的地位和作用,了解軟件開發的各種規律性的東西,從而保證項目的正常完成。
而且,項目經理的收入和地位在公司里也是比較高的,因此,走向項目經理是程序員的另一個發展空間。

走向管理層

很多程序員希望自己能成為公司中的主管、或項目經理等管理人員,無論是收入還是地位都會相對高一些。
另外,還有一些程序員可能厭倦了日復一日枯燥而繁瑣的編程工作,希望借助走向管理崗擺脫這種步步緊逼的工作狀態。
當然,走向管理者就要求程序員要比一般人做更多的準備,做更多的轉型工作。
由于軟件公司的管理者不同于一般公司的管理者,專業能力越強,管理起來就越得心應手,沒有專業能力的管理,遇到的問題很多,也很難解決。
所以,想要往管理者發展的程序員,一定要把編程、項目設計、項目管理等基礎打好,這樣轉型到管理者成功率就會高一些,而且到時候也能更加得心應手。

6bbb2d91729eec85657e85bca6226214.png

Java程序員應該掌握的技術

通信協議

各個子系統之間要進行通信,必須要選擇一種或多種通信協議,現代比較常見的是基于HTTP的協議。
所以,了解更多協議對于學習安全也有很大的幫助,比如MySQL和PostgreSQL的協議都有安全的設計。

序列化

系統之間通過網絡傳輸或者存儲到文件時,肯定只有一種格式,就是字符串。
要將復雜的數據結構與字符串之間進行轉換,就需要用到序列化,簡單的序列化如JSON和XML,稍微復雜些的有protobuf、thrift等。
需要了解所有這些序列化方式之間的優勢和劣勢。比如JSON和XML只能用于傳遞數據,而protobuf與thrift還可以用來做RPC協議,至少要確保每種序列化方式都自己嘗試過hello world。

數據庫

要形成自己的數據庫選取風格,就需要先對自己常用的數據庫有足夠深入的了解。
對于關系式數據庫,除了一般的Create、Query、Delete、Update操作外,還需要能自行建立索引、數據庫的平行擴展、了解如何進行性能調試,以及了解常見查詢操作的性能級別、常見的查詢性能瓶頸點。

存儲

需要關注的是每個目錄下的文件數不應該太多,當一個目錄下文件數(實際是inode數量,包括文件和目錄)超過1000時,性能就很差了。
所以,建議將一個系統中要存儲的對象ID做16進制,隨后每2位16進制做成一級目錄,這樣可以確保每個目錄下的文件數不會超過256個。現代云計算,如Amazon S3已經把存儲的問題解決的很好了,如果可能,盡量用好。

應用框架

多注意了解自己關注方向的所有框架的優勢和劣勢,選擇最適合自己的,而不是選擇最新的。

接口

主要是指接口協議,或者RPC協議。系統之間進行RPC調用很常見,注意選擇自己能熟練使用的,并且有所深入研究,并了解其常見的限制。
RESTful API就是個比較常見的選擇,但是性能并不好,自己要對性能等參數有量化的了解,而不是簡單的一句好或不好。短連接接口在三次握手時是串行操作,要了解其為何耗時。
除了要在如上的各種不可或缺的組成部分中有所了解,還要能清楚地知道一些常用系統模塊的原理,并能夠很深入的玩起來。

幾個值得注意的方面:

1、HTTP服務器:常見的無非是nginx、apache,自己要能進行基本配置,包括靜態文件、fastcgi轉發等。

2、 關系式數據庫:常見的如mysql、postgresql、sqlite,自己要對每一種都有深入的了解,可以做一遍常見操作的性能測試,并牢記于心。比如sqlite雖然并不需要走網絡,但是實際查詢性能很差。

3、NoSQL數據庫:memcache、redis、mongodb等,近幾年有很多,挨個了解其實現原理,以及各種常用操作的性能,當有需要時,隨時能拿得出手來用。

4、云計算平臺:幾種常見的云計算平臺的應用方式要有了解,如Google的資源方式和Amazon的VPS方式,每種云計算平臺往往還會提供一大堆附加服務,比如可靠數據庫,存儲,緩存等,也要分別有所了解。

5、 加密/簽名技術:常見如truecrypt、openssl、gnu pg、sha1、md5、scrypt等,了解各種加密/簽名技術的安全性、字長等,并都能自己做過hello world。


原作者:Java后端進階
原文鏈接:Java程序員的4個職業發展方向,該如何把握黃金5年?
原出處:公眾號

18985de21cab749368900e9be98decc9.gif

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/457605.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457605.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457605.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python 類變量(屬性)和實例變量(屬性

DAY 4. 類變量(屬性)和實例變量(屬性) 類變量:在所有類的實例之間都可以共享的變量,類變量在所有對象間只保留一份 在類體中定義類的所有實例對象都可以訪問類變量類變量只能由類修改,實例對象…

MySQL 關聯表批量修改(數據同步)

update table1 t1 ,table2 t2 set t1.field1 t2.field2 where t1.id t2.id 轉載于:https://www.cnblogs.com/52php/p/5677908.html

sourcetree不好做到的一些git操作

2019獨角獸企業重金招聘Python工程師標準>>> 日常中我們有很多操作通過sourcetree就可以實現界面化操作,但是有一些場景不好去實現,這里總結下: 場景1:我們有個A分支,需要跟master分支合并等待上線&#xf…

vue大括號里接受一個函數_vue源碼探究(第四彈)

vue源碼探究(第四彈)結束了上一part的數據代理,這一部分主要講講vue的模板解析,感覺這個有點難理解,而且內容有點多,hhh。模板解析廢話不多說,先從簡單的入手。按照之前的套路,先舉一…

類級別的分裝 ---四種訪問級別

privateprivate成員為類的私有性質,僅有類本身和友元可以訪問;protected和private類似,區別于protected可以被該類所有派生類訪問;publicpublic的成員可以被外界的所有客戶代碼直接訪問published和public的區別僅在于published的成…

python自省與反射

DAY 5. python自省 這是很久之前寫的,當時對自省和反射的概念沒理解,學習Java以后多了一點理解,自省是獲取對象的能力,反射是操縱對象的能力,python中使用getattr()和setattr()實現反射,而其他的則是自省&…

vb.net 窗體接收鍵盤事件_(十五)C#WinFrom自定義控件系列-鍵盤(二)

前提入行已經7,8年了,一直想做一套漂亮點的自定義控件,于是就有了本系列文章。本系列文章將講解各種控件的開發及思路,歡迎各位批評指正。此系列控件開發教程將全部在原生控件基礎上進行重繪開發,目標的扁平化、漂亮、支持觸屏。如…

centos下cmake安裝

步驟一、安裝gcc等必備程序包(已安裝則略過此步,用gcc -v檢測) yum install -y gcc gcc-c make automake 步驟二、安裝wget (已安裝則略過此步) yum install -y wget 步驟三、獲取CMake源碼包 wget http://www.cmake.…

python 生成式,迭代器,生成器

DAY 6. 生成式,迭代器,生成器 6.1 生成式 6.1.1 列表生成式 list [index for index in range(10)]6.1.2 字典生成式 dict {zhangsan: 10,lisi: 12,wangwu: 18 } # 實現鍵值互換 dict {k:v for v,k in dict.items() if k > 12}6.1.3 集合生成式 # 100以內…

shell MAC 地址 校驗

/**************************************************************************************** shell MAC 地址 校驗* 說明:* 要對MAC地址進行校驗,記錄一下正則表達式寫法,有些方法在PC上驗證是可行的&…

移動端Web開發如何處理橫豎屏

<!Doctype html> <html> <head> <meta charset"utf-8"> <meta id"viewport" name"viewport" content"widthdevice-width,initial-scale1.0;"> <title>橫豎屏切換檢測</title> <style ty…

恩智浦智能車大賽2020_內蒙古科技大學第九屆智能車大賽校內公開賽總決賽

為了激發學生的創新意識&#xff0c;提高學生的動手能力&#xff0c;培養團隊合作意識&#xff0c;秉承“實踐源于真知&#xff0c;創新放飛夢想”的思想。2020年12月6日&#xff0c;內蒙古科技大學第九屆智能車大賽總決賽如約而至。本次大賽有來自各院系的223支隊伍報名參加了…

python格式化字符串的三種方法(%,format,f-string)

DAY 7. 格式化字符串 到目前為止&#xff0c;我所知道的&#xff0c;python格式化字符串有三種方法&#xff0c;第一是早期就有的%&#xff0c;其次是2.5之后的format(),還有就是3.6添加的f字符串調試 7.1 %格式化字符串 %格式化字符串是python最早的&#xff0c;也是能兼容…

Android App 優化之 ANR 詳解

為了便于閱讀, 應邀將Android App性能優化系列, 轉移到掘金原創上來.掘金的新出的"收藏集"功能可以用來做系列文集了. 今天先來聊聊ANR. 1, 你碰到ANR了嗎 在App使用過程中, 你可能遇到過這樣的情況: 恭喜你, 這就是傳說中的ANR. 1.1 何為ANR ANR全名Application Not…

微信高級群發接口正文亂碼解決方案

content里面的內空如果含有html標簽的話&#xff0c;需要對內容進行一下轉義。如果里面含有style".."類似于這樣的帶""號的內容的話&#xff0c;就更需要注意了。 foreach ($news as &$item) {foreach ($item as $key > $val){if ($key content){$…

python *args和**kwargs以及序列解包

DAY 8. *args和**kwargs *args&#xff1a;多值元組&#xff0c;**kwargs多值字典&#xff0c;他們是python函數傳參時兩個特殊的參數&#xff0c;args和kwargs并不是強制的&#xff0c;但習慣使用這兩個&#xff0c;如果在函數參數列表中聲明了*args&#xff0c;則允許傳遞任…

解讀直播連麥與點播加密

近年來&#xff0c;直播熱潮持續升溫。有需求就會有變革&#xff0c;直播的相關技術也在不斷更新&#xff0c;為直播行業帶來更好地服務。如&#xff1a;直播連麥與點播加密技術等。 直播連麥&#xff0c;即主播與連麥者通過互動直播中心進行實時互動&#xff0c;信息在云端混流…

血紅蛋白判斷access程序答案_普渡大學開發智能手機應用程序 幫助評估貧血癥情況...

醫生診斷貧血疾病的方法之一&#xff0c;就是通過觀察患者的眼皮&#xff0c;判斷眼皮是否發紅&#xff0c;從而判斷紅細胞的數量。但對醫生來說&#xff0c;面臨的挑戰是&#xff0c;這種簡單的測試不夠精確&#xff0c;無法不從患者身上抽取血樣就能給出診斷。美國普渡大學的…

學習筆記:AC自動機

話說AC自動機有什么用......我想要自動AC機 AC自動機簡介&#xff1a; 首先簡要介紹一下AC自動機&#xff1a;Aho-Corasick automation&#xff0c;該算法在1975年產生于貝爾實驗室&#xff0c;是著名的多模匹配算法之一。一個常見的例子就是給出n個單詞&#xff0c;再給出一段…

python閉包和裝飾器

DAY 9. 閉包和裝飾器 9.1 閉包 閉包就是內部函數對外部函數作用域內變量的引用 可以看出 閉包是針對函數的&#xff0c;還有兩個函數&#xff0c;內部函數和外部函數閉包是為了讓內部函數引用外部函數作用域內的變量的 我們先寫兩個函數 def fun1():print("我是fun1&q…