1. 程式人生 > >Java進階學習路線圖

Java進階學習路線圖

   職業發展道路基本有3條:

第一條路線(技術專精): 初級Java開發---中級--高階---專案主管--Java專案經理---網站架構師----資深專家
第二條路線(技術轉產品):初級Java開發---中級--產品策劃--產品經理---產品總監
第三條路線(技術轉運營):初級Java開發---中級--運營---運營經理---運營總監
這篇文字主要談第一條路線:技術專精

第一條發展路線:技術專精路線

發展軌跡:初級Java開發---中級--高階---專案主管--Java專案經理---網站架構師----資深專家

第一階段:初級--中級開發工程師(公司基層)   首先學習Java常用框架(Struts MVC、Spring、Hibernate框架)、oracle資料庫、JavaScript指令碼基礎、JSP動態網頁開發、Java程式設計基礎知識,這是一個入門和提高的過程,一般來說,這個階段,快則半年,慢則一年。再學習常用web伺服器配置方面的知識,你應該可以成為一名中級開發工程師。

   這個階段的關鍵在於制定學習計劃,按季度定,制定學習計劃的目的,就是為了形成學習習慣,有助於執行和堅持下去。除了看專業書之外,還可以多在網上討論和回答問題,這個對你的提高也很有幫助。
   我在學習專業書的一些習慣:
   書一本本的看,貪多嚼不爛,在基礎章節多下功夫,高深部分在初期先不看。這樣學習進度可以保障,也有成就感。
   記筆記,記下要點,回顧的時候看要點就行了。
   多做題,不光書上的題,還有網上的資源,也包括回答問題。

【必要技能】:

Java版本區別與瞭解
HTML、CSS
oracle資料庫
JSP動態網頁開發
JavaScript指令碼基礎
Java程式設計基礎
常用團隊協作開發工具
Java常用框架

【錦上添花】:

常用web伺服器配置
軟體需求說明文件寫作

【相關圖書】:

Java虛擬機器規範(Java SE 7版)
瘋狂Java講義(第2版)
HTML、CSS、JavaScript網頁製作從入門到精通
DBA的思想天空:感悟Oracle資料庫本質
Git權威指南
JSP應用與開發技術
Spring 3.x企業應用開發實戰
Struts 2.x權威指南(第3版)
精通Hibernate(第2版)
圖:





圖片來源:6座網




第二階段:成長為高階開發工程師-----Java專案經理(公司中層)
   高階開發工程師需要學習的技能有:軟體工程系統知識、常用演算法、MySQL資料庫、大型伺服器負載均衡優化技術、oracle資料庫、資料結構、需求程式設計文件,測試文件。掌握這些,你應該可以獨擋一面了。

   Java專案經理已經是公司的中層了,這時需要學習的有:高併發網站架構設計、軟體專案風險管理、常見軟體開發模式、DB2資料庫應用、編譯原理 、海量資料庫解決方案。專案經理除了技術過硬以外,還需要學習專案管理方面的知識,比如:流程管理、團隊運營管理。

【必要技能】:

大型伺服器負載均衡技術
軟體工程系統知識
設計模式
資料結構
需求分析設計
常用演算法
MySQL資料庫

【錦上添花】:

HTTP和UNIX域協議
面向物件基礎
高併發網站架構設計
常見軟體開發模式
團隊運營管理
團隊溝通與協作

【相關圖書】:

海量運維、運營規劃之道
軟體工程:實踐者研究方法(原書第7版)
程式設計珠璣(第2版)
資料結構與演算法分析:C語言描述
需求分析與系統設計
演算法心得:高效演算法的奧祕
高效能MySQL
HTTP權威指南
設計模式 可複用面向物件軟體的基礎
構建高效能Web站點(修訂版)

圖2:





第三階段:網站架構師向資深專家發展(公司高層)
   網站架構師工作會用到:資料建模、NoSQL非關係型的資料庫、Windows Server伺服器架設管理、流程管理、Microsoft SQL Server資料庫應用、高併發網站架構設計、分散式系統原理、資料庫系統優化、UNIX/Linux 系統管理、軟體專案風險管理。這時候,你可以以一個資深專家的身份去回答問題,發表一些專業文章,參與行業交流。這也標誌這你已成為公司的高層,有資格進入這個領域的核心圈了。

[必要技能]:

分散式系統原理
DB2資料庫應用
流程管理
資料建模
程式設計語言原理
資料庫系統優化
軟體專案風險管理
Microsoft SQL Server資料庫應用
NoSQL非關係型的資料庫
UML建模語言

[錦上添花]:

軟體開發常用測試
預算管理
資料庫系統優化
統計學
資料探勘
網路安全技術與解決方案(Cisco)

【相關圖書】:

分散式系統:概念與設計(原書第5版)
循序漸進DB2 (第2版)
資料庫程式設計教程
程式設計語言原理
MySQL管理之道:效能調優、高可用與監控
人月神話
深入NoSQL
UML和模式應用(原書第3版)
安全軟體開發之道
資料探勘:概念與技術(原書第3版)
圖3:




第一條技術專精路線基本涵蓋了一個Java網際網路網站開發工程師的整個技術發展生涯,是否能走下去,關鍵在自己,需要不斷的堅持,需要強大的韌性,需要長期專注。

下面附上完整的路線圖:

在技術方面無論我們怎麼學習,總感覺需要提升自已不知道自己處於什麼水平了。但如果有清晰的指示圖供參考還是非常不錯的,這樣我們清楚的知道我們大概處於那個階段和水平。 

Java初級到CTO學習路線圖

Java程式設計師

高階特性

              反射、泛型、註釋符、自動裝箱和拆箱、列舉類、可變

              引數、可變返回型別、增強迴圈、靜態匯入

        核心程式設計

             IO、多執行緒、實體類、

             集合類、正則表示式、

             XML和屬性檔案

             圖形程式設計

             AWT(Java2D/JavaSound/JMF)、Swing、SWT、JFace

        網路程式設計

            Applet、Socket/TCP/UDP、NIO、RMI、CORBA

       Java語法基礎

           類、抽象類、介面、最終類、靜態類、匿名類、內部類、異常類、編碼規範

      Java開發環境

          JDK、JVM、Eclipse、Linux

Java核心程式設計技術

Java,設計而又非常精巧的語言。學習Java,須從Java開發環境開始,到Java語法,再到Java的核心API。

        1.Java開發入門:Java開發環境的安裝與使用,包括JDK命令、EclipseIDE、Linux下Java程式的開發和部署等。

        2.Java語法基礎:基於JDK和Eclipse環境,進行Java核心功能開發,掌握Java面向物件的語法構成,包括類、抽象類、介面、最終類、靜態類、匿名類、內部類、異常的編寫。

        3.Java核心API:基於JDK提供的類庫,掌握三大核心功能:

        A。Java核心程式設計:包括Java程式設計的兩大核心功能——Java輸入/輸出流和多執行緒,以及常用的輔助類庫——實體類、集合類、正則表示式、XML和屬性檔案。

        B。Java圖形程式設計:包括Sun的GUI庫AWT(Java2D、JavaSound、JMF)和Swing,IBM和GUI庫SWT和Jface;

        C. Java網路程式設計:Applet元件程式設計,Socket程式設計,NIO非阻塞Socket程式設計、RMI和CORBA分散式開發。

        4.Java高階特性:掌握JDK1.4、JDK5.0、JDK6.0中的Java高階特性,包括反射、泛型、註釋,以及java高階特性——自動裝箱和拆箱、列舉類、可變引數、可變返回型別、增強迴圈、靜態匯入等。

JavaEE初級軟體工程師

JSF框架開發技術

       配置檔案(頁面導航、後臺Bean)、JSF元件庫(JSF EL語言、HTML標籤、事件處理、)、JSF核心庫(格式轉換、輸入驗證、國際化)

Javaweb核心開發技術       

       開發環境(Eclipse、Linux)

       三大元件(JSP、JavaBean、Servlet)

       擴充套件技術(EL、JSTL、Taglib)

網頁開發技術

       HTML、XML、CSS、JavaScript、AJAX

       資料庫設計技術

       SQL、MySql、Oracle、SQLServer、JDBC

Web伺服器(Tomcat/Jetty/Resin/JBossWeb)

JavaWeb核心技術:

        JavaWeb專案開發的全過程可以分解為:

       網頁開發+資料庫設計——>JavaWeb專案開發,其中,javaWeb由6項基本技術組成:JSP+JavaBean+Servlet+EL+JSTL+Taglib,而JSF正是將這6種技術進行有機結合的技術框架:

JavaEE中級軟體工程師

四種經典架構SSH1、SSI1、SSH2、SSI2

        Struts1表現層框架

      入門配置、核心元件、標籤庫、國際化、資料檢驗、資料庫開發、Sitemesh整合、整合Hibernate/iBATIS

        Struts2表現層框架

               入門配置、核心元件、標籤庫、國際化、資料校驗、Sitemesh整合轉換器、攔截器、整合Hibernate/iBATIS

        Spring業務層框架

              入門配置、IoC容器、MVC、標籤庫、國際化、資料校驗、資料庫開發

        Hibernate持久層框架

            MySQL、Oracle、SQLServer iBATIS持久層框架

            MySQL、Oracle、SQLServer

Web伺服器(Tomcat/Jetty/Resin/JBossWeb)

Java高階軟體工程師

javaWeb開源技術與框架

        工作流、

規則引擎

搜尋引擎、

快取引擎 、

        任務排程、

身份認證

        報表服務、

系統測試、

        叢集、

負載平衡、

故障轉移

JavaWeb分散式開發技術

JTA(Java事物管理)

      JAAS(Java驗證和授權服務)

      JNDI(Java命名和目錄服務)

      JavaMail(Java郵件服務)

JMS(java資訊服務)

WebService(web服務)

JCA(java連線體系)

JMS(java管理體系)

應用伺服器(JBossAS/WebLogic/WebSphere)

JavaEE系統架構師

        面向雲架構(COA)

            COA、SaaS、網格計算、叢集計算、分散式計算、雲端計算

        面向資源架構(ROA)

            ROA、RESI

        面向web服務架構(SOA)

           WebService、SOA、SCA、ESB、OSGI、EAI

        Java設計模式

          建立式模式:抽象工廠/建造者/工廠方法/原型/單例

          構造型模式:介面卡/橋接/組合/裝飾/外觀/享元/代理

          行為型模式:責任鏈/命令/直譯器/迭代子/中介者/備忘錄/觀察者/狀態/策略/模板方法/訪問者

       Java與UML建模

          物件圖、用例圖、元件圖、部署圖、序列圖、互動圖、活動圖、正向工程與逆向工程

CTO首席技術官

         發展戰略

         技術總監

         團隊提升

         團隊建設

         專案管理

         產品管理

 下面的更深入的有興趣可以瞭解一下,我的目的不是要大家掌握下面的知識,只是希望擴充套件自己的思維,摘自牛人的技術部落格。

/**************************************************牛人必看*****************************************************************/

系統後臺框架:

前端工程師技能:

