分享一份BAT等
從初級到高級Java程序員,需要學習及掌握的技術主要包括:數據結構和算法、Java高級特性、Javaweb核心、數據庫、Java框架與必備工具、系統架構設計等。
1、并發編程:集合框架(源碼)、框架Spring、SpringMVC、Mybatis、Netty、服務器(tomcat、Nginx)、網絡編程、JVM等。
通過深入了解最底層的運作原理,加強邏輯思維,才能編寫出高效、安全的多線程并發程序。
2、設計模式:工廠模式、代理模式等。
設計模式是可復用面向對象軟件的基礎,學習設計模試是每一位Java工程師進階的必經之路,靈活地使用設計模式,可以讓代碼變得簡潔、易懂、復用性更高。
3、研發相關的框架工具:debug、高效去重、代碼review等等。
工欲善其事必先利其器,熟練掌握并應用這些工具,能夠更高效、有質量地工作。
3、分布式架構::分布式Session、分布式緩存、數據庫、一致性、負載均衡、消息隊列(RabbitMQ、ZeroMQ、Kafka)等
隨著業務體量及重要性的增大,單體架構模式無法對應大型應用場景,系統也決不允許存在單點故障導致整體不可用,所以只有垂直或水平拆分業務系統,形成一個分布式的架構來消除單點故障,從而提高整個系統的可用性。
4、微服務:微服務Dubbo和SpringCloud
微服務是Java開發人員最重要的技能之一,因時因地制宜,選擇使用微服務架構的收益將遠遠大于成本。
下面是一張互聯網通用的架構圖,其中每個環節都是微服務的核心部分。
更多微服務相關的知識,Mike在往期發表的“阿里P8架構師談:微服務Dubbo和SpringCloud架構設計、優劣勢比較“一文中有詳細闡述。
5、JVM性能優化:Java內存區域、垃圾回收器、性能優化等
6、架構關鍵基礎設施:zookeeper、分布式消息、異步與MQ、Kafka、Redis、數據儲存、分布式緩存、Nginx等
以上,希望對想要從程序員進階為高級Java、架構師之路的朋友能夠有所幫助。
最后,Mike想說,如果你能夠認清自己以及自己所處的階段,有針對性的去思考、充電,堅持做正確的事,付出比別人更多的努力,你就會比別人更加優秀,擁有更多的機會,這就是我們常說的馬太效應:越努力,越幸運。