JAVA自學之路css
JAVA自學之路 一:學會選擇 爲了就業,很多同窗參加各類各樣的培訓。
決心作軟件的,大多數人選的是java,或是.net,也有一些選擇了手機、嵌入式、遊戲、3G、測試等。 html
那麼究竟應該選擇什麼方向呢?
個人意見是,不要太過相信各類培訓機構或是搶手文章的說法(包括我),當你要走向社會的時候,就不要再把本身當成學生,不要把本身的未來交給別人,學會運用本身的眼睛去觀察,去了解這個世界吧。 java
每一個培訓機構都會宣傳本身的好處,並不能說明大的趨勢。 一些新聞文章頗有多是槍手寫的,沒必要太過相信。 國外背景的教師和課程,未必適合你。
那麼怎麼才能肯定本身未來的方向?如何才能從紛繁複雜、或真或假的數據世界中挖出一條路? 我講一個經過招聘網站的觀察方法。
能夠到各類招聘的網站上查詢信息(能夠到google上查詢招聘的網站),例如: http://www.51job.com http://www.chinahr.com http://www.zhaopin.com 以及csdn的招聘頻道等
還有一個網站也不錯,http://www.jobui.com,綜合了各大招聘網站的數據。
這些數據都是最真實不摻假的原始數據,你能夠每隔一段時間搜索一次,一些規律就會被總結出來了。 好比說我在http://www.jobui.com中搜索java,全國大概提供了3萬個職位。
而後要多翻幾頁,這樣不只可以看清楚大概有多少是有效的職位,並且還能夠看清楚用人單位最關心的技能是什麼,這個很重要,決定着你未來要花多少時間和精力在特定的知識點上,好比說swing,搜了一下,全國只有700個左右的職位,仔細讀了一下,也並不是全是有效的職位,花太多時間和精力在這個上面就不值得了,固然本身感興趣或者爲了研究的話另當別論。不過若是是爲了快速的就業,把太多時間和精力花在不少職業生涯的前1、二年用不到的知識上就太惋惜了。 同時,並不是某一個行業的職位數目少,就不能看成一個方向進行選擇,好比.NET,我搜索到的職位數是1.6萬左右,比java少,是否是就選java了呢?不必定,由於java職位雖然多,可是可能競爭者可能也多,有些方向雖然職位數很少,可是和你競爭這些職位的人數量也少,不見得就不能選擇。
不過,若是某一個方向的職位數目過少,你可就要當心了,選擇這樣的方向風險會很是大,如J2ME。
我我的以爲java/J2EE、.net、嵌入式開發是不錯的三個方向。 若是非要在java和.net中選擇的話,我我的是推薦java的,緣由:
1:Java可以開發linux、unix服務器上的程序
2:JavaEE和.NET在企業應用方面的關注點是差很少的,可是學習了java若是未來想轉到.net上會比較簡單,幾天的學習而後上手開發應該是問題不大的,可是反之就不行了。 固然若是有了些經驗以後,你就會發現語言或者平臺再也不是技術上的阻礙,一些原理性的東西學到手,而後再加上項目經驗,使用什麼平臺,反而不是最重要的。不過若是非要用一種平臺進入企業開發的領域,至少在目前,2007年9月,我推薦java。
徹底能夠不一樣意個人觀點,可是無庸置疑,若是是爲了就業,多到招聘網站閱讀閱讀職位的信息,對你未來的方向和學習是大有益處的。
選擇是最痛苦的,看看《天生購物狂》中的劉青雲就知道了,不過既然沒法逃避,就做出本身的選擇吧。
每一個人都會受到別人的影響,在做出決定以前,要想盡各類辦法讓本身理性一些吧。這樣,你的選擇會離正確的方向更近一些。mysql
JAVA自學之路 二:JAVA自學路線圖 有很多的同窗發信給我,和我探討java的自學過程應該是什麼樣的,畢竟有不少人由於各類各樣的緣由不能參加培訓。我試着給出本身的看法,拋磚引玉吧。 這個路線圖是給那些爲了就業的人準備的,若是隻是興趣,不必定照這個走。 這裏只是講了路線圖,關於路線中的各個階段,學到什麼程度,如何學習等,能夠參考後面的JAVA自學之路 七:《路線圖明細》。 首先要學JavaSE,這是無庸置疑的。 與此同時,是的,與此同時,和JavaSE的學習同步,建議你們研究一下數據結構與算法。 在這兒以後,你能夠選擇向J2ME、或者Java GUI、Socket編程等方向努力,可是經過第一篇的辦法,你能夠很容易就將這方向過濾掉(永遠不要忘了咱們是爲了就業),好吧,暫時和它們訣別,仍是向着J2EE的方向前進吧。 在JavaSE完成以後,能夠試着完成一些小項目,同時關注一下設計模式的內容,沒必要強求本身可以徹底掌握各類細節,往前走吧。 掌握一種編程工具,好比說Eclipse。 數據庫,能夠選擇使用Oracle或者MySQL開始 。 JDBC,用Java鏈接數據庫。 能夠選擇在這個地方切入Hibernate,也能夠選擇在Struts 以後。 HTML CSS JavaScript,這些東西是作web項目必需的內容 。 Servlet JSP,服務器端必需。 XML AJAX,新的流行趨勢不能不瞭解。 做一些小項目吧。好比BBS、留言系統、學籍管理、商城等等,隨便着一些業務邏輯比較簡單的來作一作。 Struts,MVC的典型應用 Hibernate,OR Mapping的典範之做。 Spring IOC + AOP, 面向對象 + 面向切面,完善的旅程。 把之前本身的小項目加入Struts、Spring、Hibernate的元素吧。 去研究各類商業項目的業務邏輯吧,才能在你的簡歷中加入濃重的一筆。 EJB3.0,java在走了不少彎路後的迴歸之做,值得研究。 SOA,業界鐵定的將來趨勢,要牢牢跟隨。linux
在後面,我會告訴你每一步的學習方法和學習重點。程序員
JAVA自學之路 三:要動手 不管如何,請堅持不懈的動手實驗! 學習Java要動手,僅僅是看和聽是不可以學好編程的。總有同窗來信問咱們這樣的問題,說:"老師我看了視頻了,但是怎麼一動手就沒有任何思路呢?" 對此,我通常都會說不要着急,若是你只是看了視頻就想行雲流水的話,那老師這些年的鍛鍊真是白費了,這麼多年的苦練才能略有些行雲流水的感受,你一朝一夕就想本身可以達到,不是太奢侈了嗎:)
做爲編程的過來人想一下,當年本身學編程的時候是何時有思路的呢?至少也是照貓畫虎畫了一段時間以後吧,我本人是在某一個領域畫虎畫了上萬行代碼的時候才慢慢有本身思路的。就像寫做文,要有本身思路老是通常來講要通過幾個階段,首先學習詞彙,而後學習造句,而後大量閱讀別人的文章,本身模仿着寫一些,逐漸的經驗積累,才能造成本身的思路。學編程,恐怕也得慢慢的來吧,只是看一看、聽一聽視頻,是不足以學好編程的。
因此,動手吧,跟着作,一行一行的跟着敲,一個項目敲完了,好比坦克,再試着加一些本身的功能,按照本身的思路敲一些代碼,收穫遠比干聽大的多。
若是遇到,暫時對於一些思路不能理解的同窗,我通常都會勸告說,動手寫,先寫代碼,量變會引發質變的。而這種質變的確發生過很多次。
提醒一句,要理解代碼思路以後再跟着敲 ,揹着敲,千萬不要左邊擺着別人的程序,右邊本身一個一個子母的寫,這就再也不是程序員了,成了打字員了。
紙上得來終覺淺,因此:別問那麼多,別想那麼多,動手寫吧。web
JAVA自學之路 四:要事爲先 對待人生的任何事情都要:抓大放小,要事爲先 對於一個之前歷來沒有接觸過java的人,java無疑是龐大的,彷佛每一個領域均可以拓展開來都是一片開闊地,每個領域要想深刻接觸到每個細節所耗費的精力都是巨大的。這個時候你們都胸懷壯志,兩眼發光的盯着每個嶄新的知識點,碰見了任何一個知識點都巴不得摳的清清楚楚,明明白白。
難道這有什麼不對嗎? 個人意見是,沒什麼大毛病,可是學習效率過低了!咱們推薦的學習方式是,抓大放小,要事爲先。 好比說學習J2SE的時候,學到GUI這一章,有的同窗認爲,既然學到這兒了,咱們去把SWING細細的瞭解一遍吧;還有的同窗,遇到了在Linux下的Shell編程,就巴不得把Shell先學成專家才肯,或者是纔敢,繼續往下學習;有沒有過這樣的感受,一本書的上冊沒有學好,覺着下冊內心也沒底兒,甚至非要把上冊複習一遍纔敢繼續學習。若是你也是這樣,要去看看心理醫生啦,沒準兒會有潔癖的毛病:)。 任何事情都要追求完美才敢繼續日後進行,是一種性格缺陷正則表達式
大膽的放棄一些東西吧,有失纔有得,把本身有限的、寶貴的精力用在對於就業直接相關的地方,這纔是最有效率的學習方式!等你參加工做,有了可持續發展的事業動力和經濟基礎,有時間有精力閒的沒事兒乾的時候,再去研究那些其它吧。
曾經有一個故事,說得是產能和產量的關係。 一我的喜歡讀書,讀了一生,無所不通,這時候要作任何工做均可以,他的產能到了極致,可是,他老了,即使天天產出大量的東西也不能維持多久了,一生的產量並無多少。 另外一我的直接工做,忙,每天在機器旁日復一日,作了一生,沒時間學習和進修,能夠想象,產量能有多大呢。 人的一輩子,要鍛鍊產能,也要及時產出,引擎要轉,也要停下來加油,這二者平衡的越好,你的貢獻和產量就會越大。若是鑽研的東西和產能目標(或者說近期的產能目標)無關的話,要捨得放手。 因此,對於SWING,暫時先扔在一邊吧。 對於shell,對於各類協議過於詳細的細節,對於喜歡的遊戲編程,對於javascript各類華而不實的效果,都暫時和它們分別吧。一切和咱們的直接工做目標關聯不大的東西,扔在一邊或者弄清楚到足夠支持下一步的學習就能夠了。
那這樣豈不是妨礙我成爲通曉各類細節的高手了嗎? 我一貫不認爲一我的掌握了不少不少知識點的細節就是高手了,一我的若是告訴你,回字有四種寫法,你會認爲他是高手嗎? 絕不客氣的說,如今咱們所教授的全部知識細節在網上或書中均可以找到,只要你肯花時間花精力去動手試,去鑽研,沒有什麼不能掌握的。struts、spring你能掌握嗎?固然能!可是若是把時間花在spring的各類細節的研究上,花在研究中國企業應用不普遍地的spring mvc上,這個精力就太浪費了,並且學習的積極性會受到打擊,誰願意成天泡在細節的蜘蛛網中掙扎不出來呢?誰願意每天經歷風雨卻老是不能見到彩虹呢?
蓋房子,要先建骨架,再談修飾。 畫山水,要先畫結構,再談潤色。 認識一臺結構複雜的機器,應該首先認清楚脈絡,而後再逐步認識每個關節。 爲了應付從小學到大學的考試,咱們背了各類各樣的不該該提早掌握的細節,同時也養成了見到細節就摳的學習習慣。而如今,是到改改的時候了。
請在合適的時間,作合適的事情吧。 把時間和精力花在做項目上面,花在寫做品以及鍛鍊解決問題的能力上面吧,這是邁向高手的正確的並且快速的方向。
我一直不認爲一個課程提供了不少不少的細節就是優秀的價值高的課程了,掌握必要的細節,這個不含糊,至於其餘,或者經過視頻給出(這樣能夠給出更多的細節,可是不佔上課時間,課上只講重要的、必要的細節知識),或者在掌握了自學的能力後本身可以查出,這纔是正途。
當你看書到某個地方暫時不理解的時候的,暫時放手吧,追求一些行雲流水、天然而然的境界吧,只是不要停下前進的腳步,不要被大路旁邊的支根末節干擾了你前進的行程,項目,真實的項目,這纔是目的,就在不遠的前方。
陶淵明讀書,叫作「不求甚解」,但他是大詩人。 諸葛亮讀書,老是「觀其大略」,但他是大政治家。 做研究的,是在肯定了方向以後才詳細的研究深刻的東西。 到了廬山,脈絡形狀扔在一邊,盯着一棵棵小草、一粒粒石子的看,怎麼樣才能識得「真面目」? 做爲應用型的人才,是研究回字的n種寫法仍是抓緊時間向着主要應用的方向努力,請本身做出抉擇。
以項目驅動本身的學習吧,當把握了技術的脈絡以後再去補充細節的研究,是正途。 這輩子就不研究其餘的方向了嗎? 固然要研究!可是在未來合適的時間再說吧。
因此,抓大放小,要事爲先!算法
JAVA自學之路 五:問題解決之道 既然是學習,就不可能不遇到問題。 既然是自學,就沒有方便的和老師探討的機會。
那麼,遇到問題以後,環境配不通,程序調不過,運行不正常,碰見這些惱人的問題的時候,該怎麼辦呢?
首先我要恭喜你,碰見問題,意味着你又有漲經驗的機會了,每解決一個問題,你的JAVA經驗值就應該上升幾百點,問題遇到的越多,知識提高的越快。
可是老是解決不了也是很惱人的,怎麼辦呢? 我通常要求咱們的學生都是這樣來進行的。 當你遇到一個問題的時候:
1:要仔細的觀察錯誤的現象,是的,要仔細
有很多同窗的手很是快,在編譯一個程序的時候,報了一大堆的錯誤,掃了一眼以後就開始盯着代碼一行一行的找,看清什麼錯誤了嗎?沒有!有的時候安裝軟件出問題了,一個對話框彈出來講出錯了,立刻舉手問老師:「不得了了,出錯了,出錯了」。
「什麼錯誤?」 「還沒看呢?」 這都是典型的不上心的方法!請記住,學習編程並非一件很容易的事情,本身首先要重視,要用心才能夠。
在開發中,仔細觀察出錯信息,或者運行不正常的信息,是你要作的第一件事。 讀清楚了,才能在之後的步驟中有的放矢,哭了半天,總要知道哭的是誰才成。
這裏又分三種狀況: A:錯誤信息讀懂了,那麼請進入2步:要仔細思考問題會出在哪些環節
B:沒讀懂,愣是一點沒看懂,進入第4步吧:google C:讀了個半懂,有些眉目可是不太能肯定,第2步和第4步結合着來。
2:要仔細思考問題會出在哪些環節(重要) 當你讀懂了一個問題以後,要好好的思考這個問題可能會在哪些環節上出錯。
一輛汽車從總成線上下來,車門子關不上! 哪錯了?你怎麼查? 固然是順着生產線一站一站的查下來。
程序也是同樣的,也是一系列語句完成後產生的結果。 寫一個網絡程序,老是發現服務器端打印不出接收的數據,有幾個環節會出錯?
仔細分析這個現象的環節: 客戶端產生數據->按「發送」按鈕->發送到服務器->服務器接收到後打印
這幾個環節都有可能會出錯:
有可能客戶端根本就沒產生數據,有可能發送按鈕按下去後根本就沒發出去,或者發出去的不是你產生的東西,或者根本就沒鏈接網絡,或者發送出去服務器沒有接收到,或者接收到以前就打印了等等等等。
學着去這樣仔細的分析程序的環節和這些環節可能會產生的問題,你的經驗值定然會大幅度快速的提高,這樣作很累人,可是一件事情若是作下來一點都不累的話,這個東西還有價值嗎?
在網頁A輸入了一我的的名字,提交到B,首先存儲到數據庫,而後再讀出來,發現亂碼!怎麼辦?固然是分析環節:
客戶輸入->HTTP發送->B接收->存儲到數據庫->讀出->展示到網頁
每一個環節均可能出問題,怎麼才能知道哪裏出的問題?繼續往下讀。 3:如何定位錯誤(重要)分析清楚有哪些環節以後,下一步就是定位到底什麼環節出錯了。
定位有如下三種辦法: A 打印輸出,好比java的System.out.println(),好比js的alert(),這種辦法經常使用,必須掌握
B Debug,能夠參考咱們的視頻,詳細講了Eclipse的調試。 C 刪掉一部分調試一部分,也就是去掉一部分的功能,作簡化,而後調試剩下的功能,JSP和JavaScript經常使用。 4:若是還不行,google吧
還查不出來?恭喜你,你遇到的錯誤是值得認真對待的錯誤,是會影響你學習生涯的錯誤,問一下google或者百度吧。照着下面的方法查查看。
通常來說,搜索引擎能夠搜到各類知識點,我曾經跟同窗們開玩笑說:「學會了怎麼google或者baidu,其實不必跟老師學了,本身全都搞懂了,培訓是不必來的。」固然,只是玩笑,培訓的做用有三個:
A:系統化知識 B:真實項目鍛鍊經驗 C:少走彎路,節省時間 不知不覺開始作廣告了,請原諒,處其位謀其事)
言歸正傳,如何查搜索引擎?
先精後粗,首先先進行儘可能精確的查找,好比一個錯誤,SocketException,你懷疑它是在connect()方法出的問題,那麼固然是選這樣的關鍵詞java connect SocketException
先中後英,本着以解決問題爲主的想法,練習英文仍是先放在一邊吧,首先應該在中文網頁中查詢,還不行的話,搜索英文的吧,最近的尚學堂課程中會帶你們閱讀英文的書籍。有不少東西就像一層窗戶紙,遠看灰濛濛怪唬人的,你壯着膽子一捅,它就破了。閱讀英文的書籍就是如此,不是想象中的那麼困難:)寧肯在沙場上戰死,也不能被嚇死不是嗎:)
信息篩選,搜索出來的結果不見得可以徹底匹配,建議你們多閱讀前幾頁的搜索結果,多打開幾個網頁看看,不過,個人經驗是超過3頁通常就沒意義了,因此超過3頁尚未找到合適的答案,或許應該調整一下關鍵詞,或者放粗整個搜索的結果了。
常常的進行知識難點的查詢,若是一個問題牽扯的面比較廣,就乾脆到網上搜索一些相關的專題,好比「java 亂碼 mysql」 「oracle 建立用戶」等等,若是有必要,不要犯懶,勤動手寫一些小小的測試程序,來弄明白知識點的細節。這也是漲知識的重要的途徑。 5:什麼?還不行?那麼就BBS吧
若是實在還不行,就到BBS上面問一問高手吧。 到哪一個BBS上? google或者百度不就好了麼:)關鍵詞「java論壇」「java bbs」 而後在搜索結果裏好好的看看那些活動頻繁的論壇,之後就是你常常光顧的地方了。http://community.csdn.net就很不錯。
向別人提問是很是須要技巧的! 曾經有人問我這樣的問題:「請問如何才能學好java呢?」 這個要求太泛泛了。
還有人給我一段代碼甚至jar包也寄過來,而後說老師的個人代碼中有個錯誤您幫我查查:(
我沒有辦法去花大量的時間創建環境去調試一個還不知道存在不存在的錯誤!
還有人在BBS上問這樣的問題:「是否有人能幫我完成一個完整聊天的程序?請幫我寫一個登錄模塊吧!」
這個要求有些過度了,有人幫你作是你的運氣,沒有人幫你是正常反應。
向別人提問,應該首先肯定你已經作了本身應該作的事,簡單說是我前面列舉的1,2,3,4步你都做過了,而後再求助於人。不要沒有通過認真思考就草率的向別人提問,本身也不會有長足進步的。
那我該怎麼樣向別人提問呢? 在google或百度搜索《提問的智慧》,你會找到答案。 在這裏我給出一個連接http://community.csdn.net/IndexPage/SmartQuestion.aspx,磨刀不誤砍柴功,先花點時間去閱讀一下吧。
獲得別人的回答,要懂得感恩。 不須要去寫信感謝,不須要支付費用,不須要那些花言巧語,作到下面這一點就夠了:
當你逐步成爲高手的時候,要回答別人在論壇上提出的問題,有時間有精力的前提之下! 6:還解決不了?問老師吧,這個只能是在你參加了培訓的前提下了。 7:還解決不了?天哪,是否是思路從根上就搞錯了?寫信給我,讓我也學習一下,共同進步吧。
JAVA自學之路 六:項目的自學 如今就業競爭的激烈程度已經遠遠高於當年了,記得我當年畢業時,一個會編程的畢業生站到臺上,大聲問道:「我會ASP,月薪5000有沒有人要?」 臺下的企業立刻嘩的舉起一大片手:"我要我要 !" 那時 沒有任何項目經驗也會有人提供學習的機會:) 這種好日子恐怕一去不復返了(有些誇張,但無疑當時找一份不錯的工做是比如今要容易的多)
而如今,即使是各類必要的知識你掌握的差很少了,但還有一座大山橫在你的面前,那就是-項目經驗。
有經驗的程序員都知道,學習編程的最有效率的方式,恐怕就是把你扔到一個項目組,連滾帶爬的作下一兩個項目來,你立刻會發現全部的知識點全都連到一塊兒了,再也不是分散的,而是造成一個總體了。那種感受是僅僅深刻鑽研知識點而不寫真實項目的人所不能體會的。一個項目就是一根繩子能夠把大片的知識串到一塊兒。
若是想鍛鍊實際開發的能力而不只僅是背誦或者瞭解一些知識點,若是想成爲真正的好手而不只僅是背誦「回」字有幾種寫法,那麼,做項目吧!
目前,各類編程的知識點變得愈來愈容易掌握,按照《JAVA自學之路 五:問題解決知道》中的各類辦法也能夠逐步積累本身知識的廣度和深度,那如今什麼纔可以體現水平的不一樣?固然是項目經驗。
目前,尚學堂的課程已經超越了知識點的研究和羅列,咱們將在將來的時間裏逐步公佈各個知識點的視頻,包括SSH、EJB等,這樣作有兩個好處:首先自學的同窗能夠免費獲得原來商業培訓的內容,這樣起碼能夠節省一些時間,省一些力氣。其次尚學堂本身能夠更加專一於項目上。
目前公司的項目寫做佔了課程50%左右的比重,公司的項目也早已經超越了簡單的MIS系統的概念,逐步的成爲綜合了搜索引擎、工做流、SCA/SDO、Linux/UNIX、大型數據庫系統、設計模式、架構模式、負載均衡等各類深層應用的綜合大型項目而且採用手把手式的教學方法,作的更加的深刻和細緻,從如今看效果至關好,最近142班的就業就徹底證實了這一點(瞭解142的就業狀況),咱們的計劃是最近逐步將項目比重提高到70%以上,相信效果會更好。籤於公司的規定,咱們並不能將全部的項目實戰都錄製成視頻來公佈,可是已經公佈的項目實戰也是很是的有價值的:(http://www.bjsxt.com/download.html) 1:Chat & Tank系列 2:BBS 3:Shopping(近期公佈)
那麼若是自學咱們應該怎麼樣才能學習項目的開發呢? 一個比較有效的辦法是,能夠在現有項目的基礎上作的更深刻一些,好比在你按照視頻完成了BBS以後,能夠增長一些其餘的功能,例如註冊/積分/精華/搜索/貼圖等等,在完成了Shopping以後,能夠增長一些評論/排行/統計/存貨等等方面的業務邏輯,嘗試用本身的技術將他們做出來,這樣既積攢了項目經驗,又記住了知識點。 那麼如何才能肯定我要寫什麼樣的業務邏輯呢? 應該講這對於一個初學者是很是困難的,一些簡單的系統,好比說BBS、Shopping、圖書管理等等,它們的業務邏輯很容易肯定,去瀏覽和參考一些現成系統的功能,很容易就能瞭解了。可是對於商用的大型系統,光是瞭解業務邏輯自己就會花費大量的精力,若是有時間有精力有財力的話,仍是建議考慮一下咱們的培訓吧,這樣經驗的積累和薪水的提高會更快,從之前的統計數據看很是容易就能夠回收這筆投資。
若是條件不容許,那麼就按照上面的方法來學習項目吧,不要由於暫時不能接觸更大型更深刻的項目而氣餒,記住:機會老是青睞有準備的頭腦,努力吧。
JAVA自學之路 七:路線圖明細 下面給出第二節《JAVA自學路線圖》中知識點的明細: 一:J2SE 面向對象-封裝、繼承、多態 內存的分析 遞歸 集合類、泛型、自動打包與解包、Annotation IO 多線程、線程同步
TCP/UDP
AWT、事件模型、匿名類 正則表達式 反射機制 2:數據庫(Oracle或者MySQL) SQL語句 多表鏈接,內外鏈接, 子查詢等 管理表、視圖、索引、序列、約束等 樹狀結構存儲 存儲過程、觸發器
數據庫設計三範式、 3:JDBC JDBC基礎 鏈接池 樹狀結構存儲與展示 DataSource & RowSet JDBC鏈接Oracle及MySQL
4:HTML_CSS_JAVASCRIPT html、css、javascript基礎語法 JavaScript Form判斷
Dom編程基礎(事件處理等) JS經常使用效果如TreeView、下拉聯動等 JS學習方法 JS調試方法
DreamWeaver初步(創建HTML、Table、Form、CSS)等 5:Servlet & JSP tomcat基礎
servlet基礎 web.xml配置基礎 web application的結構 servlet生命週期 request response等經常使用方法 ServletContext類 HTTP協議基礎(GET POST) Cookie Session
Application JSP的幾種語法(包括JSTL等)注意在項目中練習,不要拘泥於語法細節而裹步不前。
6:Struts 多層架構理論 Model 1 and Model 2 Struts基本概念
MVC Action與業務邏輯類的關係 在Struts與JSP之間傳遞數據 Struts處理流程(控制流) Struts TagLib(瞭解經常使用的) JSTL ActionForm 字段收集 上傳文件 類型轉換 DTO
動態Action Form 驗證框架 ActionForward 轉發與重定向 動態生成ActionForward
全局與局部的ActionForward Action Forward Scope UnknownActionMapping
Action的線程安全 I18N 如何切換語言環境 Struts異常處理機制 程序處理 自動處理 自定義異常處理器 Struts的多模塊配置
7:XML (XML/XSL、XSLT/DTD、SCHEMA等基礎的概念、關於Java的編程能夠暫時扔在一邊)
8:Hibernate OR Mapping原理 Hibernate基礎開發步驟
Hibernate基本接口(重點Session) 普通屬性映射 關聯關係映射 Native SQL inverse lazy cascade 繼承關係映射 HQL 性能優化 一級緩存 二級緩存 查詢緩存 事務與併發 悲觀鎖、樂觀鎖
OpenSessionInView CurrentSession (至於JTA、聯合主鍵、天然主鍵、動態主鍵、Any類型 Creteria Queries Intercepter and Event 自定義類型等,能夠暫時扔在一邊) 9:Spring IOC/DI
Spring配置 Spring架構 AOP及Spring AOP 聲明式事務(AOP) Spring + Hibernate Spring支持Web Scope (其餘的Spring模塊對於自學來講能夠暫時扔在一邊)
10:EJB3.0 J2EE架構基礎(JTA JMS等) EJB基礎(地位及基本理論、分類等) Annotation
Ant編譯與部署EJB Session Bean EJB的依賴注入 Persistence API
(能夠用JBoss學習EJB3.0)
11:至於SOA,對於自學的同窗來講,暫時不用特別關注。
梳理一下,你就會發現東西不是想象中的那麼多呀! 建議你們優先學習咱們公佈的視頻,而後再去找參考書,由於這個時候就能分辨出來哪些書適合你了。
那麼,如何才能找到好書呢?一個簡單的辦法,在賣書的網站上,好比http://www.china-pub.com,搜索你想了解的知識點好比"javascript",按銷售排行,排在前幾位的,應該就是不錯的,記下書名,到書店閱讀幾章,合適你的就是好書了。沒錢買?簡單!還有什麼google + 電驢找不到的資料嗎:)