Java程序員有着廣闊的前景,從數據來看,有超過一半的公司在使用Java 前端
崗位也是是排行第一 程序員
根據TIOBE的編程語言排行榜,排名第一 web
工資收入也比較高 spring
Java主要用於後端服務器開發以及Android開發,須要很是全面的技術棧,單論Java語言自己來講可能3個月就夠了,可是加上各類框架,好比spring boot, spring web, mybatis等等,以及包括安全控制,認證鑑權,參數校驗,數據庫特性,數據庫優化,網絡請求,服務器部署,依賴管理,版本管理。 乃至到目前流行的分佈式架構,註冊中心,配置中心,服務間訪問,鏈路容錯,MQ,全鏈路監控,JVM調優,線上問題排查等等,能夠說是要求最全面,難度最大的一個職業,以上還僅僅是技術方面要求,這些只是職位的基本要求,只佔50%。數據庫
還有一半是你對業務的瞭解,這一部分甚至更爲重要。好比作電商的要去了解電商,作外賣的要了解外賣,作教育的要了解教育。技術是爲業務服務的,業務都沒了,技術就沒有存在的必要了。所以你還得不斷去研究目前業務是怎麼樣的,將來如何規劃,怎麼樣纔是最好,一個好的開發是半個產品經理,並且會比產品經理考慮的更細。編程
1 項目經理
當你度過了小白階段,會有幾個分支選擇,其中一個就是項目經理,你須要做爲項目的總負責人帶領團隊,專一於交付。好比產品經理作了一個需求,你就是負責實現這個需求的人,你須要和產品經理澄清這個需求,哪些該作哪些是作不了,制定工做計劃,天天跟蹤開發進度,跨部門協調處理上下游系統問題,生產問題要能排查,開發結束後還要協調測試進行測試,協調運維人員上線,最終完成上線任務。至關於一個系統owner,出了問題都是你責任,能夠比喻成帶兵打仗的一線指戰員,帶隊伍,打硬仗。後端
2 架構師
若是專一於技術路線,那下一個階段就是架構師了,要求技術上十分精通,能解決幾乎全部的技術問題,不論是後端,或者是前端,數據庫。你須要完成技術選型(是用cloud仍是dubbo,Rabbit仍是Rocket),數據庫選型(MySQL仍是TiDB),系統規劃(將來要作啥),業務邊界劃分:功能作到在哪一個系統,一般這是最困難的一部分,部門之間歸屬撕逼現象嚴重,功能有些想作(搶地盤),有些不想作(甩鍋),你們都是聰明人,理由也五花八門,有時候你都搞不清楚是真不知道仍是假不知道,須要特別考驗智商和情商了。須要搞清楚對方的真實想法,儘可能達成一致,能堅持的必須堅持,要妥協的就認慫,因此不只須要高智商,也須要高情商。安全
3 產品經理 產品經理就不屬於技術線了,程序員出身的產品經理不佔少數,好比最著名的產品經理張小龍。產品經理須要前端對業務/用戶很是熟悉,也須要知道系統邊界在哪裏,哪些能作,哪些不能作,而程序員出身的技術背景無疑會有很大的幫助。服務器
潛力巨大。CTO通常會從架構師中出,後端業務邏輯多,是與業務部門,與需求鏈接最爲緊密的一個部門,可以接觸到核心業務,而業務纔是公司真正的利益所在,所以對於我的成長比較有幫助。網絡
入行難,門檻高。後端應該是門檻最高的一個崗位,所謂的Java程序員不僅僅是Java一門語言而已,還涉及到數據庫,網絡,操做系統,分佈式等一系列知識。不只入門困難,還須要不斷挑戰自我,去自我驅動學習,對於人才的基本要求會比較高。