B2C電子商務基礎系統架構解析
運營B2C日 久,越來越深刻的意識到IT系統對確保規範化業務流轉,支撐消費者端的均一服務有著決定性的作用。於是,一直想好好整理下相關的系統架構,怎奈俗務纏身, 一直拖到今日,猛然發現下週娃很可能就要出生,拖無可拖,快馬加筆,居然整出來了。本文的重點是理清系統的邏輯關係,詳細的功能模組請參見結尾附上的系統 架構圖。
首先,聊下對系統邏輯架構的看法;我個人始終堅持認為,系統的開發與演化,前臺嚴格follow消費者的購買流程,後臺則盯牢訂單流轉,牢牢抓住這兩條主線,才能高屋建瓴的看清B2C的邏輯鏈和資料流,更深刻的規劃功能模組,從而更有效支撐實際業務的流轉。
前臺系統包括:商品展示,內容展示,訂單確認,支付系統,使用者中心四大模組
一,商品展示
按照Ebay的內部分類,任何將商品以單個或批量的方式展示給消費者的功能均應歸入此係統。因此,該系統至少包括:
A,站內搜尋(搜尋提示,搜尋規則,搜尋成功頁,搜尋不成功頁,相似推薦)
B,導航(頻道導航,其他導航如銷售排行,廣告位,推薦位,文字鏈,Also buy等)
C,商品分類(品牌分類,品類分類,屬性分類如剪裁形式)
D, 登陸頁(商品列表頁,商品詳細頁,商品活動頁)
這裡的訪問邏輯是:A /B/C分流消費者去往相對個性化的頁面,由登陸頁體現商家的核心訴求和價值傳遞,完成call-to-action的第一步。
二,內容展示
內容展示較為簡單,對純購物品牌而言包括:
A,公告區
B,幫助中心
C,論壇(如需商城與論壇發生互動,則需自行開發,否則可整合discuz做同步登陸即可)
大家都知道,就不多說了。
三,訂單確認
訂單確認,就是幫助消費者正確提交訂單資訊的環節,看似簡單,實則非常複雜,需要對很多資訊邏輯判斷和處理,一般由2個部分組成:
A,購物車(購物車浮層,購物車頁面,無註冊購買)
無註冊購買是需要慎用的功能,除非刻意追求使用者的短平快下單,如團購/換購,一般不推薦使用,會造成系統異常複雜,開發量也很大。
B,訂單提交(返回購物車,收貨地址&地址薄,支付方式判斷,配送方式,發票,訂單標記,實付金額計算等等)
值得一提的是,幾乎大多數的促銷邏輯運算在這個環節完成,充分考慮各種促銷方式之間的互斥與重疊是系統設計的核心,需要充分考慮各種情況,避免出現邏輯漏洞。
四,支付系統
與一般的想象不同,支付系統其實並不簡單等於第三方支付工具接入:
A,外部支付系統(支付寶將介面,財付通介面,網銀直聯埠,信用ka分期埠)
B,內部支付系統(賬戶餘額,積分,禮品卡,優惠券)
支付系統的邏輯設計不但需要考慮到各種極端情況的發生(如一張訂單先用禮品卡,再用積分,最後網銀支付),還要預留財務做賬所需的相關欄位,並充分考慮訂單取消之後如何回滾各類內部賬戶。
五,使用者中心
使用者中心的實質是使用者自助功能的dashboard,一般4個部分組成:
A,註冊&登陸(快速註冊,完整註冊,註冊有禮,推薦註冊,密碼找回,主站id登陸,open-id登陸如QQ,新浪微博等)
B,訂單中心(歷史訂單狀態,中間狀態訂單修改,物流追蹤)
C,服務中心(各類自助服務如退款申請,退換貨申請,建議與投訴等)
D, 資訊管理(使用者基本資訊管理和賬戶資訊管理)
使用者中心的價值在於:儘可能引導使用者自行獲取所需的資訊並提交所需的服務,在提升服務準確率,及時性的同時降低對人工成本。
後臺系統包括:商品&促銷,CRM,訂單處理,WMS,採購管理,財務管理,報表管理,系統設定,WA系統9大模組
一, 商品&促銷
商品&促銷模組的核心在於確保消費者下單之前,前臺內容所見即所得
A, 商品管理(品類管理,品牌管理,單品管理)
B, 促銷管理(活動管理和自定義活動模板管理)
在上述模組中,最重要的是2個部分:單品管理中的批量產品生成的自動程式和活動管理中“共享與互斥”管理。前者用於大幅提升上新速度,後者避免促銷活動失控。
二, CRM
CRM是對B2C核心資源—會員的管理,服務與再營銷系統,包括如下部分:
A,會員管理(會員資訊的增刪改查和到其他系統的連結)
B,使用者關懷(條件觸發和人工觸發相關EDM & 簡訊 & OB)
C,定向營銷(會員分組和營銷活動管理)
D, 客服管理(內容非常多,整合所有需前臺與後臺互動的功能,詳情還是看圖吧)
E, 呼叫中心(IVR,坐席管理,統計報表,引數傳遞與視窗嵌入)
值得注意的,EDM和簡訊通道市面上已經有成熟的外包服務商,一般都會外包;呼叫中心和線上客服自行開發成本太高,特別是呼叫中心繫統,業務初期也都是外包的。
三, 訂單處理
訂單處理是在訂單未正式進入倉儲部門處理之前,對訂單的前置性處理環節。
A,訂單錄入(電話訂購,網上下單,外部團購訂單,無金額訂單錄入如禮品單)
B,訂單稽核(自動稽核和人工稽核)
C,RMA處理(RMA申請單和RMA處理單)
RMA的邏輯也異常複雜,需要在效率和成本之間找平衡,確保在不拖垮倉儲部門的正常出入庫的前提下對消費者端快速有效close工單;對內部則需要控制成本,貨損不能超過預算上限。
四, WMS(Warehouse Management system倉庫管理系統)
WMS的流程很長,功能模組也很多,大致分為入庫管理,庫存管理,出庫管理和票據管理4個模組四個模組,細細道來就是另外一篇文章了,各位可以參考 我這篇文章:庖丁解牛—B2C倉儲內部運作解密(上,中,下)http://blog.sina.com.cn/wangxida0855
五, 採購管理
採購管理的核心是有效跟進採購合同/發票的狀態,大貨的採購入庫/退庫,財務結算和在倉庫存查詢和處理。
A,供應商管理(供應商資訊管理,合同發票管理)
B,採購單管理(PO單管理,負PO單管理)
C,庫存管理(庫存查詢,庫存佔用單,庫存變動log)
六, 財務管理
B2C的財務管理,主要是對供應商,渠道和內部費用支出的成本控制。
A,供應商結算
B,渠道結算
C,配送結算
D, 內部結算
說實在的,哥對財務這塊也不算很瞭解,大家將就看看,圖片上有明細。
七, 報表管理
報表是B2C業務的巨集觀表現,理論上說,每個部門的KPI都應該從中找到。
A,搜尋報表(站內搜尋量查詢)
B,銷售報表(多個維度銷量查詢,優惠券使用情況,報表匯出)
C,財務報表
D, 客服報表(客服日報和坐席報表)
前者反映與消費者發生的日常互動(包括正常與異常),後者考核客服的工作績效
E, 倉儲物流報表
這幾塊報表,是業務運作的核心,涉及到公司機密,就不能寫的太細了,見諒。
八, 系統設定
這塊大家都知道是幹嘛的,也就不多說了,分成三塊。
A,基礎設定(和業務有關的一些欄位值)
B,許可權設定(不同賬號的操作許可權和操作記錄)
C,其他設定
九, WA系統(Web Analytcis)
網站分析系 統,幾乎全是外購,很少有能夠自建的,即使自建,最多做幾個簡單的模組。用於實戰的,要麼是免費的GA(Google Analytics),要麼是昂貴的Omniture。這塊的知識,細細說來也是另外一篇文章了,有興趣的同學可以看我這篇科普文章:揭祕—我所知道的網 站分析(上,下) http://blog.sina.com.cn/wangxida0855
最後,上全系統大圖,再感慨一句,B2C系統,真是一個大工程啊。