原文:5ceo:灑落一地的陽光 .的--->《程序員養成架構師之路》html
怎樣學習才能從一名Java初級程序員成長爲一名合格的架構師,或者說一名合格的架構師應該有怎樣的技術知識體系,這是不只一個剛剛踏入職場的初級程序員也是工做三五年以後開始迷茫的老程序員常常會問到的問題。但願這篇文章會是你看到過的最全面最權威的回答。前端
不論是C仍是C++,不論是Java仍是PHP,想成爲一名合格的程序員,基本的數據結構和算法基礎仍是要有的。下面幾篇文章從思想到實現,爲你梳理出經常使用的數據結構和經典算法。 java
數組、鏈表、堆、棧、隊列、Hash表、二叉樹等程序員
算法時間複雜度和空間複雜度的分析計算正則表達式
算法思想:遞推、遞歸、窮舉、貪心、分治、動態規劃、迭代、分枝界限redis
經典排序:插入排序、冒泡排序、快排(分劃交換排序)、直接選擇排序、堆排序、合併排序算法
經典查找:順序查找、二分查找、二叉排序樹查找spring
B+/B-數、紅黑樹、圖等數據庫
1-5 高級算法編程
圖的深度優先搜索、圖的廣度優先搜索、拓撲排序、Dijkstra算法(單源最短路徑)、霍夫曼編碼、展轉相除法、最小生成樹等
誕生不過二十餘年的Java語言憑藉其跨平臺、面向對象、適合於分佈式計算的特性,普遍應用於Web網站、移動設備、桌面應用中,而且已經連續多年穩居TOBIE編程語言排行榜前列,最近更是登上冠軍寶座。Java有哪些優秀而又不同凡響的地方首先必定要清楚。
Java語法格式,常量和變量,變量的做用域,方法和方法的重載,運算符,程序流程控制,各類基本數據類型及包裝類
Collection以及各類List、Set、Queue、Map的實現以及集成關係,實現原理
Collections和Arrays
String和StringBuffer,System和Runtime類,Date和DateFomat類
java.lang包
java.util包(集合類體系、規則表達式、zip,以及時間、隨機數、屬性、資源和Timer等)
java.math包
java.NET包
java.text包(各類格式化類等)
java.security包
對象的三大特性:封裝、繼承和多態,優缺點
如何設計類,類的設計原則
this關鍵字,final關鍵字,static關鍵字
對象的實例化過程
方法的重寫和重載;方法和方法的參數傳遞過程
構造函數
內部類,抽象類,接口
對象的多態性(子類和父類之間的轉換、父類紙箱子類的引用),抽象類和接口在多態中的應用
Throwable/Error/Exception,Checked Exception vs. Unchecked Exception,異常的捕捉和拋出,異常捕捉的原則,finally的使用
線程和進程的概念
如何在程序中建立多線程,線程安全問題,線程之間的通信
線程的同步
死鎖問題的剖析
線程池
java.io包,理解IO體系的基於管道模型的設計思路以及經常使用IO類的特性和使用場合。
File及相關類,字節流InputStream和OutputStream,字符流Reader和Writer,以及相應緩衝流和管道流,字節和字符的轉化流,包裝流,以及經常使用包裝類使用
分析IO性能
熟悉SAX、DOM以及JDOM的優缺點而且可以使用其中的一種完成XML的解析及內容處理;這幾種解析方法的原理
反射、代理、泛型、枚舉、Java正則表達式
網絡通訊協議原理及適用場景,Socket編程,WEB服務器的工做原理
前面說到了數據結構,數據庫簡單來講就像是電子化的檔案櫃,是按照必定的數據結構來組織、存儲和管理數據的倉庫。
數據庫設計原則和範式
事務(ACID、工做原理、事務的隔離級別、鎖、事務的傳播機制)
MySQL/SQLServer/Oracle以及各類NoSQL(Redis、MongoDB、Memcached、Hbase、CouchDB等)
數據庫建立,權限分配,表的建立,增刪改查,鏈接,子查詢
觸發器、存儲過程、事務控制
索引原理及適用,大表查詢優化,多表鏈接查詢優化,子查詢優化等
導入、導出,分庫、分表,冷備熱備,主從備份、雙機熱備、縱向擴展、橫向擴展
JDBC Connection、Statement、PreparedStatement、CallableStatement、ResultSet等不一樣類的使用
鏈接池(配置使用、實現原理)
ORM,DAO
應該能夠根據異常信息比較快速的定位問題的緣由和大體位置
有本身的代碼規範體系,代碼可讀性好
懂各類網絡產品及特性,懂各類中間件,可以知道坑在哪兒,深諳各類技術方案的優缺點,懂整合各類資源並達到最優....瞭解各類技術及應用場景,有足夠的工做經驗解決集成中遇到的各類奇葩問題
產品管理、項目管理、團隊建設、團隊提高
發展戰略