馬士兵Java學習之路

作者:馬士兵老師

Java自學之路 一:學會選擇

為了就業(yè)缠捌,不少同學參加各種各樣的培訓。決心做軟件的译蒂,大多數(shù)人選的是java曼月,或是.net,也有一些選擇了手機柔昼、嵌入式哑芹、游戲、3G捕透、測試等聪姿。

那么究竟應(yīng)該選擇什么方向呢?

我的意見是乙嘀,不要太過相信各種培訓機構(gòu)或是搶手文章的說法(包括我)末购,當你要走向社會的時候,就不要再把自己當成學生虎谢,不要把自己的將來交給別人盟榴,學會運用自己的眼睛去觀察,去了解這個世界吧婴噩。

每個培訓機構(gòu)都會宣傳自己的好處擎场,并不能說明大的趨勢。
一些新聞文章很有可能是槍手寫的几莽,不必太過相信迅办。
國外背景的教師和課程,未必適合你章蚣。
那么怎么才能確定自己將來的方向站欺?如何才能從紛繁復雜、或真或假的數(shù)據(jù)世界中挖出一條路纤垂?
我講一個通過招聘網(wǎng)站的觀察方法矾策。
可以到各種招聘的網(wǎng)站上查詢信息(可以到google上查詢招聘的網(wǎng)站),例如:
http://www.51job.com
http://www.chinahr.com
http://www.zhaopin.com
以及csdn的招聘頻道等

還有一個網(wǎng)站也不錯洒忧,http://www.jobui.com蝴韭,綜合了各大招聘網(wǎng)站的數(shù)據(jù)够颠。
這些數(shù)據(jù)都是最真實不摻假的原始數(shù)據(jù)熙侍,你可以每隔一段時間搜索一次,一些規(guī)律就會被總結(jié)出來了。

比如說我在http://www.jobui.com中搜索java蛉抓,全國大概提供了3萬個職位庆尘。
然后要多翻幾頁,這樣不僅能夠看清楚大概有多少是有效的職位巷送,而且還可以看清楚用人單位最關(guān)心的技能是什么驶忌,這個很重要,決定著你將來要花多少時間和精力在特定的知識點上笑跛,比如說swing付魔,搜了一下,全國只有700個左右的職位飞蹂,仔細讀了一下几苍,也并非全是有效的職位,花太多時間和精力在這個上面就不值得了陈哑,當然自己感興趣或者為了研究的話另當別論妻坝。不過如果是為了快速的就業(yè),把太多時間和精力花在很多職業(yè)生涯的前一惊窖、二年用不到的知識上就太可惜了刽宪。 同時,并非某一個行業(yè)的職位數(shù)目少界酒,就不能當作一個方向進行選擇圣拄,比如.NET,我搜索到的職位數(shù)是1.6萬左右盾计,比java少售担,是不是就選java了呢?不一定署辉,因為java職位雖然多族铆,但是可能競爭者可能也多,有些方向雖然職位數(shù)不多哭尝,但是和你競爭這些職位的人數(shù)量也少哥攘,不見得就不能選擇。

不過材鹦,如果某一個方向的職位數(shù)目過少逝淹,你可就要小心了,選擇這樣的方向風險會非常大桶唐,如J2ME栅葡。

我個人覺得java/J2EE、.net尤泽、嵌入式開發(fā)是不錯的三個方向欣簇。
如果非要在java和.net中選擇的話规脸,我個人是推薦java的,原因:
1:Java能夠開發(fā)linux熊咽、unix服務(wù)器上的程序
2:JavaEE和.NET在企業(yè)應(yīng)用方面的關(guān)注點是差不多的莫鸭,但是學習了java如果將來想轉(zhuǎn)到.net上會比較簡單,幾天的學習然后上手開發(fā)應(yīng)該是問題不大的横殴,但是反之就不行了被因。 當然如果有了些經(jīng)驗之后,你就會發(fā)現(xiàn)語言或者平臺不再是技術(shù)上的阻礙衫仑,一些原理性的東西學到手梨与,然后再加上項目經(jīng)驗,使用什么平臺文狱,反而不是最重要的蛋欣。不過如果非要用一種平臺進入企業(yè)開發(fā)的領(lǐng)域,至少在目前如贷,2007年9月陷虎,我推薦java。

完全可以不同意我的觀點杠袱,但是無庸置疑尚猿,如果是為了就業(yè),多到招聘網(wǎng)站閱讀閱讀職位的信息楣富,對你將來的方向和學習是大有益處的凿掂。選擇是最痛苦的,看看《天生購物狂》中的劉青云就知道了纹蝴,不過既然無法逃避庄萎,就作出自己的選擇吧。每個人都會受到別人的影響塘安,在作出決定之前糠涛,要想盡各種辦法讓自己理性一些吧。這樣兼犯,你的選擇會離正確的方向更近一些忍捡。

