關于技術人如何成長的問題,一直以來都備受關注,因為程式員職業發展很快,即使是相同起點的人,經過幾年的作業或學習,會迅速拉開極大的差距,所以技術人保持學習,提升自己,才能夠扛得住不斷上趕的后浪,也不至于被“拍死”在沙灘上,
近日,經過一朋友的透露,Alibaba也首發了一份限量的“Java成長筆記”,里面記載的知識點非常齊全,看完之后才知道,差距真的不止一點點!
Java成長筆記主要是將Java程式員按照年限來進行分層,清晰的標注著Java程式員應該按照怎樣的路線來提升自己,需要去學習哪些技術點,
Java成長筆記大致內容如下:
由于本篇內容過多,下面只展示一下大綱,完整版可看原文鏈接:為什么阿里巴巴的程式員成長速度這么快,看完他們的內部資料我明白了
0-1年入門:
- Java基礎復盤(面向物件+Java的超類+Java的反射機制+例外處理+集合+泛型+基礎IO操作+多執行緒+網路編程+JDK新特性)
- Web編程初探(Servlet+MySQL資料庫+商品管理系統實戰)
- SSM從入門到精通(Spring+SpringMVC+Mybatis+商品管理系統實戰-SSM版)
- SpringBoot快速上手(SpringBoot+基于SpringBoot的商品管理系統實戰)
- 零距離互聯網專案實戰(Linux+Redis+雙十一秒殺實戰系統)
1-3年高工:
- 并發編程進階(并發工具類實戰+CAS+顯示鎖決議+執行緒池內部機制+性能優化)
- JVM深度剖析(理解運行時資料區+堆外記憶體解讀+JDK+記憶體泄漏問題排查+Arthas+GC演算法和垃圾回收器+類加載機制等)
- MySQL深度進階
- 深入Tomcat底層(執行緒模型+性能調優)
3-5年資深:
- 資料庫(調優+事務+鎖+集群+主從+快取等)
- Linux(命令+生產環境+日志等)
- 中間件&分布式(dubbo+MQ/kafka、ElasticSearch、SpringCloud等組件)
5-7年架構:
- 開源框架(Spring5原始碼+SpringMVC原始碼+Mybatis原始碼)
- 分布式架構(Zk實戰+RabbitMQ+RocketMQ+Kafka)
- 高效存盤(Redis+mongoDB+MySQL高可用+Mycat+Sharing-Sphere)
- 微服務架構(RPC+SpringBoot+SpringCloud Netflix+SpringCloud Alibaba+docker+k8s)
10年以上送外賣:開個小玩笑
下面是個人總結的學習路線
Java學習路線
Java基礎課程
Java基礎課程內容涉及:Java開發介紹、Java陣列、Java面向物件、常用基礎類、集合、IO流、多執行緒、例外、反射,
一:Java開發介紹
- DOS常用命令
- JVM、JRE、JDK之間的關系
- Java開發環境的搭建:安裝JDK,配置環境變數
- Java入門程式(Java的開發流程)
- Java的注釋,識別符號、識別符號的命名規范
- Java基本資料型別
- 變數和常量的定義及初始化
- Java的運算子
- 運算子的優先級
- Java分支陳述句之if…else
- 回圈的嵌套
- 方法的定義
- 方法的形參和實參
- 方法的遞回呼叫
二、Java陣列
- Java 陣列的定義
- Java 陣列的宣告
- 陣列的優勢與局限
- 陣列的遍歷訪問(普通回圈,增強for回圈)
- 陣列元素的順序查找
- 陣列元素的冒泡法排序
- Arrays工具類的使用
- 二維陣列
三、Java面向物件
- 面向物件設計思想
- 面向物件的分析與設計
- Java與面向物件
- 類中成員變數的定義與意義
- 構造方法的定義和呼叫
- 面向物件的封裝特性
- 區域變數和成員變數的作用域問題
- 靜態屬性、靜態方法、靜態代碼塊
- 面向物件的繼承特性
- 繼承中構造方法的細節
- 面向物件的多型特性
- 抽象方法與抽象類
- 介面
四、例外
- 例外的概念
- 例外的分類
- 例外的理解
- 常見例外介紹
- 運行時例外
- 編譯時例外
- 運行和編譯例外區別
- 例外的處理方式之捕獲例外
- 例外的處理方式之拋出例外
- 例外的處理方式之斷點除錯
- 斷點除錯之引導運行步驟
- 自定義例外
- 例外關鍵字處理
- 關鍵字執行流程
- 例外總結
五、集合
- 集合的概念和作用
- 集合和陣列的區別
- 集合框架體系介紹
- 集合框架之Collection介面
- ArrayList和LinkedList的方法使用
- ArrayList和LinkedList各自的作業原理分析原理分析
- 使用多種方式遍歷集合
- HashSet和LinkedHashSet各自的作業原理分析
- 集合框架之Map介面
- 泛型的使用
- Collections工具類的使用
六、IO流
- File類的作用
- File類中常用方法的使用介紹
- 使用File類操作檔案和檔案夾
- 相對路徑和絕對路徑的介紹
- IO流的概念和作業原理
- IO流的分類
- 檔案流的使用
- 轉換流的使用
- 緩沖流的使用
- 物件流的使用
- 記憶體流的使用
- 使用不同的流實作檔案內容的拷貝
七、多執行緒
- 行程和執行緒的介紹
- 行程和執行緒之間的區別與聯系
- 執行緒實作方式之繼承自Thread類
- 執行緒實作方式之實作Runnable介面
- 執行緒實作方式之執行緒池
- 執行緒的生命周期
- 執行緒中常用方法的使用
END
第二階段:JavaWeb
JavaWeb課程內容涉及:HTML5課程、CSS3、JavaScript、MySQL使用、JDBC連接池、Servlet、JSP、AJAX、jQuery、Bootstrap,
一、HTML5
- html概述
- html基本標簽
- 圖片標簽
- 超鏈接標簽
- 表格標簽
- 無序串列標簽
- 有序串列標簽
- 定義串列標簽
- div標簽
- 語意化標簽
- 表單標簽
二、CSS3
- CSS3簡介和用途
- CSS3書寫規范
- CSS3基本語法
- CSS3三種使用方式
- 標簽選擇器
- Id選擇器
- Class選擇器
- 屬性選擇器
- 層次選擇器
- 文字、文本屬性
- 背景、串列屬性
- 尺寸、顯示、輪廓屬性
- 浮動、定位屬性
- 盒子模型
- CSS3高級屬性
三、JavaScript
- JavaScript概述
- JavaScript發展史
- JavaScript組成
- 資料型別
- 運算子
- 分支陳述句
- 回圈陳述句
- 系統函式、自定義函式、匿名函式
- 常見事件
- 陣列、字串、日期物件
- 正則運算式
- BOM物件:window、history、location
- DOM概念
- DOM操作:創建、修改內容、洗掉
- Css樣式操作
四、MySQL使用 或oracle資料庫
- 資料庫簡介
- MySQL的安裝與使用
- MySQL客戶端和服務器配置
- 用戶權限管理
- DDL創建資料庫和表
- 約束與外鍵
- DML實作添加、修改、洗掉資料
- 聚合函式、日期函式等
- DQL簡單查詢
- 排序、分組、篩選
- 多表查詢
- 子查詢
- in和exists關鍵字
- 分頁查詢
- Mysql SQL陳述句優化介紹
五、JDBC連接池
- JDBC概述
- JDBC使用步驟
- Connection、Statement、ResultSet介面
- 使用JDBC 完成資料庫DML操作
- PreparedStatement物件
- 大資料的操作
- 批量處理與元資料
- 事務處理
- 隔離級別
- 自定義連接池
- DBCP、C3p0連接池
- DBUtis工具類
- QueryRunner
- 自定義結果集處理
- 連接池知識總結
六、Servlet
- Tomcat與Eclipse的集成開發
- 什么是Servlet
- Servlet的進化史
- Servlet的優化程序
- Servlet中應用的多執行緒概念
- Servlet接收客戶端請求資訊
- Servlet回應客戶端資訊
- Servlet的生命周期
- 重定向寫法
- 轉發寫法
- 轉發和重定向區別
- HttpServletRequest獲取中文亂碼問題
- HttpServletResponse回應中文亂碼問題
- Servlet路徑映射問題
- Servlet多路徑映射
七、JSP
- 什么是JSP
- JSP的內置物件
- 透析JSP的本質
- JSTL+EL
- MVC介紹
- 分層的重要性
- Web工程中事務實作
- Session的使用
- Cookie的使用
- web工程中連接池的使用
- 實作用戶的自動登錄
- 檔案的上傳、下載
- 過濾器、 監聽器
- 反射、注解、泛型
- 綜合案例練習
八、AJAX
- Ajax技術背景
- Ajax技術的理解
- XMLHttpRequest使用步驟
- XMLHttpRequest GET/POST的區別
- 同步請求&異步請求
- 同步請求&異步請求的區別
- Ajax獲取不同的回傳值型別
- Ajax使用原生JavaScript和Jquery的區別
- Ajax回應狀態處理
- JSON語法
- Java JSON 決議
- Java JSON 生成
- Java JSON 第三方工具快速決議
- JavaScript JSON轉換
- Jquery JSON轉換
END
Java框架
Java框架課程內容涉及:Spring、Spring MVC、MyBatis、SVN、Git、Maven、SpringBoot
一、Spring
- 框架原理介紹
- 框架環境搭建
- 快速入門
- 創建Bean的方式及實作原理
- Bean種類
- Bean生命周期
- Bean的作用域
- Bean的注值方式
- 整合Junit測驗
- 注解裝配Bean
- 注解裝配Bean
- AOP思想、原理解剖
- AOP底層JDK動態代理
- AOP編程
- AspectJ介紹及實作AOP開發
- 事務
- Web專案集成Spring
二、Spring MVC
- Spring MVC 概述
- 使用 @RequestMapping映射請求
- 請求處理方法簽名概述
- 處理方法簽名詳細說明
- 使用 HttpMessageConverter
- 處理模型資料
- 資料系結流程剖析
- 資料格式化
- 資料校驗
- 視圖和視圖決議器
- 處理方法的資料系結
- 視圖和視圖決議器
- 檔案上傳下載
- JSON處理
- 攔截器
三、MyBatis
- MyBatis資料框架介紹
- MyBatis對比Hibernate框架
- MyBatis配置、查詢資料
- MyBatis全域組態檔
- MyBatis全域組態檔元素詳細介紹
- Mapper映射檔案
- MyBatis兩種開發方式
- MyBatis中別名配置
- MyBatis # 和 $ 拼接引數區別
- 關聯查詢,動態sql
- MyBatis快取機制、整合ehcache
- MyBatis二級快取處理
- MyBatis、Spring、SpringMVC整合
- 分頁插件
- MyBatis逆向工程
四、SVN 和git
- SVN簡介
- SVN和Git對比
- SVN服務器搭建
- SVN創建倉庫
- SVN創建用戶以及分配權限
- SVN簽出、提交、更新
- Eclipse整合svn插件
- Idea整合svn插件
- 使用SVN更新提交
- SVN倉庫分析
- SVN協同修改&沖突解決
- SVN代碼整合注意事項
- SVN權限管理
- SVN資料回滾
- TortoiseSVN
五、Maven
- Maven環境搭建
- Maven構建專案
- Maven本地倉庫配置
- Maven中央倉庫配置
- Maven基本概念
- Maven基本命令介紹
- Maven于Eclipse整合
- Maven于Idea整合
- Maven創建web工程
- pom.xml、依賴管理
- 坐標、依賴、生命周期等
- Eclipse下的Maven使用
- Maven中 繼承、聚合
- Maven構建SSH/SSM應用
- 自動部署、持續集成、持續部署
六、專案開發實戰
總結
雖然我個人也經常自嘲,十年之后要去成為外賣專員,但實際上依靠自身的努力,是能夠減少三十五歲之后的焦慮的,畢竟好的架構師并不多,
架構師,是我們大部分技術人的職業目標,一名好的架構師來源于機遇(公司)、個人努力(吃得苦、肯鉆研)、天分(真的熱愛)的三者協作的結果,實踐+機遇+努力才能助你成為優秀的架構師,
如果你也想成為一名好的架構師,那或許以上這份Java成長筆記與學習路線你需要閱讀閱讀,希望能夠對你的職業發展有所幫助,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/300187.html
標籤:其他
下一篇:60個只有程式員才懂的梗-沒毛病
