對于現(xiàn)如今的互聯(lián)網環(huán)境,JAVA程序員該如何自處?
網友解答: 這個問題很適合搞過多年Java程序員來回答,我是其中的一個。先看現(xiàn)如今的環(huán)境?,F(xiàn)在2019年初,科技行業(yè)的寒冬,很多公司開始收縮招聘,比如京東、阿里,傳聞華為也是如此。下面是
這個問題很適合搞過多年Java程序員來回答,我是其中的一個。
先看現(xiàn)如今的環(huán)境?,F(xiàn)在2019年初,科技行業(yè)的寒冬,很多公司開始收縮招聘,比如京東、阿里,傳聞華為也是如此。
下面是我的私人建議,供參考。覺得有點價值的請點個贊,編碼不易,碼字不易,我非搬運工,全是原創(chuàng),也歡迎在底下留言,我會盡可能地回復你。
一、縱深發(fā)展,將Java做精做深Java技術路線圖:初級開發(fā)工程師 - 高級開發(fā)工程師 - 架構師 - 資深架構師 - CTO。
1、底層能力:
JVM:核心知識、性能調優(yōu)、內存管理和調優(yōu)、程序編譯和優(yōu)化等
常用軟件:Tomcat/Jetty的運行機制和性能優(yōu)化、Mysql/Mariadb的底層機制和調優(yōu)
Linux:不是會幾個命令行,簡單安裝某個包就行,而是精通和會調優(yōu)
Java語言和程序:代碼高效低冗余,高內聚低耦合;程序性能優(yōu)化;線程安全,異步通信編程;緊跟最新版本,比如Java 11;精通Java 8中的特性:函數(shù)式編程,Lambda等等
2、精通使用各種工具:
編譯和第三方包管理等:Maven/Gradle
IDE:Eclipse/IntelliJ IDEA
CI/CD:Jenkins等持續(xù)集成和部署工具
源碼管理:Git
代碼質量控制:Sonar、PMD、Findbugs
敏捷開發(fā)管理:禪道等
3、應用框架能力:
Spring:整體體系和設計思想;IOC、AOP;源碼分析;Spring MVC;事務策略
Mybatis:源碼分析;配置和Mapper;性能優(yōu)化
4、架構能力:
分布式架構:精通原理、策略和中間件;數(shù)據(jù)一致性問題
微服務:這塊尤其要精通,因為現(xiàn)在都是采用微服務的架構。建議選擇Spring Cloud,因為其技術覆蓋全面;Docker;谷歌的Kubernetes
設計模式:精通常用設計模式:代理、工廠、單例等并應用
熟悉:SaaS,云計算,REST,建模等
5、技術領導能力:
項目管理:敏捷開發(fā),Scrum和看板模式;進度管理和風險控制
團隊建設:團隊激勵和懲罰;團建活動;文化氛圍維護;成員技術實力提升
合作:和其他部門或第三方
二、橫向擴展,學習該時代需要的新技術:AI、區(qū)塊鏈、大數(shù)據(jù)純粹的Java實力并不能完全保證你的競爭力。
設想一下,你面試心儀的職位,面試官問你:你有AI或區(qū)塊鏈經驗嗎?你說沒有。那面試官必定會說:我們需要有這方面經驗的人,你不合適。
這塊要深入說,又要較大篇幅來講,點到為止吧,因為該問題的重點是Java。
三、(可選)開辟其他賽道:寫技術博客、做自媒體這個世界總是有2種類型的人才:通才或者專才。
每個人都有自己適合的事情,比如技術很好的,卻不善于溝通和表達;有的人喜歡發(fā)言,可以在這個領域試試。
四、(謹慎)拋棄Java,擁抱其他平臺要拋棄存量總是讓人很恐懼,因為沉沒成本太大。所以,對于這個建議,請仔細思考,并謹慎對待。對于Java存量不大的人,可以多想想。
不可否認,Java目前還是編程語言里面的第一名。但是,作為一門老語言,在目前互聯(lián)網社會要求越來越快,越來越輕的情況下,疲態(tài)漸顯。
在AI和區(qū)塊鏈領域,Python和Go崛起了;應用型的互聯(lián)網公司,更青睞Nodejs。
Java仍然強勢,但在走下坡路;而另外一些相反。
所以,你需要深入做數(shù)據(jù)分析,再看自己的喜好,該舍棄的時候就需要勇敢地舍棄。
網友解答:謝謝邀請!
2019年的互聯(lián)網環(huán)境相對以往來說要更復雜一些,互聯(lián)網領域也正在經歷從消費互聯(lián)網向產業(yè)互聯(lián)網轉型的陣痛期。其實不少公司從2018年開始已經在陸續(xù)進行結構化調整,這些調整中的重要內容就是崗位調整,而崗位調整對于程序員來說既是機會,也是挑戰(zhàn)。
崗位調整的機會在于新的發(fā)展方向也許會有較大的成長空間,尤其在當下產業(yè)互聯(lián)網發(fā)展的初期,大量的崗位將陸續(xù)釋放出來,一些涉及到大數(shù)據(jù)、云計算、物聯(lián)網、人工智能等內容的工作崗位往往比較受歡迎,薪資待遇也比較高。從這個角度來看,大數(shù)據(jù)等相關領域的發(fā)展對于Java程序員來說是重要的機會。
雖然產業(yè)互聯(lián)網的發(fā)展會帶來大量的機會,但同時也會帶來一定的挑戰(zhàn),尤其在行業(yè)發(fā)展的初期,更是如此。目前大數(shù)據(jù)、人工智能等產品面臨著落地應用的問題,要想把這些互聯(lián)網技術落地到傳統(tǒng)行業(yè),需要突破大量的行業(yè)發(fā)展壁壘,而這個過程往往是比較艱難的,這個過程也必將形成一定的淘汰,有的公司會生存下來,而有的則會慢慢轉型。因此,產業(yè)互聯(lián)網發(fā)展的過程對于程序員來說,也是一個重大的挑戰(zhàn)。
對于Java程序員來說,在當前的環(huán)境下,應該做好三件事:
第一:立足崗位緊跟技術發(fā)展趨勢。Java程序員一方面要做好本職工作,另一方面也要緊跟技術發(fā)展趨勢,尤其是大數(shù)據(jù)相關方向。大數(shù)據(jù)是未來Java程序員的重要發(fā)展方向之一,應該做好提前準備。
第二:掌握行業(yè)動態(tài)。對于Java程序員來說,一方面要埋頭苦干,另一方面也要抬頭思考,掌握行業(yè)動態(tài),對自己的職場規(guī)劃隨時做出相應的調整。尤其要關注物聯(lián)網、人工智能領域的行業(yè)動態(tài),這是產業(yè)互聯(lián)網的重要技術領域。
第三:了解行業(yè)知識。在產業(yè)互聯(lián)網階段,行業(yè)知識的重要性將得到進一步的重視,因為要想破除傳統(tǒng)行業(yè)的發(fā)展壁壘,一定要有行業(yè)人士的參與。
我從事互聯(lián)網行業(yè)多年,目前也在帶計算機專業(yè)的研究生,主要的研究方向集中在大數(shù)據(jù)和人工智能領域,我會陸續(xù)在酷米寫一些關于互聯(lián)網技術方面的文章,感興趣的朋友可以關注我,相信一定會有所收獲。
如果有互聯(lián)網方面的問題,也可以咨詢我,謝謝!