JAVA自學之路 二:JAVA自學路線圖

有不少的同學發(fā)信給我,和我探討java的自學過程應(yīng)該是什么樣的切黔,畢竟有很多人因為各種各樣的原因不能參加培訓砸脊。我試著給出自己的見解,拋磚引玉吧纬霞。

這個路線圖是給那些為了就業(yè)的人準備的凌埂,如果只是興趣,不一定照這個走诗芜。
這里只是講了路線圖瞳抓,關(guān)于路線中的各個階段秒紧,學到什么程度,如何學習等挨下,可以參考后面的JAVA自學之路 七:《路線圖明細》。
首先要學JavaSE脐湾,這是無庸置疑的臭笆。
與此同時,是的秤掌,與此同時愁铺,和JavaSE的學習同步,建議大家研究一下數(shù)據(jù)結(jié)構(gòu)與算法闻鉴。

在這兒之后茵乱,你可以選擇向J2ME、或者Java GUI孟岛、Socket編程等方向努力瓶竭,但是通過第一篇的辦法,你可以很容易就將這方向過濾掉(永遠不要忘了我們是為了就業(yè))渠羞,好吧斤贰,暫時和它們訣別,還是向著J2EE的方向前進吧次询。

在JavaSE完成之后荧恍,可以試著完成一些小項目,同時關(guān)注一下設(shè)計模式的內(nèi)容屯吊,不必強求自己能夠完全掌握各種細節(jié)送巡,往前走吧。
掌握一種編程工具盒卸,比如說Eclipse骗爆。

數(shù)據(jù)庫,可以選擇使用Oracle或者MySQL開始蔽介。JDBC淮腾,用Java連接數(shù)據(jù)庫√爰眩可以選擇在這個地方切入Hibernate谷朝,也可以選擇在Struts之后。 HTML CSS JavaScript武花,這些東西是做web項目必需的內(nèi)容圆凰。Servlet JSP,服務(wù)器端必需体箕。XML AJAX专钉,新的流行趨勢不能不了解挑童。

作一些小項目吧。比如BBS跃须、留言系統(tǒng)站叼、學籍管理、商城等等菇民,隨便著一些業(yè)務(wù)邏輯比較簡單的來做一做尽楔。 Struts,MVC的典型應(yīng)用Hibernate第练,OR Mapping的典范之作阔馋。
Spring IOC + AOP, 面向?qū)ο?+ 面向切面娇掏,完善的旅程呕寝。
把以前自己的小項目加入Struts、Spring婴梧、Hibernate的元素吧下梢。
去研究各種商業(yè)項目的業(yè)務(wù)邏輯吧,才能在你的簡歷中加入濃重的一筆塞蹭。
EJB3.0怔球,java在走了很多彎路后的回歸之作,值得研究浮还。
SOA竟坛,業(yè)界鐵定的未來趨勢,要緊緊跟隨钧舌。

在后面担汤,我會告訴你每一步的學習方法和學習重點。

JAVA自學之路 三:要動手

無論如何,請堅持不懈的動手實驗率碾! 學習Java要動手,僅僅是看和聽是不能夠?qū)W好編程的所宰。總有同學來信問我們這樣的問題畜挥,說:“老師我看了視頻了麦向,可是怎么一動手就沒有任何思路呢向族?”對此呵燕,我一般都會說不要著急,如果你只是看了視頻就想行云流水的話件相,那老師這些年的鍛煉真是白費了再扭,這么多年的苦練才能略有些行云流水的感覺,你一朝一夕就想自己能夠達到夜矗,不是太奢侈了嗎:)

作為編程的過來人想一下泛范,當年自己學編程的時候是什么時候有思路的呢?至少也是照貓畫虎畫了一段時間之后吧紊撕,我本人是在某一個領(lǐng)域畫虎畫了上萬行代碼的時候才慢慢有自己思路的罢荡。就像寫作文,要有自己思路總是一般來說要經(jīng)過幾個階段对扶,首先學習詞匯区赵,然后學習造句,然后大量閱讀別人的文章浪南,自己模仿著寫一些笼才,逐漸的經(jīng)驗積累,才能形成自己的思路络凿。學編程骡送,恐怕也得慢慢的來吧,只是看一看絮记、聽一聽視頻摔踱,是不足以學好編程的。

所以怨愤,動手吧昌渤,跟著做,一行一行的跟著敲憔四,一個項目敲完了膀息,比如坦克般眉,再試著加一些自己的功能,按照自己的思路敲一些代碼潜支,收獲遠比干聽大的多甸赃。

