好多同學可能會有如下的疑問:
我已經學完JDBC了,那樣參加工作夠用了嗎?
Java SE學到什么樣的程度算是OK了呢?
東西好多啊,我改怎么學啊?我想做項目,不想學原理!
我把SSH都學完了,這樣出去能找到工作嗎?
我把SSH都學完了,那接下去我該學什么呢?
Adroid我到底要不要學呢?我看好多人都在學啊!
……
1.1 Java學習總體方向
對于剛學習Java的同學,了解Java學習的大致結構。當然你能在OraceJava的主頁上看到還有如JavaFX、Java DB這樣的技術。但是既然要和市場接軌,必然要有所取舍。Java SE是我們Java入門的開端,這塊內容也就是大家所熟悉的坦克大戰、聊天軟件、五子棋這些桌面級項目所組成的。學完了Java SE部分,接下來就該選擇方向了。
但這里有亮點需要提出:
往分布式方向并不是一定要經過Java EE階段,但是,學習Java EE對后續分布式的開發有莫大的好處。Java ME雖然還在Orace官網上屹立,但就市場來看,它的地位已經明顯不如adroid高了。所以從目前來看,沒有必要學習Java ME。在學習編程的時候會遇到非常多的問題沒人幫你解決,迷茫是正常的,不怕學不會就怕不想學
1.2Java SE中應該關注的內容
在這一節中,將列出Java SE的學習中應該關注的方面,以及這些方面里主要涉及哪些核心內容。大家可以根據自己的學習情況,對照這些條目,看看有沒有缺漏的內容。在之前提到過如坦克大戰這樣的項目,這些確實能很好的涵蓋了大部分Java SE的內容,所以必要的項目是很關鍵的。
Java SE大致可分為以下幾塊內容:
對象導論:如何用面向對象的思路來開發
深入JVM:Java運行機制以及JVM原理
面向對象的特征:封裝、繼承、抽象、多態
數組和容器:容器的線程安全問題
I/O和IO:IO工作原理和應用
并發編程:cocurret包
網絡編程:TCP/IP+BIO/IO UDP/IP+BIO/IO
JDBC框架和反射:JDI、連接池、aotatio等
其他:正則表達式、字符串等
在這里軟妹子還想多提一點,關于Java SE學到什么深度才合適。其實對于后續學習Java EE或者是Adroid來說,Java SE你只要學會皮毛就足夠應付了,當然這里的皮毛是要求你熟練Java語法結構和基本CRUD操作。
可是這樣真的又夠了么?好多工作了一兩年的程序員肯定又會慢慢懷疑自己的基礎是否足夠扎實,于是他們又拿出了《ThikigIJava》重新通讀一遍。基礎的重要性毋庸置疑,越到后面你越會覺得框架什么的對你的提升幫助很小。而真正有用的還是對Java的深入理解。所以如果你正在擔心你的Java基礎夠不夠,層次到沒到應該有的深度,那你應該先慶幸下,至少你還想著如何提高自己的水平。
在這一階段,你應該看看專門針對每一章節講解的書,比如:《Java Cocurrecy i Practice》、《Java IO》、《深入Java虛擬機》等。資料很多,但是需要你細細的去琢磨。
1.3Java EE中該學點什么
Java EE很雜,但是也很容易學,因為你做幾個網站大概就能把所有知識點串聯起來。所以Java EE方向說好聽點兒的叫企業級應用開發,說難聽點兒的其實就是做網站。當然并不局限于做網站。對于Java EE方向的學習,重點在于能夠熟練的運用各種框架,以及掌握各種框架構成的核心思想。
至于學什么框架,用什么應用服務器,在學習的時候可以采用容易配置的,所有的同類服務都是類似的,精通了一個,相似的學習就很快了。
下面來具體的看各個模塊應該學點兒什么:
序列化:XM、JSO與Java之間的序列化和反序列化
ORM:推薦學習hiberate
JSP/Servet:可以順帶著把JS學習了
sprig:IOC、AOP、Sprig MVC
MVC:推薦學習Struts
Web Service:JDK自帶web service、CXF等框架
SOA:了解ESB、MQ等企業級應用架構。
EJB:主要了解思路。可順帶著學習JBOSS
其他:會使用JMS。了解JTA。
還是一點,Java EE方向的學習主要是會熟練運用即可。大點兒的企業都會有自己的框架,技術含量大同小異。會用即可。當然到了這個階段設計模式的學習也必不可少,設計模式可以穿插于各個框架中進行學習。
1.4關于Java EE之后應該學點兒什么
對于大多數企業來說,如果你能掌握上面提到的相關技術,并且熟悉SQ和iux,那找個Java相關工作應該是沒有問題的了。如果你想更深入的去應用上面所學的知識,分布式、搜索引擎、大數據處理等互聯網熱門技術都是你擴寬技能的方向。
開源的ucee是搜索引擎技術的入門,簡單易學,而且很多企業對搜索引擎的需求越來越大。諸如MIA、Kafka這樣的開源框架,是你步入分布式方向很好的基石。
如果你能了解Hbase、Mogo這樣的非關系型數據庫,那就更有利于你思考大數據的問題。
技術是學不完的,而且更新的速度一定比你學習的速度還要快。所以了解市場需求,了解技術的核心理念尤為重要。至于這一階段可以看什么書,有如下推薦:《分布式Java應用 基礎與實踐》、《Hadoop權威指南》等。
1.5你還需要了解點什么
學無止境,要想在計算機里走的順利點兒,你真的需要不斷的學習。
當然有幾點我認為在計算機學習中相當重要:
學好英語:的資料往往都是英文的文檔。
學好專業基礎課:數據結構、操作系統、網絡這些核心課程都是后續提高的基石。多關心技術發展。