我是 35 歲的底層碼農,如果我​再年輕十歲,會這樣學習 Java!

學習編程語言,是一件很痛苦的事情,但是在學到一定程度下,將會變成一件很有成就感的事情,那麼接下來,對於整個學習路線,我做了一個簡單的規劃。

分為3個階段:

我是 35 歲的底層碼農,如果我​再年輕十歲,會這樣學習 Java!

這三個階段,分別對應三種不同的學習方式:

入坑階段:

大多數人會從這一階段走向失敗,俗稱《從入門到放棄》,這一階段的主要內容,重點是處於對編程這一概念進行了解的階段。無論什麼樣的語言,其實都會有一個比較簡單的基礎,這也是你入坑的第一步。

學習階段:

這一階段才是真正的學習階段,你要通過不斷的學習,進一步的認知編程,並最終能夠讓自己的水平符合企業開發的標準。具體細節我會在後面詳細說明,這一部分語言的話主要以java為主。

放飛自我階段:

這一階段說實話我也只是聽說過,之前入坑的第一節課,老師就給我講了這個階段的高手。他們如同江湖中的俠客一般,浪跡江湖,四海為家。基本每到一個地方,都會留下他們的傳說,收入的話,都是幫當地的公司解決一些技術上的難題,然後又繼續自己的旅行。


那麼下面,我們就學習階段,來詳細描述一下:

學習主要分為11個階段,分別為:

我是 35 歲的底層碼農,如果我​再年輕十歲,會這樣學習 Java!

一、Java基礎

JavaSE基礎是Java中級程序員的起點,是幫助你從小白到懂得編程的必經之路。

在Java基礎板塊中有6個子模塊的學習:1.基礎語法,可幫助你建立基本的編程邏輯思維;2.面向對象,以對象方式去編寫優美的Java程序;3.集合,後期開發中存儲數據必備技術;4.IO,對磁盤文件進行讀取和寫入基礎操作;5.多線程與併發,提高程序效率;6.異常,編寫代碼邏輯更加健全;7.網絡編程,應用服務器學習基礎,完成數據的遠程傳輸。

實際作出:簡單的管理系統、坦克大戰遊戲、QQ通信等

二、數據庫

數據庫不僅僅是Java開發工程師的必學課程,也是其他語言都需要掌握的技能。用於對交互過程中客戶的數據進行存儲。該板塊包括關係型數據庫和非關係型數據庫。例如:MySQL、oracle、redis、MongoDB等。數據庫學習完畢後,可以將數據存儲到數據庫中,也可以通過SQL語句從數據庫中查詢數據,結合Java項目可以實現動態站點的數據的保存。

這一部分並不能實際作出東西,但是作為基礎技術,必須要有基本的瞭解。

三、前端技術

Javaweb階段包括前端、數據庫和動態網頁。Javaweb是互聯網項目的入門課程,是學習後面高進階課程的基礎。該板塊主要包括如下幾個模塊:1.HTML5,網頁製作標記語言;2.CSS,對HTML製作網頁進行美化;3.JavaScript,嵌入在頁面中的腳本語言,具備邏輯性;4.Vue,前端框架,簡化了與服務器端交互的操作,用戶良好的交互體驗是必不可少的。

實際作出:學習前端技術後,可以完成類似京東、淘寶的前端工程的編寫。

我是 35 歲的底層碼農,如果我​再年輕十歲,會這樣學習 Java!

四、動態網頁技術

動態網頁是中級程序員服務器端編程的基礎,是高級框架學習的必備課程,後期學習的框架、服務底層都是基於動態網頁技術之上的。該板塊包括Javaweb核心技術、包括Servlet、Request、Response、Cookie和Session等,通過這些技術的學習可以完成動態站點開發,可更好的完成服務器端與客戶的交互,讓頁面的數據“動”起來,做出小型的應用系統。

實際作出:三里做出的頁面,從靜態變成動態。繼續表現為:頁面數據將隨著後端配置改變而改變。

五、編程強化

編程強化是對解決實際問題方面做一個深入的瞭解和應用,是對JavaSE基礎的加強,對後期自動以框架和對一些服務框架的底層理解做支撐。編程強化板塊主要包括如下幾個模塊:多線程高級、涉及線程內存、線程通信等;JVM優化,對JVM底層進行調優來提高項目執行效率;NIO,同步非阻塞IO來提高效率。