如果遇到,暫時對于一些思路不能理解的同學冗酿,我一般都會勸告說埠对,動手寫,先寫代碼裁替,量變會引起質(zhì)變的项玛。而這種質(zhì)變的確發(fā)生過不少次。
提醒一句弱判,要理解代碼思路之后再跟著敲 襟沮,背著敲,千萬不要左邊擺著別人的程序昌腰,右邊自己一個一個子母的寫开伏,這就不再是程序員了,成了打字員了遭商。紙上得來終覺淺固灵,所以:別問那么多,別想那么多劫流,動手寫吧巫玻。

JAVA自學之路 四:要事為先

對待人生的任何事情都要:抓大放小,要事為先
對于一個以前從來沒有接觸過java的人祠汇,java無疑是龐大的大审,似乎每個領(lǐng)域都可以拓展開來都是一片開闊地,每一個領(lǐng)域要想深入接觸到每一個細節(jié)所耗費的精力都是巨大的座哩。這個時候大家都胸懷壯志徒扶,兩眼發(fā)光的盯著每一個嶄新的知識點,遇見了任何一個知識點都恨不得摳的清清楚楚根穷,明明白白姜骡。

難道這有什么不對嗎?
我的意見是屿良,沒什么大毛病圈澈,但是學習效率太低了!我們推薦的學習方式是尘惧,抓大放小康栈,要事為先。 比如說學習J2SE的時候,學到GUI這一章啥么,有的同學認為登舞,既然學到這兒了,我們?nèi)グ裇WING細細的了解一遍吧悬荣;還有的同學菠秒,遇到了在Linux下的Shell編程,就恨不得把Shell先學成專家才肯氯迂,或者是才敢践叠,繼續(xù)往下學習;有沒有過這樣的感覺嚼蚀,一本書的上冊沒有學好禁灼,覺著下冊心里也沒底兒,甚至非要把上冊復習一遍才敢繼續(xù)學習轿曙。如果你也是這樣弄捕,要去看看心理醫(yī)生啦,沒準兒會有潔癖的毛病拳芙。任何事情都要追求完美才敢繼續(xù)往后進行察藐,是一種性格缺陷皮璧。

大膽的放棄一些東西吧舟扎,有失才有得,把自己有限的悴务、寶貴的精力用在對于就業(yè)直接相關(guān)的地方睹限,這才是最有效率的學習方式!等你參加工作讯檐,有了可持續(xù)發(fā)展的事業(yè)動力和經(jīng)濟基礎(chǔ)工三,有時間有精力閑的沒事兒干的時候倾哺,再去研究那些其它吧。

曾經(jīng)有一個故事,說得是產(chǎn)能和產(chǎn)量的關(guān)系澡罚。
一個人喜歡讀書,讀了一輩子次伶,無所不通婉支,這時候要做任何工作都可以,他的產(chǎn)能到了極致痢毒,但是送矩,他老了,即便每天產(chǎn)出大量的東西也不能維持多久了哪替,一輩子的產(chǎn)量并沒有多少栋荸。

另一個人直接工作,忙,天天在機器旁日復一日晌块,做了一輩子爱沟,沒時間學習和進修,可以想象摸袁,產(chǎn)量能有多大呢钥顽。

人的一生,要鍛煉產(chǎn)能靠汁,也要及時產(chǎn)出蜂大,引擎要轉(zhuǎn),也要停下來加油蝶怔,這兩者平衡的越好奶浦,你的貢獻和產(chǎn)量就會越大。如果鉆研的東西和產(chǎn)能目標(或者說近期的產(chǎn)能目標)無關(guān)的話踢星,要舍得放手澳叉。

所以,對于SWING沐悦,暫時先扔在一邊吧成洗。
對于shell,對于各種協(xié)議過于詳細的細節(jié)藏否,對于喜歡的游戲編程瓶殃,對于javascript各種華而不實的效果,都暫時和它們分別吧副签。一切和我們的直接工作目標關(guān)聯(lián)不大的東西遥椿,扔在一邊或者弄清楚到足夠支持下一步的學習就可以了。

那這樣豈不是妨礙我成為通曉各種細節(jié)的高手了嗎淆储?
我一向不認為一個人掌握了很多很多知識點的細節(jié)就是高手了冠场,一個人如果告訴你,回字有四種寫法本砰,你會認為他是高手嗎碴裙? 毫不客氣的說,現(xiàn)在我們所教授的所有知識細節(jié)在網(wǎng)上或書中都可以找到点额,只要你肯花時間花精力去動手試舔株,去鉆研,沒有什么不能掌握的咖楣。struts督笆、spring你能掌握嗎?當然能诱贿!但是如果把時間花在spring的各種細節(jié)的研究上娃肿,花在研究中國企業(yè)應(yīng)用不廣泛地的spring mvc上咕缎,這個精力就太浪費了,而且學習的積極性會受到打擊料扰,誰愿意整天泡在細節(jié)的蜘蛛網(wǎng)中掙扎不出來呢凭豪?誰愿意天天經(jīng)歷風雨卻總是不能見到彩虹呢?

蓋房子晒杈,要先建骨架嫂伞,再談修飾。
畫山水拯钻,要先畫結(jié)構(gòu)帖努,再談潤色。
認識一臺結(jié)構(gòu)復雜的機器粪般,應(yīng)該首先認清楚脈絡(luò)拼余,然后再逐步認識每一個關(guān)節(jié)。

為了應(yīng)付從小學到大學的考試亩歹,我們背了各種各樣的不應(yīng)該提前掌握的細節(jié)匙监,同時也養(yǎng)成了見到細節(jié)就摳的學習習慣。而現(xiàn)在小作,是到改改的時候了亭姥。

請在合適的時間,做合適的事情吧顾稀。
把時間和精力花在作項目上面达罗,花在寫作品以及鍛煉解決問題的能力上面吧,這是邁向高手的正確的而且快速的方向础拨。

我一直不認為一個課程提供了很多很多的細節(jié)就是優(yōu)秀的價值高的課程了氮块,掌握必要的細節(jié)绍载,這個不含糊诡宗,至于其他,或者通過視頻給出(這樣可以給出更多的細節(jié)击儡,但是不占上課時間塔沃,課上只講重要的、必要的細節(jié)知識)阳谍,或者在掌握了自學的能力后自己能夠查出蛀柴,這才是正途。
當你看書到某個地方暫時不理解的時候的矫夯,暫時放手吧鸽疾,追求一些行云流水、自然而然的境界吧训貌,只是不要停下前進的腳步制肮,不要被大路旁邊的支根末節(jié)干擾了你前進的行程冒窍,項目,真實的項目豺鼻,這才是目的综液,就在不遠的前方。

陶淵明讀書儒飒,叫做“不求甚解”谬莹,但他是大詩人。
諸葛亮讀書桩了,總是“觀其大略”附帽,但他是大政治家。

作研究的井誉,是在確定了方向之后才詳細的研究深入的東西士葫。
到了廬山,脈絡(luò)形狀扔在一邊送悔,盯著一棵棵小草慢显、一粒粒石子的看,怎么樣才能識得“真面目”欠啤?

作為應(yīng)用型的人才荚藻,是研究回字的n種寫法還是抓緊時間向著主要應(yīng)用的方向努力,請自己作出抉擇洁段。

以項目驅(qū)動自己的學習吧应狱,當把握了技術(shù)的脈絡(luò)之后再去補充細節(jié)的研究,是正途祠丝。

這輩子就不研究其他的方向了嗎疾呻?當然要研究!但是在將來合適的時間再說吧写半。所以岸蜗,抓大放小,要事為先叠蝇!那么璃岳,在JAVA的這些課程中,哪些才是大悔捶,才是要事呢铃慷?請繼續(xù)讀下去。

JAVA自學之路 五:問題解決之道

既然是學習蜕该,就不可能不遇到問題犁柜。
既然是自學,就沒有方便的和老師探討的機會堂淡。
那么馋缅,遇到問題之后坛怪,環(huán)境配不通,程序調(diào)不過股囊,運行不正常袜匿,遇見這些惱人的問題的時候,該怎么辦呢稚疹?

首先我要恭喜你居灯,遇見問題,意味著你又有漲經(jīng)驗的機會了内狗,每解決一個問題怪嫌,你的JAVA經(jīng)驗值就應(yīng)該上升幾百點,問題遇到的越多柳沙,知識提升的越快岩灭。

但是總是解決不了也是很惱人的,怎么辦呢赂鲤?
我一般要求我們的學生都是這樣來進行的噪径。
當你遇到一個問題的時候:
1:要仔細的觀察錯誤的現(xiàn)象,是的数初,要仔細
有不少同學的手非痴野快,在編譯一個程序的時候泡孩,報了一大堆的錯誤车摄,掃了一眼之后就開始盯著代碼一行一行的找,看清什么錯誤了嗎仑鸥?沒有吮播!有的時候安裝軟件出問題了,一個對話框彈出來說出錯了眼俊,馬上舉手問老師:“不得了了意狠,出錯了,出錯了”泵琳。
“什么錯誤摄职?”
“還沒看呢誊役?”
這都是典型的不上心的方法获列!請記住,學習編程并不是一件很容易的事情蛔垢,自己首先要重視击孩,要用心才可以。
在開發(fā)中鹏漆,仔細觀察出錯信息巩梢,或者運行不正常的信息创泄,是你要做的第一件事。
讀清楚了括蝠,才能在以后的步驟中有的放矢鞠抑,哭了半天,總要知道哭的是誰才成忌警。
這里又分三種情況:
A:錯誤信息讀懂了搁拙,那么請進入2步:要仔細思考問題會出在哪些環(huán)節(jié)
B:沒讀懂,愣是一點沒看懂法绵,進入第4步吧:google
C:讀了個半懂箕速,有些眉目但是不太能確定,第2步和第4步結(jié)合著來朋譬。

2:要仔細思考問題會出在哪些環(huán)節(jié)(重要)
當你讀懂了一個問題之后盐茎,要好好的思考這個問題可能會在哪些環(huán)節(jié)上出錯。
一輛汽車從總成線上下來徙赢,車門子關(guān)不上字柠!
哪錯了?你怎么查狡赐?
當然是順著生產(chǎn)線一站一站的查下來募谎。
程序也是一樣的,也是一系列語句完成后產(chǎn)生的結(jié)果阴汇。
寫一個網(wǎng)絡(luò)程序数冬,總是發(fā)現(xiàn)服務(wù)器端打印不出接收的數(shù)據(jù),有幾個環(huán)節(jié)會出錯搀庶?
仔細分析這個現(xiàn)象的環(huán)節(jié):
客戶端產(chǎn)生數(shù)據(jù)->按“發(fā)送”按鈕->發(fā)送到服務(wù)器->服務(wù)器接收到后打印
這幾個環(huán)節(jié)都有可能會出錯:
有可能客戶端根本就沒產(chǎn)生數(shù)據(jù)拐纱,有可能發(fā)送按鈕按下去后根本就沒發(fā)出去,或者發(fā)出去的不是你產(chǎn)生的東西哥倔,或者根本就沒連接網(wǎng)絡(luò)秸架,或者發(fā)送出去服務(wù)器沒有接收到,或者接收到之前就打印了等等等等咆蒿。

學著去這樣仔細的分析程序的環(huán)節(jié)和這些環(huán)節(jié)可能會產(chǎn)生的問題东抹,你的經(jīng)驗值定然會大幅度快速的提升,這樣做很累人沃测,但是一件事情如果做下來一點都不累的話缭黔,這個東西還有價值嗎?
在網(wǎng)頁A輸入了一個人的名字蒂破,提交到B馏谨,首先存儲到數(shù)據(jù)庫,然后再讀出來附迷,發(fā)現(xiàn)亂碼惧互!怎么辦哎媚?當然是分析環(huán)節(jié):
客戶輸入->HTTP發(fā)送->B接收->存儲到數(shù)據(jù)庫->讀出->展現(xiàn)到網(wǎng)頁
每個環(huán)節(jié)都可能出問題,怎么才能知道哪里出的問題喊儡?繼續(xù)往下讀拨与。

3:如何定位錯誤(重要)分析清楚有哪些環(huán)節(jié)之后,下一步就是定位到底什么環(huán)節(jié)出錯了艾猜。
定位有以下三種辦法:
A 打印輸出截珍,比如java的System.out.println(),比如js的alert()箩朴,這種辦法常用岗喉,必須掌握
B Debug,可以參考我們的視頻《坦克大戰(zhàn)》炸庞,詳細講了Eclipse的調(diào)試钱床。
C 刪掉一部分調(diào)試一部分,也就是去掉一部分的功能埠居,做簡化查牌,然后調(diào)試剩下的功能,JSP和JavaScript常用滥壕。

