java學習路線(轉)

1        概述

學過一段時間的同學一定會覺得Java學習最頭疼的不是語法結構的繁雜,而是Java本身體系結構的龐大。以至於自己不知道接下去該學什麼,或者什麼樣的知識才會對後續的學習有幫助。本節內容將讓大家對Java學習的路線有個宏觀的把握。在與市場接軌的前提下,我們會推薦給各位同學相關學習的方向和技術,以及學習到何種程度才能適應基本的工作。

好多同學可能會有如下的疑問:

l  我已經學完JDBC了,那樣參加工作夠用了嗎?

l  Java SE學到什麼樣的程度算是OK了呢?

l  東西好多啊,我改怎麼學啊?我想做項目,不想學原理!

l  我把SSH都學完了,這樣出去能找到工作嗎?

l  我把SSH都學完了,那接下去我該學什麼呢?

l  Android我到底要不要學呢?我看好多人都在學啊!

……

下面的內容將會帶你理清這些甚至更多疑問。

 

1.1  Java學習總體方向

對於剛學習Java的同學,應該瞭解下面這張圖1-1,瞭解Java學習的大致結構。當然你能在Oracle Java的主頁上看到還有如Java FX、Java DB這樣的技術。但是既然要和市場接軌,必然要有所取捨。

對於圖1-1,Java SE是我們Java入門的開端,這塊內容也就是大家所熟悉的坦克大戰、聊天軟件、五子棋這些桌面級項目所組成的。學完了Java SE部分,接下來就該選擇方向了。

圖上標註的很明顯,但這裏有亮點需要提出:

1)        往分佈式方向並不是一定要經過Java EE階段,但是,學習Java EE對後續分佈式的開發有莫大的好處。

2)        Java ME雖然還在Oracle官網上屹立,但就市場來看,它的地位已經明顯不如android高了。所以從目前來看,沒有必要學習Java ME。

圖1-1 Java學習總體方向

 

1.2  Java SE中應該關注的內容

在這一節中,將列出Java SE的學習中應該關注的方面,以及這些方面裏主要涉及哪些核心內容。大家可以根據自己的學習情況,對照這些條目,看看有沒有缺漏的內容。在之前提到過如坦克大戰這樣的項目,這些確實能很好的涵蓋了大部分Java SE的內容,所以必要的項目是很關鍵的。

圖1-2 Java SE組織結構

如圖1-2所示, Java SE大致可分爲以下幾塊內容:

n  對象導論:如何用面向對象的思路來開發

n  深入JVM:Java運行機制以及JVM原理

n  面向對象的特徵:封裝、繼承、抽象、多態

n  數組和容器:容器的線程安全問題

n  I/O和NIO:NIO工作原理和應用

n  併發編程:concurrent包

n  網絡編程:TCP/IP+BIO/NIO UDP/IP+BIO/NIO

n  JDBC框架和反射:JNDI、連接池、annotation等

n  其他:正則表達式、字符串等

在這裏我還想多提一點,關於Java SE學到什麼深度才合適。其實對於後續學習Java EE或者是Android來說,Java SE你只要學會皮毛就足夠應付了,當然這裏的皮毛是要求你熟練Java語法結構和基本CRUD操作。

可是這樣真的又夠了麼?好多工作了一兩年的程序員肯定又會慢慢懷疑自己的基礎是否足夠紮實,於是他們又拿出了《Thinking In Java》重新通讀一遍。基礎的重要性毋庸置疑,越到後面你越會覺得框架什麼的對你的提升幫助很小。而真正有用的還是對Java的深入理解。所以如果你正在擔心你的Java基礎夠不夠,層次到沒到應該有的深度,那你應該先慶幸下,至少你還想着如何提高自己的水平。

在這一階段,你應該看看專門針對每一章節講解的書,比如:《Java Concurrency in Practice》、《Java NIO》、《深入Java虛擬機》等。資料很多,但是需要你細細的去琢磨。

 

1.3  Java EE中該學點什麼

Java EE很雜,但是也很容易學,因爲你做幾個網站大概就能把所有知識點串聯起來。所以Java EE方向說好聽點兒的叫企業級應用開發,說難聽點兒的其實就是做網站。當然並不侷限於做網站。

對於Java EE方向的學習,重點在於能夠熟練的運用各種框架,以及掌握各種框架構成的核心思想。至於學什麼框架,用什麼應用服務器,在學習的時候可以採用容易配置的,所有的同類服務都是類似的,精通了一個,相似的學習就很快了。

圖1-3 Java EE方向學習內容

下面來具體的看各個模塊應該學點兒什麼:

n  序列化:XML、JSON與Java之間的序列化和反序列化

n  ORM:推薦學習Hibernate

n  JSP/Servlet:可以順帶着把JS學習了

n  Spring:IOC、AOP、Spring MVC

n  MVC:推薦學習Struts

n  Web Service:JDK自帶web service、CXF等框架

n  SOA:瞭解ESB、MQ等企業級應用架構。

n  EJB:主要了解思路。可順帶着學習JBOSS

n  其他:會使用JMS。瞭解JTA。

還是一點,Java EE方向的學習主要是會熟練運用即可。大點兒的企業都會有自己的框架,技術含量大同小異。會用即可。當然到了這個階段設計模式的學習也必不可少,設計模式可以穿插於各個框架中進行學習。

 

1.4  關於Java EE之後應該學點兒什麼

對於大多數企業來說,如果你能掌握上面提到的相關技術,並且熟悉SQL和Linux,那找個Java相關工作應該是沒有問題的了。如果你想更深入的去應用上面所學的知識,分佈式、搜索引擎、大數據處理等互聯網熱門技術都是你擴寬技能的方向。

開源的Lucene是搜索引擎技術最好的入門,簡單易學,而且很多企業對搜索引擎的需求越來越大。

諸如MINA、Kafka這樣的開源框架,是你步入分佈式方向很好的基石。

如果你能瞭解HBase、Mongo這樣的非關係型數據庫,那就更有利於你思考大數據的問題。

技術是學不完的,而且更新的速度一定比你學習的速度還要快。所以瞭解市場需求,瞭解技術的核心理念尤爲重要。至於這一階段可以看什麼書,有如下推薦:《分佈式Java應用 基礎與實踐》、《Hadoop權威指南》等。

 

1.5  你還需要了解點什麼

學無止境,要想在計算機裏走的順利點兒,你真的需要不斷的學習。

當然有幾點我認爲在計算機學習中相當重要:

1)        學好英語:最好的資料往往都是英文的文檔。

2)        學好專業基礎課:數據結構、操作系統、網絡這些核心課程都是後續提高的基石。

3)        多關心技術發展。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章