實際作出:學習該階段,可以對原有項目進行優化從而使程序更快更穩定。

六、熱門技術框架

使用Javaweb進行企業級開發是完全可以的,但是開發效率比較低,所以對常用的邏輯操作進行封裝就形成了框架,因此框架是企業開發的入門技能。熱門框架板塊主流框架有如下幾個:Spring框架,佔據統治地位,其生態系統涉及各個方面解決方案;MyBatis框架,使用ORM思想對數據庫進行操作;在這個基礎上,我們還要學習Spring-boot,該框架對Spring進行了縮減,進一步集成了大量的API,使得企業級開發的效率大大加強,SpringBoot,簡化Spring應用的初始搭建以及開發過程;實際作出:該板塊學習後,就可以進行真實企業級項目開發了,做出的項目也會更加符合企業要求。

七、分佈式架構方案

隨著互聯網的發展,業務的複雜性和用戶的體驗性都需要提高,所以分佈式架構出現了。該板塊主要講解的是分佈式架構的相關解決方案。主要包括如下模塊:Dubbo,高性能的 RPC 服務發佈和調用框架;谷歌的grpc服務,該服務在多種語言的模式下,具有很高的兼容性;Spring Cloud,一系列框架的有序集合,如服務發現註冊、配置中心、負載均衡、斷路器、數據監控等。

實際作出:該板塊的學習,可以具備大型互聯網項目開發的必備技術和實際經驗,為進入BATJ打下基礎

我是 35 歲的底層碼農,如果我​再年輕十歲,會這樣學習 Java!

八、服務器中間件

中間件板塊是大型互聯網項目中必備的。服務中間件可以幫助各子模塊間實現互相訪問,消息共享或統一訪問等功能。其包括遠程服務框架中間件,例如阿里(Apache)的RPC框架Dubbo等;消息隊列中間件,例如:阿里巴巴開源分佈式中間件RocketMQ、高吞吐量消息發佈和流處理服務Kafka等,還有騰訊旗下的cmq等。

實際作出:學習服務中間件是中級JavaEE工程師必要技術,也是JavaEE架構師必須精通的技術。

九、服務器技術

不管是使用原生Javaweb進行開發,還是使用框架進行開發,項目最終需要對外發布才能供全世界的人訪問到,而服務器板塊就可以解決這個問題,所以服務器是項目發佈的必要技術。該板塊包括虛擬化和web應用服務器的學習,主要包括如下幾個模塊:Vmware,虛擬機軟件;Linux,專門用於服務器的系統;Nginx,集群部署時反向代理服務器;Tomcat,項目發佈時主要使用的服務器。

實際作出:該板塊學習後,我們就可以把開發好的項目發佈到服務器中,然後供你的小夥伴遠程訪問了,超酷!

十、容器技術

容器化技術是近兩年超級火的一個專題,通過容器化技術可以對環境進行打包,方便移植,大大提高了開發效率。該板塊包括容器化技術Docker和其平臺管理引擎Kubernetes,其中,Docker 是一個開源的應用容器引擎,可以打包應用以及依賴包到一個可移植的鏡像中,然後發佈到任何流行的Linux或Windows 機器上,也可以實現虛擬化。而Kubernetes是一個開源的,用於管理雲平臺中多個主機上的容器化的應用,Kubernetes的目標是讓部署容器化的應用簡單並且高效。

實際作出:通過該板塊的學習,你可以通過上述技術快速搭建環境,節省開發時間,提高開發效率。

十一、業務解決方案

雖然我們已經具備了基礎技術和高階技術,但是要想與企業開發相接軌,還需要對實際項目的業務解決方案進行探究。

實際作出:此版塊就是在實際業務場景中的真實解決方案集合,常用的業務解決方案有如下:搜索業務場景解決方案、日誌收集與分析場景解決方案、工作流引擎場景解決方案、任務調度場景解決方案、地圖開發平臺場景解決方案、支付開放平臺場景解決方案、圖表可視化場景解決方案。通過分析實際業務來學習這個解決方案技術集,完全可以達到中級甚至高級工程師水平。

關注微信公眾號【計算機俱樂部】,回覆關鍵字【java學習階段】,獲取java學習階段高清思維導圖。



分享到:


相關文章: