Java進階之路——從初級程式設計師到架構師
怎樣學習才能從一名Java初級程式設計師成長為一名合格的架構師,或者說一名合格的架構師應該有怎樣的技術知識體系,這是不僅一個剛剛踏入職場的初級程式設計師也是工作三五年之後開始迷茫的老程式設計師經常會問到的問題。希望這篇文章會是你看到過的最全面最權威的回答。
from:http://blog.csdn.net/anmiaochu/article/details/51970091
一: 程式設計基礎
不管是C還是C++,不管是Java還是PHP,想成為一名合格的程式設計師,基本的資料結構和演算法基礎還是要有的。下面幾篇文章從思想到實現,為你梳理出常用的資料結構和經典演算法。
1-1 常用資料結構
陣列、連結串列、堆、棧、佇列、Hash表、二叉樹等
1-2 演算法思想
演算法時間複雜度和空間複雜度的分析計算
演算法思想:遞推、遞迴、窮舉、貪心、分治、動態規劃、迭代、分枝界限
1-3 經典演算法
經典排序:插入排序、氣泡排序、快排(分劃交換排序)、直接選擇排序、堆排序、合併排序
經典查詢:順序查詢、二分查詢、二叉排序樹查詢
1-4 高階資料結構
B+/B-數、紅黑樹、圖等
1-5 高階演算法
圖的深度優先搜尋、圖的廣度優先搜尋、拓撲排序、Dijkstra演算法(單源最短路徑)、霍夫曼編碼、輾轉相除法、最小生成樹等
二:Java語言基礎
誕生不過二十餘年的Java語言憑藉其跨平臺、物件導向、適合於分散式計算的特性,廣泛應用於Web網站、移動裝置、桌面應用中,並且已經連續多年穩居TOBIE程式語言排行榜前列,最近更是登上冠軍寶座。Java有哪些優秀而又與眾不同的地方首先一定要清楚。
2-1 基礎語法
Java語法格式,常量和變數,變數的作用域,方法和方法的過載,運算子,程式流程控制,各種基本資料型別及包裝類
2-2 重要:集合類
Collection以及各種List、Set、Queue、Map的實現以及整合關係,實現原理
Collections和Arrays
2-3 其他JavaAPI
String和StringBuffer,System和Runtime類,Date和DateFomat類
java.lang包
java.util包(集合類體系、規則表示式、zip,以及時間、隨機數、屬性、資源和Timer等)
java.math包
java.net包
java.text包(各種格式化類等)
java.security包
2-4 物件導向、面向介面
物件的三大特性:封裝、繼承和多型,優缺點
如何設計類,類的設計原則
this關鍵字,final關鍵字,static關鍵字
物件的例項化過程
方法的重寫和過載;方法和方法的引數傳遞過程
建構函式
內部類,抽象類,介面
物件的多型性(子類和父類之間的轉換、父類紙箱子類的引用),抽象類和介面在多型中的應用
2-5 JVM記憶體模型、垃圾回收
2-6 關於異常
Throwable/Error/Exception,Checked Exception vs. Unchecked Exception,異常的捕捉和丟擲,異常捕捉的原則,finally的使用
2-7 多執行緒
執行緒和程式的概念
如何在程式中建立多執行緒,執行緒安全問題,執行緒之間的通訊
執行緒的同步
死鎖問題的剖析
執行緒池
2-8 IO
java.io包,理解IO體系的基於管道模型的設計思路以及常用IO類的特性和使用場合。
File及相關類,位元組流InputStream和OutputStream,字元流Reader和Writer,以及相應緩衝流和管道流,位元組和字元的轉化流,包裝流,以及常用包裝類使用
分析IO效能
2-9 XML
熟悉SAX、DOM以及JDOM的優缺點並且能夠使用其中的一種完成XML的解析及內容處理;這幾種解析方法的原理
2-10 一些高階特性
反射、代理、泛型、列舉、Java正規表示式
2-11 網路程式設計
網路通訊協議原理及適用場景,Socket程式設計,WEB伺服器的工作原理
2-11 JDK1.5、JDK1.6、JDK1.7、JDK1.8每個版本都比前面一個版本新增了哪些新特性,進行了哪些提升
三:資料庫相關
前面說到了資料結構,資料庫簡單來說就像是電子化的檔案櫃,是按照一定的資料結構來組織、儲存和管理資料的倉庫。
3-1理論基礎
資料庫設計原則和正規化
事務(ACID、工作原理、事務的隔離級別、鎖、事務的傳播機制)
3-2 各種資料庫優缺點、使用場景分析
MySQL/SQLServer/Oracle以及各種NoSQL(Redis、MongoDB、Memcached、HBase、CouchDB等)
3-2 SQL語句
資料庫建立,許可權分配,表的建立,增刪改查,連線,子查詢
觸發器、儲存過程、事務控制
3-3 優化
索引原理及適用,大表查詢優化,多表連線查詢優化,子查詢優化等
3-4 分庫、分表、備份、遷移
匯入、匯出,分庫、分表,冷備熱備,主從備份、雙機熱備、縱向擴充套件、橫向擴充套件
3-5 JDBC
JDBC Connection、Statement、PreparedStatement、CallableStatement、ResultSet等不同類的使用
連線池(配置使用、實現原理)
ORM,DAO
四:JavaWeb核心技術(包括部分前端)
Html5/Css/JS原生/jQuery
Ajax(跨域等)
JSP/JavaBean/Servlet/EL/JSTL/TabLib
JSF
JSON
EJB
序列化和反序列化
規則引擎
搜尋引擎
模板引擎
快取
身份認證
測試
叢集
持久化
生成靜態頁技術
高效能
安全
事務JTA
其他需要了解的,如:管理JMX、安全JCCA/JAAS、整合JCA、通訊JNDI/JMS/JavaMain/JAF、SSI技術
五、主流框架及工具
Struts1/Struts2
Spring(IoC、AOP等),SpringMVC
持久化:Hibernate/MyBatis
日誌:Log4j
單元測試:JUnit
訊息佇列:ActiveMQ、RabbitMQ等
負載均衡:Nginx/HaProxy
Web伺服器:Tomcat、JBoss、Jetty、Resin、WebLogic、WebSphere等
通訊:WebService(cxf的soap、restful協議)
快取:Redis、Memcached
工作流:Activity、JBPM
搜尋引擎:lucene,基於lucene封裝的solr
模板引擎:Velocity、FreeMaker
大資料:Hadoop(HDFS和MapReduce)
構建工具:Ant/Maven
六、JavaWeb系統設計與架構
Java設計模式
JAVA與UML建模
面向服務架構:SOA/SCA/ESB/OSGI/EAI,微服務
面向資源架構:ROA/REST
面向雲架構:COA/Saas/雲端計算
大型網站負載均衡、系統調優等
七、More
排錯能力:
應該可以根據異常資訊比較快速的定位問題的原因和大致位置
優化能力
程式碼規範、程式碼管理:
有自己的程式碼規範體系,程式碼可讀性好
知識面廣:
懂各種網路產品及特性,懂各種中介軟體,能夠知道坑在哪兒,深諳各種技術方案的優缺點,懂整合各種資源並達到最優....瞭解各種技術及應用場景,有足夠的工作經驗解決整合中遇到的各種奇葩問題
技術管理/技術總監:
產品管理、專案管理、團隊建設、團隊提升
CTO:
發展戰略
相關文章
- 10年資深架構師分享 | 普通程式設計師向架構師進階之路架構程式設計師
- 從Java程式設計師到架構師,從工程師到技術專家,迷茫之路如何點亮Java程式設計師架構工程師
- 怎麼從初、中級Java程式設計師過渡到高階Java程式設計師?Java程式設計師
- 如何從初級程式設計師變成高階程式設計師?程式設計師
- Java從程式設計師到架構師其實並不難Java程式設計師架構
- 程式設計師的進階之路程式設計師
- 如何從初級程式設計師順利晉升到高階程式設計師?程式設計師
- java架構師之路:JAVA程式設計師必看的15本書Java架構程式設計師
- 從程式設計師到架構師,有捷徑嗎?程式設計師架構
- 架構師之路:從Java碼農到年薪八十萬的架構師架構Java
- java程式設計師進階架構師你必須掌握的架構知識體系Java程式設計師架構
- 從程式設計師到架構師的方法與邏輯程式設計師架構
- 從需求出發:專業程式設計師進階之路程式設計師
- 初級Java程式設計師和Java架構師的區別:內功心法修煉圖Java程式設計師架構
- Java程式設計師從“0到1”的修煉之路Java程式設計師
- 初級JAVA程式設計師的困惑Java程式設計師
- 程式設計師職業發展路徑圖:從菜鳥工程師到高階架構師程式設計師工程師架構
- Java初級~中級~高階進階之路Java
- java從程式設計師,到架構需要什麼?(banq幫我看看)Java程式設計師架構
- 程式設計師到高階架構師,必須經歷的三個階段!程式設計師架構
- 從程式設計師升級到工程師 (轉)程式設計師工程師
- JAVA程式設計師之路Java程式設計師
- 架構師之路—理解設計模式架構設計模式
- 從程式設計師到解決方案架構師的簡單指南 - Dev程式設計師架構dev
- 圖解|搞定分散式?程式設計師進階之路圖解分散式程式設計師
- 一個程式設計師的技術進階之路程式設計師
- 程式設計師進階之路—如何獨當一面程式設計師
- 程式設計師,如何從開發轉型做架構師?程式設計師架構
- 阿里架構師Peter老師講述Java程式設計師→架構師所需要掌握的技能阿里架構Java程式設計師
- 從程式設計師到大型分散式架構師,自己到底位於哪裡(一)程式設計師分散式架構
- 從程式設計師到大型分散式架構師,自己到底位於哪裡(二)程式設計師分散式架構
- 架構師之路架構
- 【程式設計師的遊戲開發之路】 遊戲架構程式設計師遊戲開發架構
- 程式設計師自我發展之路:從態度到方法程式設計師
- JAVA程式設計師成長之路Java程式設計師
- Java程式設計師如何成為優秀的架構師Java程式設計師架構
- 進階Java架構師必看的15本書Java架構
- 程式設計師職業發展之路思考:工程師的等級階梯程式設計師工程師