4:如果還不行纸颜,google吧
還查不出來?恭喜你绎橘,你遇到的錯誤是值得認真對待的錯誤胁孙,是會影響你學習生涯的錯誤,問一下google或者百度吧称鳞。照著下面的方法查查看涮较。
一般來講,搜索引擎可以搜到各種知識點冈止,我曾經(jīng)跟同學們開玩笑說:“學會了怎么google或者baidu狂票,其實沒必要跟老師學了,自己全都搞懂了熙暴,尚學堂是沒必要來的闺属。”當然周霉,只是玩笑掂器,培訓的作用有三個:
A:系統(tǒng)化知識
B:真實項目鍛煉經(jīng)驗
C:少走彎路,節(jié)省時間
言歸正傳诗眨,如何查搜索引擎唉匾?
先精后粗,首先先進行盡量精確的查找匠楚,比如一個錯誤巍膘,SocketException,你懷疑它是在connect()方法出的問題芋簿,那么當然是選這樣的關(guān)鍵詞java connect SocketException
先中后英峡懈,本著以解決問題為主的想法,練習英文還是先放在一邊吧与斤,首先應(yīng)該在中文網(wǎng)頁中查詢肪康,還不行的話,搜索英文的吧撩穿,最近的尚學堂課程中會帶大家閱讀英文的書籍磷支。有很多東西就像一層窗戶紙,遠看灰蒙蒙怪唬人的食寡,你壯著膽子一捅雾狈,它就破了。閱讀英文的書籍就是如此抵皱,不是想象中的那么困難:)寧可在沙場上戰(zhàn)死善榛,也不能被嚇死不是嗎:)
信息篩選,搜索出來的結(jié)果不見得能夠完全匹配呻畸,建議大家多閱讀前幾頁的搜索結(jié)果移盆,多打開幾個網(wǎng)頁看看,不過伤为,我的經(jīng)驗是超過3頁一般就沒意義了咒循,所以超過3頁還沒有找到合適的答案,或許應(yīng)該調(diào)整一下關(guān)鍵詞绞愚,或者放粗整個搜索的結(jié)果了剑鞍。
經(jīng)常的進行知識難點的查詢,如果一個問題牽扯的面比較廣爽醋,就干脆到網(wǎng)上搜索一些相關(guān)的專題蚁署,比如“java 亂碼 mysql” “oracle 創(chuàng)建用戶”等等,如果有必要蚂四,不要犯懶光戈,勤動手寫一些小小的測試程序,來弄明白知識點的細節(jié)遂赠。這也是漲知識的重要的途徑久妆。

5:什么?還不行跷睦?那么就BBS吧
如果實在還不行筷弦,就到BBS上面問一問高手吧。
到哪個BBS上?
google或者百度不就行了么:)關(guān)鍵詞“java論壇”“java bbs”
然后在搜索結(jié)果里好好的看看那些活動頻繁的論壇烂琴,以后就是你經(jīng)常光顧的地方了爹殊。http://community.csdn.net就很不錯。
向別人提問是非常需要技巧的奸绷!
曾經(jīng)有人問我這樣的問題:“請問如何才能學好java呢梗夸?”
這個要求太泛泛了。
還有人給我一段代碼甚至jar包也寄過來号醉,然后說老師的我的代碼中有個錯誤您幫我查查:(
我沒有辦法去花大量的時間建立環(huán)境去調(diào)試一個還不知道存在不存在的錯誤反症!
還有人在BBS上問這樣的問題:“是否有人能幫我完成一個完整聊天的程序?請幫我寫一個登陸模塊吧畔派!”
這個要求有些過分了铅碍,有人幫你做是你的運氣,沒有人幫你是正常反應(yīng)线椰。
向別人提問胞谈,應(yīng)該首先確定你已經(jīng)做了自己應(yīng)該做的事,簡單說是我前面列舉的1士嚎,2呜魄,3,4步你都作過了莱衩,然后再求助于人爵嗅。不要沒有經(jīng)過認真思考就草率的向別人提問,自己也不會有長足進步的笨蚁。
那我該怎么樣向別人提問呢睹晒?
在google或百度搜索《提問的智慧》,你會找到答案括细。磨刀不誤砍柴功伪很,先花點時間去閱讀一下吧。
得到別人的回答奋单,要懂得感恩锉试。
不需要去寫信感謝,不需要支付費用览濒,不需要那些花言巧語呆盖,做到下面這一點就夠了:
當你逐步成為高手的時候,要回答別人在論壇上提出的問題贷笛,有時間有精力的前提之下应又!

6:還解決不了?問老師吧乏苦,這個只能是在你參加了培訓的前提下了株扛。 7:還解決不了?天哪,是不是思路從根上就搞錯了洞就?寫信給我盆繁,讓我也學習一下,共同進步吧奖磁。

JAVA自學之路 六:項目的自學

現(xiàn)在就業(yè)競爭的激烈程度已經(jīng)遠遠高于當年了改基,記得我當年畢業(yè)時繁疤,一個會編程的畢業(yè)生站到臺上咖为,大聲問道:“我會ASP,月薪5000有沒有人要稠腊?” 臺下的企業(yè)馬上嘩的舉起一大片手:”我要我要 !”

那時 沒有任何項目經(jīng)驗也會有人提供學習的機會:)
這種好日子恐怕一去不復返了(有些夸張躁染,但無疑當時找一份不錯的工作是比現(xiàn)在要容易的多)而現(xiàn)在,即便是各種必要的知識你掌握的差不多了架忌,但還有一座大山橫在你的面前吞彤,那就是-項目經(jīng)驗。

