工作了5年的Java程序員,該如何提升,做了3~5年Java開發(fā),你已經(jīng)積累了不少項目經(jīng)驗,擴寬了技術(shù)廣度,也許已發(fā)力成為團隊管理者。到了這個階段,大家卻常有這種感受:感覺自己卡在瓶頸進步緩慢,技術(shù)水平很難像早期一樣實現(xiàn)大幅突破?
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比廣饒網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式廣饒網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務覆蓋廣饒地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。
其實大家往往忽略了這一點——提升自己的架構(gòu)認知(工作5年左右程序員必須重視架構(gòu)認知的提升,這會很大程度上推動你今后的成長)。架構(gòu)的本質(zhì)在于面對業(yè)務場景給出優(yōu)雅的解決方案,使得業(yè)務能夠快速迭代和持續(xù)交付,從而達到降本增效的目標。提升架構(gòu)認知高度,就像達克效應所描述的一樣,要敢于從愚昧之巔跳到絕望之谷,通過爬升開悟之坡,從而達到架構(gòu)認知的巔峰時刻。到達巔峰時刻也就掌握了架構(gòu)背后設(shè)計的哲學,面對具體業(yè)務場景在架構(gòu)層面你便能夠輕松應對,以無招勝有招。
提升架構(gòu)認知,要緊抓3個關(guān)鍵點:業(yè)務洞察力、技術(shù)視野、原創(chuàng)力(執(zhí)行力)。
1.業(yè)務洞察力是技術(shù)戰(zhàn)略層面的問題,在當下能夠做出合理的判斷,清楚公司做什么事情收益最大;
2. 技術(shù)視野即技術(shù)選型能力,是技術(shù)戰(zhàn)術(shù)層面的問題,在清楚做什么事情后,需要進一步解決怎么做的問題,也就是能夠給出合理的技術(shù)選型方案:是完全基于開源的方案,還是基于開源二次開發(fā)的方案,還是完全自研的方案;
3. 原創(chuàng)力(執(zhí)行力)是技術(shù)落地執(zhí)行層面的問題,一旦技術(shù)設(shè)計方案確定后,需要能夠快速Rush完成。
這3點層層遞進,最重要的是先把技術(shù)戰(zhàn)略問題思考清楚,然后再進一步解決技術(shù)戰(zhàn)術(shù)問題,最后是快速落地執(zhí)行的問題。
工作5年左右的程序員,在原創(chuàng)力(執(zhí)行力)層面比較有競爭力,往往欠缺技術(shù)視野以及業(yè)務洞察力。后面2點更加重要,這2點解決的是架構(gòu)設(shè)計哲學問題,是架構(gòu)師能夠持續(xù)擁有競爭力和影響力的立身之道。
舉個場景的例子來詳細說明:一提到分布式鎖問題,大多數(shù)人想到的方案是基于Redis的Master-Slave模式來實現(xiàn)。這個實現(xiàn)方案行不行?分布式鎖本質(zhì)是一個CP需求,基于Redis的實現(xiàn)是一個AP需求,乍一看基于Redis的實現(xiàn)是無法滿足的。脫離業(yè)務場景來談架構(gòu)都是耍流氓。
從技術(shù)戰(zhàn)略的需求層面來看,如果分布式鎖在極端情況下獲取鎖的不一致,社交業(yè)務場景能夠接受,那么基于Redis的實現(xiàn)是完全可行的。如果業(yè)務是交易場景,分布式鎖在極端情況下獲取鎖的不一致性無法接受,那么基于Redis的實現(xiàn)方案是不可行的。在鎖強一致性的場景下,需要采取基于CP模型的etcd等方案來實現(xiàn)。
你要考慮現(xiàn)在的瓶頸是來自哪個方面,要想清楚你將來的發(fā)展方向。5年的工作經(jīng)驗,對一個coder來說,代碼量應該已經(jīng)夠了,如果想繼續(xù)鉆代碼,秀技術(shù),去大公司吧。如果想轉(zhuǎn)一轉(zhuǎn),眼光放高點,轉(zhuǎn)項目管理帶團隊吧。如果大公司有機會,不要考慮,如果有潛力空間不錯的小公司小團隊,也是你起步的好選擇。
我也在想,
我現(xiàn)在也做5年
java
開發(fā)
,情況跟你差不多,想轉(zhuǎn)還不知道做什么,肯定是在IT行業(yè),只要不寫代碼,要跟這方面相近的,要不然5年的經(jīng)驗就算是白瞎了,又要從頭開始。
java表示距當前時間100天后的日期的方法是用Calader對象。核心代碼如下:1、創(chuàng)建Calendar對象Calendarcalendar=Calendar.getInstance();2、調(diào)用add方法給當前日期增加100天calendar.add(Calendar.DATE,100);3、返回100天后的時間ret
在Java程序界流行著一種默認的說法叫“黃金5年”,意思是說,一個Java程序員從入職的時候算起,前五年的選擇直接影響著整個職業(yè)生涯的發(fā)展方向和薪資走向。
而這5年,也決定了一個程序員能否成為職業(yè)大牛的可能。
那么,在這黃金5年,Java程序員如何做才能實現(xiàn)自我突破呢?1)對初學者建議首先,對尚未進入職場工作的在校生以及準備轉(zhuǎn)行Java的同學的建議:一定要從最基礎(chǔ)的知識學起,學習Java基礎(chǔ)的時候,應該盡量多動手寫,寫出來運行一下,會發(fā)現(xiàn)很多問題。
學完基礎(chǔ)內(nèi)容之后,對Java有一個基本的了解之后,不要著急著進入更高級的學習,嘗試用Java語言寫出一些簡單的程序鍛煉自己。
為此,動力節(jié)點開展了線上直播班型「Java夜校班」,助你從0基礎(chǔ)到就業(yè)。
1.因為從零基礎(chǔ)到就業(yè),只用6個月6個月,就能把小白變成Java程序員?夜校班可以做到。
夜校班時長6個月,分為12個階段,針對零基礎(chǔ)學習人群,課程緊湊飽滿,全程直播,講解細膩,不同水平人的學習需求均可滿足。
2.因為是線上直播+課后作業(yè)首先,在選擇Java在線培訓班時,第一個應該注意的就是培訓機構(gòu)是錄播還是直播?Java夜校班與其他機構(gòu)的錄播視頻不同,是由總監(jiān)級技術(shù)大咖直播授課,只有學員和老師隨時溝通互動,學習效果才能得到最大保障。
3.因為有7大實戰(zhàn)項目夜校班含有7大真實項目實訓,與企業(yè)無縫對接,讓你輕松勝任開發(fā)工作。
(項目內(nèi)容詳見后文)4.因為有全新全面的課程體系Java夜校課程大綱由動力節(jié)點線上教學總監(jiān),資深架構(gòu)師親自設(shè)計并帶隊授課,來自一線的技術(shù)體系,來自一線的業(yè)務需求。
2)參加工作1-2年之間在這段時間里,想必對Java已經(jīng)有了一個較為深入的了解。
首先,要非常熟悉設(shè)計模式,日常要多看一些關(guān)于代碼編寫優(yōu)化的書,提高自己的代碼能力,能夠?qū)懗鲆皇謨?yōu)雅的代碼;其次,在工作過程中肯定接觸過并發(fā),應該更加深入地去了解并發(fā)的相關(guān)知識;最后,要對所使用的框架和Java的類庫有一定的研究,還需要去看一些JDK中的類的源碼,包括自己日常所使用的框架的源碼。
總而言之,這個階段,需要做的是深入了解Java底層和Java類庫,也就是JVM和JDK的相關(guān)內(nèi)容。
3)參加工作3-4年之間處于這個階段,說實話很難再提升代碼能力了,因為這個階段的學習會比較多樣化。
在前三年的工作中,相信或多或少都會接觸一些其它的技術(shù),比如大數(shù)據(jù)、分布式緩存、分布式消息服務、分布式計算、軟負載均衡等技術(shù),你能精通任何一項,都將是你未來面試時巨大的優(yōu)勢。
因此,如果自己對某一項技術(shù)感興趣,這時可以深入去研究,即使這項技術(shù)不一定會在工作時用到,但一定是相關(guān)的。
4)參加工作4-5年之間到了這個階段,應該遇到了所謂的“技術(shù)瓶頸期”了。
不要急于提高自己的技術(shù),此時更重要的是提高你的影響力。
可以嘗試去一些知名公司提高你的就業(yè)背景;也可以發(fā)表一些技術(shù)文章去影響更多的人;還可以去Github創(chuàng)建一個屬于自己的開源項目,打造屬于自己的產(chǎn)品。
這個時候提高自己的影響力主要是可以給自己創(chuàng)造更多的機會,所以,這個階段最大的任務是提高自己的影響力,為未來工作生涯做準備。
對于軟件開發(fā)同學而言,首先要客觀認識自身的情況,想清楚自己現(xiàn)在要什么、未來要什么,做好職業(yè)規(guī)劃,從而選擇不同類型的企業(yè)。
下面來再談談Java程序員職業(yè)發(fā)展規(guī)劃和方向。
1)走向架構(gòu)師程序員與架構(gòu)師之間的主要區(qū)別是什么呢?架構(gòu)師,是Java開發(fā)人員非常向往的一個角色。
架構(gòu)師需要擁有完善和扎實的技術(shù)體系,具備較好系統(tǒng)分析和設(shè)計能力,豐富的項目研發(fā)經(jīng)驗。
架構(gòu)師是一個漫長的積累過程,大部分架構(gòu)師的年齡在35歲左右,這個階段就是程序員的黃金期。
程序員要向一名架構(gòu)師發(fā)展,需要進一步加強技能的修養(yǎng)。
對于互聯(lián)網(wǎng)公司來言,最重要的技能是對網(wǎng)絡和分布式系統(tǒng)的理解,比較麻煩的是分布式系統(tǒng),除了分布式,在現(xiàn)在大型互聯(lián)網(wǎng)企業(yè)中,還需掌握高性能、深入淺出、性能調(diào)優(yōu)、Spring、JVM等技術(shù)。
為此,動力節(jié)點為大家?guī)砹思軜?gòu)師課程,助大家成為年薪百萬的架構(gòu)師。
2)走向項目經(jīng)理當然,也有一些運氣比較好的程序員,不但負責項目的設(shè)計工作,而且還負責項目的管理工作,對項目經(jīng)理這個工作有一定的嘗試。
因此,這類程序員可以審視一下自己,是否合適這項工作,如果自己對這種工作比較滿意,而且具備項目經(jīng)理的要求,則可以向項目經(jīng)理這個方向發(fā)展。
項目經(jīng)理的工作重點已經(jīng)從編程轉(zhuǎn)移到對人、對技術(shù)、對進度、對項目的管理,因此,項目經(jīng)理必須要了解軟件開發(fā)的各個環(huán)節(jié)、了解開發(fā)的各種技術(shù)和運用、了解開發(fā)隊伍人員的水平和特點。
在日常的工作和生活中就得側(cè)重鍛煉這方面的能力,還要學習一些項目管理的知識,例如:PMP、CMMI、敏捷開發(fā)管理等。
從程序員到項目經(jīng)理可以使項目經(jīng)理更好地理解程序員在項目中的地位和作用,了解軟件開發(fā)的各種規(guī)律性的東西,從而保證項目的正常完成。
而且,項目經(jīng)理的收入和地位在公司里也是比較高的,因此,走向項目經(jīng)理是程序員的另一個發(fā)展空間。
3)走向管理層很多程序員希望自己能成為公司中的主管、或項目經(jīng)理等管理人員,無論是收入還是地位都會相對高一些。
另外,還有一些程序員可能厭倦了日復一日枯燥而繁瑣的編程工作,希望借助走向管理崗擺脫這種步步緊逼的工作狀態(tài)。
當然,走向管理者就要求程序員要比一般人做更多的準備,做更多的轉(zhuǎn)型工作。
由于軟件公司的管理者不同于一般公司的管理者,專業(yè)能力越強,管理起來就越得心應手,沒有專業(yè)能力的管理,遇到的問題很多,也很難解決。
所以,想要往管理者發(fā)展的程序員,一定要把編程、項目設(shè)計、項目管理等基礎(chǔ)打好,這樣轉(zhuǎn)型到管理者成功率就會高一些,而且到時候也能更加得心應手。