有經(jīng)驗的程序員都知道叹放,學習編程的最有效率的方式饰恕,恐怕就是把你扔到一個項目組,連滾帶爬的做下一兩個項目來井仰,你馬上會發(fā)現(xiàn)所有的知識點全都連到一起了埋嵌,不再是分散的,而是形成一個整體了俱恶。那種感覺是僅僅深入鉆研知識點而不寫真實項目的人所不能體會的雹嗦。一個項目就是一根繩子可以把大片的知識串到一起。

如果想鍛煉實際開發(fā)的能力而不僅僅是背誦或者了解一些知識點合是,如果想成為真正的好手而不僅僅是背誦“回”字有幾種寫法了罪,那么,作項目吧聪全!
目前泊藕,各種編程的知識點變得越來越容易掌握,按照《JAVA自學之路 五:問題解決知道》中的各種辦法也可以逐步積累自己知識的廣度和深度难礼,那現(xiàn)在什么才能夠體現(xiàn)水平的不同娃圆?當然是項目經(jīng)驗。

那么如果自學我們應(yīng)該怎么樣才能學習項目的開發(fā)呢鹤竭?
一個比較有效的辦法是踊餐,可以在現(xiàn)有項目的基礎(chǔ)上做的更深入一些,比如在你按照視頻完成了BBS之后臀稚,可以增加一些其他的功能吝岭,例如注冊/積分/精華/搜索/貼圖等等,在完成了Shopping之后,可以增加一些評論/排行/統(tǒng)計/存貨等等方面的業(yè)務(wù)邏輯窜管,嘗試用自己的技術(shù)將他們作出來散劫,這樣既積攢了項目經(jīng)驗,又記住了知識點幕帆。

那么如何才能確定我要寫什么樣的業(yè)務(wù)邏輯呢获搏?
應(yīng)該講這對于一個初學者是非常困難的,一些簡單的系統(tǒng)失乾,比如說BBS常熙、Shopping、圖書管理等等碱茁,它們的業(yè)務(wù)邏輯很容易確定裸卫,去瀏覽和參考一些現(xiàn)成系統(tǒng)的功能,很容易就能了解了纽竣。但是對于商用的大型系統(tǒng)墓贿,光是了解業(yè)務(wù)邏輯本身就會花費大量的精力,如果有時間有精力有財力的話蜓氨,還是建議考慮一下我們的培訓吧聋袋,這樣經(jīng)驗的積累和薪水的提升會更快,從以前的統(tǒng)計數(shù)據(jù)看非常容易就可以回收這筆投資(替尚學堂的廣告穴吹,必須得寫幽勒,請見諒,但保證真實)刀荒。

如果條件不允許代嗤,那么就按照上面的方法來學習項目吧,不要因為暫時不能接觸更大型更深入的項目而氣餒缠借,記赘梢恪:機會總是青睞有準備的頭腦,努力吧泼返。

Java自學之路 七:路線圖明細

下面給出第二節(jié)《Java自學路線圖》中知識點的明細:

1:J2SE 面向?qū)ο螅庋b硝逢、繼承、多態(tài)
內(nèi)存的分析
遞歸
集合類绅喉、泛型渠鸽、自動打包與解包、Annotation
IO
多線程柴罐、線程同步
TCP/UDP
AWT徽缚、事件模型、匿名類
正則表達式
反射機制

2:數(shù)據(jù)庫(Oracle或者MySQL)
SQL語句
多表連接革屠,內(nèi)外連接凿试, 子查詢等
管理表排宰、視圖、索引那婉、序列板甘、約束等
樹狀結(jié)構(gòu)存儲
存儲過程、觸發(fā)器
數(shù)據(jù)庫設(shè)計三范式详炬、

3:JDBC
JDBC基礎(chǔ)
連接池
樹狀結(jié)構(gòu)存儲與展現(xiàn)
DataSource & RowSet
JDBC連接Oracle及MySQL

4:HTML CSS JAVASCRIPT
html盐类、css、javascript基礎(chǔ)語法
JavaScript Form判斷
Dom編程基礎(chǔ)(事件處理等)
JS常用效果如TreeView呛谜、下拉聯(lián)動等
JS學習方法
JS調(diào)試方法
DreamWeaver初步(建立HTML在跳、Table、Form呻率、CSS)等

5:Servlet & JSP
tomcat基礎(chǔ)
servlet基礎(chǔ)
web.xml配置基礎(chǔ)
web application的結(jié)構(gòu)
servlet生命周期
request response等常用方法
ServletContext類
HTTP協(xié)議基礎(chǔ)(GET POST)
Cookie
Session
Application
JSP的幾種語法(包括JSTL等)注意在項目中練習硬毕,不要拘泥于語法細節(jié)而裹步不前呻引。

6:Struts
多層架構(gòu)理論
Model 1 and Model 2
Struts基本概念
MVC
Action與業(yè)務(wù)邏輯類的關(guān)系
在Struts與JSP之間傳遞數(shù)據(jù)
Struts處理流程(控制流)
Struts TagLib(了解常用的)
JSTL
ActionForm
字段收集
上傳文件
類型轉(zhuǎn)換
DTO
動態(tài)Action Form
驗證框架
ActionForward 轉(zhuǎn)發(fā)與重定向
動態(tài)生成ActionForward
全局與局部的ActionForward
Action Forward Scope
UnknownActionMapping
Action的線程安全
I18N
如何切換語言環(huán)境
Struts異常處理機制 程序處理 自動處理 自定義異常處理器
Struts的多模塊配置

7:XML
(XML/XSL礼仗、XSLT/DTD、SCHEMA等基礎(chǔ)的概念逻悠、關(guān)于Java的編程可以暫時扔在一邊)

8:Hibernate
OR Mapping原理
Hibernate基礎(chǔ)開發(fā)步驟
Hibernate基本接口(重點Session)
普通屬性映射
關(guān)聯(lián)關(guān)系映射
Native SQL
inverse lazy cascade
繼承關(guān)系映射
HQL
性能優(yōu)化 一級緩存 二級緩存 查詢緩存
事務(wù)與并發(fā) 悲觀鎖元践、樂觀鎖
OpenSessionInView
CurrentSession
(至于JTA、聯(lián)合主鍵童谒、自然主鍵单旁、動態(tài)主鍵、Any類型 Creteria Queries Intercepter and Event 自定義類型等饥伊,可以暫時扔在一邊)

9:Spring
IOC/DI
Spring配置
Spring架構(gòu)
AOP及Spring AOP
聲明式事務(wù)(AOP)
Spring + Hibernate Spring支持Web
Scope
(其他的Spring模塊對于自學來說可以暫時扔在一邊)

10:EJB3.0
J2EE架構(gòu)基礎(chǔ)(JTA JMS等)
EJB基礎(chǔ)(地位及基本理論象浑、分類等)
Annotation
Ant編譯與部署EJB
Session Bean
EJB的依賴注入
Persistence API
(可以用JBoss學習EJB3.0)

11:至于SOA,對于自學的同學來說琅豆,暫時不用特別關(guān)注愉豺。
梳理一下,你就會發(fā)現(xiàn)東西不是想象中的那么多呀茫因!
建議大家優(yōu)先學習我們公布的視頻蚪拦,然后再去找參考書,因為這個時候就能分辨出來哪些書適合你了冻押。
那么驰贷,如何才能找到好書呢?一個簡單的辦法洛巢,在賣書的網(wǎng)站上括袒,比如http://www.china-pub.com,搜索你想了解的知識點比如”javascript”稿茉,按銷售排行锹锰,排在前幾位的类垦,應(yīng)該就是不錯的,記下書名城须,到書店閱讀幾章蚤认,合適你的就是好書了。沒錢買糕伐?簡單砰琢!還有什么google + 電驢找不到的資料嗎:)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市良瞧,隨后出現(xiàn)的幾起案子陪汽,更是在濱河造成了極大的恐慌,老刑警劉巖褥蚯,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挚冤,死亡現(xiàn)場離奇詭異,居然都是意外死亡赞庶,警方通過查閱死者的電腦和手機训挡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來歧强,“玉大人澜薄,你說我怎么就攤上這事√幔” “怎么了肤京?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長茅特。 經(jīng)常有香客問我忘分,道長,這世上最難降的妖魔是什么白修? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任妒峦,我火速辦了婚禮,結(jié)果婚禮上熬荆,老公的妹妹穿的比我還像新娘舟山。我一直安慰自己,他們只是感情好卤恳,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布累盗。 她就那樣靜靜地躺著,像睡著了一般突琳。 火紅的嫁衣襯著肌膚如雪若债。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天拆融,我揣著相機與錄音蠢琳,去河邊找鬼啊终。 笑死,一個胖子當著我的面吹牛傲须,可吹牛的內(nèi)容都是我干的蓝牲。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼泰讽,長吁一口氣:“原來是場噩夢啊……” “哼例衍!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起已卸,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤佛玄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后累澡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體梦抢,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年愧哟,在試婚紗的時候發(fā)現(xiàn)自己被綠了奥吩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡翅雏,死狀恐怖圈驼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情望几,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布萤厅,位于F島的核電站橄抹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏惕味。R本人自食惡果不足惜楼誓,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望名挥。 院中可真熱鬧疟羹,春花似錦、人聲如沸禀倔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽救湖。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間溪食,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工耍铜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人跌前。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓棕兼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親抵乓。 傳聞我的和親對象是個殘疾皇子程储,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容