第一篇:分享下多年積累的對JAVA程序員成長之路的總結(jié)
我也搞了幾年JAVA了,由于一向懶惰,沒有成為大牛,只是一普通程序猿,不愛玩社交網(wǎng)站,不愛玩微博,唯獨(dú)喜歡百度貼吧,潛水很久了,手癢來給新人分享下從新手成長為老鳥的已見,也刷刷存在感,應(yīng)該不比曝照差吧。
首先初識語法的階段,必須要學(xué)會怎么操作對象,操作if和for,操作list set map,然后是線程、IO和jdbc什么的,其余的,若是一時(shí)不理解,可以后邊需要時(shí)再學(xué)。
這階段完了,你可以寫些能在控制臺打印出來的小程序,鍛煉下邏輯思維。也就是號稱JAVASE畢業(yè)了,其實(shí)不過是入門而已,如果要往WEB方向發(fā)展,這些倒是基本足夠了。接下來要學(xué)HTML JSP SERVLET 數(shù)據(jù)庫 JAVASCRIPT TOMCAT,目標(biāo),寫出第一個(gè)動態(tài)網(wǎng)站,也許只是個(gè)登陸功能,只能展示下個(gè)人資料,但這是很重要的一步,你要弄清楚的是,一個(gè)用戶的點(diǎn)擊產(chǎn)生的請求,是從哪里發(fā)起,哪里接收,哪里處理,哪里返回,你得理解瀏覽器和服務(wù)器的關(guān)系和分工,cookie和session,request和response。這個(gè)是個(gè)WEB開發(fā)的學(xué)習(xí)初級階段,這都是些JAVA誕生以來最原始的最官方的WEB開發(fā)技術(shù),當(dāng)然現(xiàn)在真正的項(xiàng)目很少直接采用這些技術(shù)了,為了不斷提高技術(shù)的易用性、開發(fā)效率和可維護(hù)性、可擴(kuò)展性,無數(shù)開源項(xiàng)目都是在這些原始技術(shù)的基礎(chǔ)上封裝、改進(jìn)。所以這個(gè)階段不要盲目樂觀地跑去找工作或者對實(shí)習(xí)挑三揀四,你會被打擊到的。
好,初始階段完成,開始進(jìn)入WEB開發(fā)的正題,首先是傳說中的三大框架,struts hibernate spring成為熟練的增刪改查程序員是必須的,在這個(gè)階段你還要理解為什么要用這仨而不是那些JSP SERVLET JDBC,你要體會到寫MVC、三層架構(gòu)的好處。這個(gè)階段不要輕易質(zhì)疑三大框架的價(jià)值,也許剛開始你會覺得麻煩,覺得他們有時(shí)候是多此一舉,一兩年后回過頭來你會覺得少了這些框架你已經(jīng)很難干活了。這個(gè)階段還要避免的心態(tài)是能熟練地增刪改查了,就認(rèn)為寫程序不過如此,然后往簡歷上填個(gè)精通,這也是新手面試被批得體無完膚的原因之一。如果你學(xué)得好,這會應(yīng)該能熟練地寫個(gè)博客啊,小論壇啊之類的WEB項(xiàng)目了,也就是達(dá)到了就業(yè)的基本要求。
接下來就沒有固定模式了,你的第一家企業(yè)對你的影響會很大,我見識過爛企業(yè)是如何毀新人的,用著設(shè)計(jì)惡劣的架構(gòu),老掉牙的技術(shù),不斷地耽誤新人的成長,有的員工在這種企業(yè)一呆數(shù)年,思維已經(jīng)完全被錯(cuò)誤觀點(diǎn)定型,深陷于公司業(yè)務(wù)和老系統(tǒng)中疲于奔命,看似能解決問題,卻無法給公司帶來真正的進(jìn)步,就像一個(gè)用了數(shù)年砍刀的人,就算再熟練,刀法再好,也打不過用槍的。如果離開了這個(gè)公司,恐怕很難在這個(gè)行業(yè)再立足。記得有個(gè)說法很好,一個(gè)人用10年的時(shí)間重復(fù)做頭一兩年做的事,你的真實(shí)工作經(jīng)驗(yàn)其實(shí)還是一兩年。爛公司的老員工就是如此。在這頭一年里,定個(gè)標(biāo)準(zhǔn)吧,你應(yīng)該能做到的有:
1、把一些常用的瑣碎技術(shù)學(xué)會了,比如xml的作用和實(shí)際運(yùn)用,如何操作文件,如何運(yùn)用日志,如何簡化封裝常用的工具類,比如日期操作、編碼處理、分頁模塊等等,這些小東西會占用你大量的時(shí)間去處理摸索。
2、把數(shù)據(jù)庫用好。數(shù)據(jù)庫不是會增刪改查就可以了的,你要關(guān)注事務(wù)設(shè)置是否合理,是否有可能產(chǎn)生臟數(shù)據(jù),是否要?jiǎng)佑脴酚^鎖悲觀鎖等等,重要數(shù)據(jù)出了錯(cuò),無論是技術(shù)上還是業(yè)務(wù)上都是很麻煩的事。
3、懂得什么是集群,什么是分布式,懂得怎么向別的系統(tǒng)發(fā)請求,交換數(shù)據(jù),webservice。
4、如果你也寫頁面,你要會用JAVASCRIPT,不一定要很深入,你可以用JQUERY代替,做到無刷新的頁面操作以及AJAX請求。
第一年能達(dá)到這個(gè)程度,你絕對已經(jīng)在平均水準(zhǔn)之上了。在我達(dá)到這個(gè)水平時(shí),我有種似乎一切網(wǎng)站開發(fā)都不在話下的感覺,當(dāng)然后來我很快就發(fā)現(xiàn)了我還差得太遠(yuǎn)太遠(yuǎn)....這個(gè)階段想面?zhèn)€高薪的工作還是很難的,只能說達(dá)到溫飽線了,不用為柴米油鹽發(fā)愁。
下一個(gè)階段,你應(yīng)該考慮你的代碼質(zhì)量了。
1、多線程和異步、并發(fā)的概念會忽然變得很重要,因?yàn)樵谝粋€(gè)對性能有要求的系統(tǒng)里,是不會允許你把各種瑣事都排著隊(duì)一件件去辦的,你不能老寫些a方法調(diào)b方法再調(diào)c方法再調(diào)d方法然后返回的代碼。你開始想起有隊(duì)列這種東西,有runable這種東西,你開始覺得自己的代碼高端起來了,和當(dāng)年的增刪改查程序員有天壤之別。但同時(shí)麻煩也來了,你開始遇到線程安全問題,尤其是當(dāng)你的程序跑在一個(gè)多機(jī)環(huán)境而不是單機(jī)環(huán)境里的時(shí)候,你會對這些很頭痛。對于這些問題,Jms技術(shù)是個(gè)很有代表性的東西,當(dāng)然并不像ssh那么常用。
2、你會發(fā)現(xiàn)數(shù)據(jù)庫性能實(shí)在不行,出于不甘現(xiàn)狀,或者趕時(shí)髦,你該去了解nosql了,memcached redis mongodb,眼花繚亂,沒關(guān)系,試著用用,能很好地緩解mysql之類關(guān)系數(shù)據(jù)庫的壓力。
3、出于公司某些業(yè)務(wù)需要,你可能會鉆研一個(gè)特定技術(shù)領(lǐng)域,比如全文搜索技術(shù),lucenesolr,比如工作流jbpm,比如權(quán)限系統(tǒng),單點(diǎn)登陸之類的,又或者某些特定業(yè)務(wù)領(lǐng)域的算法研究,這些是你的加分項(xiàng)。
4、你開始發(fā)現(xiàn)你的代碼很亂,久了以后自己都看不懂,重復(fù)的,難以重用的代碼堆積如山,不想維護(hù),BUG百出。于是你要開始重視設(shè)計(jì)模式,合理地改造下自己的代碼習(xí)慣,不再被僵化的SSH,MVC三層架構(gòu)束縛住。
5、Google和各種資料是你進(jìn)步的動力,極少再遇到必須請教別人才能解決的問題,如果你這個(gè)階段還老是問別人,你的技術(shù)生涯也就快到頭了。
這個(gè)階段,如果你的交際和自我推銷能力不是太差,你的收入將是白領(lǐng)水平,至少接近了。
我覺得多數(shù)程序員在工作多年之后都能達(dá)到這個(gè)水平,有的人只需要兩年,有的人卻要用上五六年,在這個(gè)階段落伍的人,有的是出于天賦和思維所限,有的是出于對技術(shù)缺乏熱情,有的是出于工作內(nèi)容的制約。等到年近中年,再也拼不過年輕人,被淘汰出局,只能在自嘲為屌絲和碼農(nóng)的無奈中黯然轉(zhuǎn)行。
這是個(gè)很重要的分水齡,你能不能繼續(xù)進(jìn)步,能不能在30歲以后繼續(xù)從事技術(shù)工作,能不能在公司里獨(dú)當(dāng)一面,我覺得就看你能不能超越這個(gè)階段了。我前面提到的爛公司里的工作數(shù)年的項(xiàng)目經(jīng)理,連這個(gè)層次都還沒達(dá)到...接下來又是個(gè)全新的階段。
1、你要讀讀優(yōu)秀開源項(xiàng)目的源碼,你要搞懂一些當(dāng)年不懂的基礎(chǔ)知識,你開始理解thinking in java的精髓,你能寫一些底層的代碼,有時(shí)還會覺得自己封裝的比某些開源工具更好用更簡單。
2、WEB的難點(diǎn)和重點(diǎn)永遠(yuǎn)都在于性能、負(fù)載能力上,而現(xiàn)在網(wǎng)絡(luò)的發(fā)達(dá)造成了數(shù)據(jù)量和操作密度的大大上升,硬件卻沒有相應(yīng)的進(jìn)步,你得試著更好地運(yùn)用更多的服務(wù)器來協(xié)同工作,從WEB端到服務(wù)端到數(shù)據(jù)庫,全都需要集群,需要分布式,需要合理的控制數(shù)據(jù)的流向,掌握好網(wǎng)站上下,一大堆機(jī)器的平衡,找出性能的瓶頸,找出穩(wěn)定性和安全性的瓶頸,硬件出現(xiàn)故障,第三方技術(shù)出現(xiàn)錯(cuò)誤,將被當(dāng)成家常便飯融入到你的系統(tǒng)和代碼里仔細(xì)考慮。
3、開始覺得方案無比地重要,一將無能累死千軍將不斷應(yīng)驗(yàn),一個(gè)不好的設(shè)計(jì),一個(gè)不好的方案,會讓一群優(yōu)秀的程序員工作成果大打折扣。你要關(guān)注架構(gòu)知識,不能再滿足于SSH三層架構(gòu)到底。領(lǐng)域驅(qū)動設(shè)計(jì),面向事件開發(fā),敏捷開發(fā)等等一系列的思想在關(guān)鍵時(shí)刻能決定你項(xiàng)目的生死,這個(gè)階段不再有標(biāo)準(zhǔn)范例讓你照抄,你只知道思想和原理,實(shí)踐卻需要自己不斷嘗試和改進(jìn)。
4、多關(guān)注各種雜七雜八的開源技術(shù),有些你可能前面已經(jīng)接觸過了,和通信有關(guān)的,和集成開發(fā)環(huán)境有關(guān)的,和架構(gòu)有關(guān)的,各個(gè)領(lǐng)域你都應(yīng)該能信口說上幾個(gè)主流技術(shù),雖然你可能只是聽說過,了解,但關(guān)鍵時(shí)刻你得知道如何去選擇技術(shù),并快速掌握它。你還會去考慮嘗試下別的語言,這里不是說轉(zhuǎn)向什么C++ C#之類的,那和JAVA程序員不相干,我說的是一些運(yùn)行于JVM之上的語言,比如scala和groovy,初識他們時(shí)你會覺得java真的老了。但當(dāng)你回到一個(gè)綜合性的大型項(xiàng)目中,又會覺得java積累下來的整個(gè)體系技術(shù)是如此完善,就像一個(gè)工業(yè)化標(biāo)準(zhǔn)一樣。
你能把這個(gè)階段實(shí)踐好,勝任項(xiàng)目經(jīng)理,乃至中小公司的技術(shù)總監(jiān)都是可以的。
不知不覺寫了這么多了,以上是我個(gè)人眼里的一般向JAVA EE發(fā)展線路,限于篇輻也不全面,實(shí)際個(gè)人成長路線可能因?yàn)楣ぷ鲀?nèi)容的不同差異會很大,有的人偏向了底層研究,有的人偏向了業(yè)務(wù)需求設(shè)計(jì),有的帶有濃重的行業(yè)色彩,而且技術(shù)之外,還有很多知識也很重要.w做JAVA沒有輕松的方向,但一個(gè)對技術(shù)抱有興趣的人,走到這一步時(shí),仍然會對開發(fā)抱有熱情,想要寫出好的項(xiàng)目。純?yōu)榱松?jì)而工作的程序猿是走不到這一步的。
暫且收手,希望以上能讓J8的新人們了解將來要面對的大致狀況,同時(shí)也抱著打擊下小朋友們幼小心靈的邪惡心理就此按下發(fā)表按鈕。
能完整看完的同學(xué),在此表示欽佩,我想當(dāng)年的我也未必能看完這種又臭又長的敘述...
第二篇:java程序員的成長之路
Java目前是最流行的語言之一,是很多公司和程序員喜愛的一門程序語言.而且, Java的入門比C++相對來說要簡單一些, 所以有很大一部分程序員都選擇Java作為自己的開發(fā)語言.我也是其中之一, 就是因?yàn)橛X得學(xué)C++太難, 當(dāng)初在學(xué)校學(xué)了將近一個(gè)學(xué)期的C++, 啥進(jìn)步都沒有, 哈哈, 天資太差, 所以才選擇自學(xué)Java(當(dāng)時(shí)學(xué)校并沒有開設(shè)Java的課程), 才走上了程序開發(fā)這條路.Java雖然入門要容易, 然而要精通它, 要成為專家卻很難.主要原因是Java所涉及的技術(shù)面比較寬, 人的精力總是有限的.有些Java方面的技術(shù)是必須要要掌握的, 鉆研得越深入越好, 比如多線程技術(shù).1.基礎(chǔ)階段
基礎(chǔ)階段, 可能需要經(jīng)歷1-2年吧.這個(gè)時(shí)段, 應(yīng)該多寫一些基礎(chǔ)的小程序(自己動手寫的越多越好).計(jì)算機(jī)是一門實(shí)踐性很強(qiáng)的學(xué)科, 自己動手的東西, 記憶非常深刻, 效果要?jiǎng)龠^讀好多書.當(dāng)然, 學(xué)Java基礎(chǔ)的時(shí)候, 書籍的選擇也非常重要, 好的書籍事半功倍, 能讓你打個(gè)非常好的基礎(chǔ).而差的書籍, 很容易將你帶入歧途, 多走很多彎路.書籍不在多, 而在乎讀得精(有些書, 你讀十遍都不為過).我記得我學(xué)Java的第一本書是
2.中級階段
中級階段, 是一個(gè)更漫長的時(shí)期, 能否突破此階段, 跟個(gè)人的努力和天資有著很大的關(guān)系.你不得不承認(rèn), 同樣一門新技術(shù), 有些人一個(gè)月領(lǐng)悟到的東西, 比你一年的都多.這就是天資, 程序員是一個(gè)需要天才的工作.我想, 很多人聽說李一男吧, 此君就是這樣的人物, 三個(gè)月的時(shí)間就能解決好大一幫人幾年解決不了的問題, 給華為某部門帶來了很多的收益.哦, 這是題外話了, 與此篇的主題無關(guān), 只是本人偶爾的感慨而已:).這個(gè)階段, 就需要研究很多專題性的東西了, 比如: IO的實(shí)現(xiàn)原理, 多線程和Java的線程模型, 網(wǎng)絡(luò)編程, swing, RMI, reflect, EJB, JDBC等等很多很多的專題技術(shù), 鉆研得越深越好.為了更好的提高, 研究的更深入, 你需要經(jīng)常到網(wǎng)絡(luò)上搜索資料, 這個(gè)時(shí)候往往一本書起不來很大的作用.選一個(gè)JDK版本吧, 目前建議選用1.6, 多多研究它, 尤其是源
代碼(盡量!就是盡自己最大的努力, 雖然研究透是不可能滴).比如
說: util, collection, io, nio, concurrent等等包.可能有人會反對我說, 不是有API文檔嗎, 為什么還要研究這么多的源代碼? 錯(cuò)了, 有API文檔, 你僅僅只是知道怎么用而已, 而認(rèn)真仔細(xì)的研讀這些大牛的源碼, 你就會深入更高的一個(gè)階層, 自己的編碼, 設(shè)計(jì)都會有很大的提高.如果有能力和精力, 我建議你把JDK的每一行代碼都熟悉一遍, 絕對只有好處, 沒有壞處!而且你會有些意外的收獲, 比如, 當(dāng)你仔細(xì)地讀完concurrent包的時(shí)候(不多, 好像總共是86個(gè)類吧), 你就會對Doug Lea佩服得五體投地.這個(gè)時(shí)候最忌碰到難題就去尋找?guī)椭? 去網(wǎng)上找答案!先把自己的腦袋想破吧, 或者等你的老板拿著砍刀沖過來要把你殺了, 再去尋求幫助吧.對于專題的學(xué)習(xí), 英文原版的閱讀是非常必要的, 看的越多越好, 多上上IBM的developer, SUN的網(wǎng)站吧, 當(dāng)然Javaeye也很不錯(cuò):), 有很多大牛, 呵呵.這個(gè)時(shí)候, 你應(yīng)該建立自己的代碼庫了, 你應(yīng)該自己去研究很多有意思的東西了.從一個(gè)200多M的文件中尋找一個(gè)字段, 最壞情況(在文件的末尾咯)也只需要1秒左右的時(shí)間, 你知道嗎?這個(gè)階段, 有很多很多類似的有趣的東西可以供你去研究, 你需要更多地關(guān)注性能, 規(guī)范性, 多解決一些疑難問題.需要學(xué)會所有的調(diào)試技術(shù), 運(yùn)用各種性能工具, 還有JDK附帶的很多工具, 這些你都要熟練得跟屠夫操刀一樣.也可以看看
3.高級階段
高級階段, 我就不敢妄言了.呵呵, 我感覺自己也是處于中級階段吧.也是根據(jù)自己的一些經(jīng)驗(yàn), 談?wù)勛约旱睦斫獍?
這個(gè)階段, 需要研究各種框
架, Spring, struts, Junit, Hibernate, iBatis, Jboss, Tomcat, snmp4j等等, 我覺得這個(gè)時(shí)候, 只要是用Java實(shí)現(xiàn)的經(jīng)典框架, 你都可以去研究.------在此申明一下, 我的意思不是說會用.光會用其實(shí)是遠(yuǎn)遠(yuǎn)不夠的, 你可以選擇自己喜歡鉆研的框架, 去好好研究一下, 興趣是最好的老師嘛.建議開始的時(shí)候, 研究Junit和Struts吧, 小一點(diǎn), 里面都采用了很多的模式, 呵呵, 可以熟悉一下, 盡量想想人家為什么這么做.我建議主要的精力可以花在spring和jboss上, 尤其是jboss,經(jīng)典中的經(jīng)典, 設(shè)計(jì), 性能, 多線程, 資源管理等等, 你從中可以學(xué)到的東西簡直是太多了.而且它還有一本寫得很好的參考書, 叫
程和UML方面的資料, 或者自己主持一個(gè)項(xiàng)目玩玩, 不一定非得出去拉項(xiàng)目賺錢(能賺錢當(dāng)然更好), 不管成功或失敗, 都是很寶貴的經(jīng)驗(yàn), 都能提高很多!
第三篇:JAVA程序員之路
怎么學(xué)好java
JAVA程序員之路
很多網(wǎng)友問我學(xué)習(xí)Java有沒有什么捷徑,我說“無他,唯手熟爾”。但是我卻很愿意將自己學(xué)習(xí)的一些經(jīng)驗(yàn)寫出來,以便后來者少走彎路,幫助別人是最大的快樂嘛!
要想學(xué)好Java,首先要知道Java的大致分類。我們知道,自從Sun推出Java以來,就力圖使之無所不包,所以Java發(fā)展到現(xiàn)在,按應(yīng)用來分主要分為三大塊:J2SE,J2ME和J2EE,這也就是Sun ONE(Open Net Environment)體系。J2SE就是Java2的標(biāo)準(zhǔn)版,主要用于桌面應(yīng)用軟件的編程;J2ME主要應(yīng)用于嵌入是系統(tǒng)開發(fā),如手機(jī)和PDA的編程;J2EE是Java2的企業(yè)版,主要用于分布式的網(wǎng)絡(luò)程序的開發(fā),如電子商務(wù)網(wǎng)站和ERP系統(tǒng)。J2SE開發(fā)桌面應(yīng)用軟件比起VC,VB,DEPHI這些傳統(tǒng)開發(fā)語言來說,優(yōu)勢好象并不明顯。J2ME對于初學(xué)者來說,好象又有點(diǎn)深?yuàn)W,而且一般開發(fā)者很難有開發(fā)環(huán)境。所以現(xiàn)在應(yīng)用最廣泛又最好學(xué)的就是J2EE了。J2EE又包括許多組件,如
Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要學(xué)習(xí)起來可不是一兩天的事。那么又該如何學(xué)習(xí)J2EE呢?當(dāng)然Java語法得先看一看的,I/O包,Util包,Lang包你都熟悉了嗎?然后再從JSP學(xué)起。如果你學(xué)過HTML,那么事情要好辦的多,如果沒有,那你快去補(bǔ)一補(bǔ)HTML基礎(chǔ)吧。其實(shí)JSP中的Java語法也不多,它更象一個(gè)腳本語言,有點(diǎn)象ASP。然后你就該學(xué)一學(xué)Servlet了。Servlet就是服務(wù)器端小程序,他負(fù)責(zé)生成發(fā)送給客戶端的HTML文件。JSP在執(zhí)行時(shí),也是先轉(zhuǎn)換成Servlet再運(yùn)行的。雖說JSP理論上可以完全取代Servlet,這也是SUN推出JSP的本意,可是Servlet用來控制流程跳轉(zhuǎn)還是挺方便的,也令程序更清晰。接下來你應(yīng)該學(xué)習(xí)一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代碼的混亂方式了,這種方式跟ASP又有什么區(qū)別呢?還好,SUN提供了Javabean可以把你的JSP中的Java代碼封裝起來,便于調(diào)用也便于重用。接著就是EJB了,EJB就是Enterprise JavaBean,看名字好象它是Javabean,可是它和Javabean還是有區(qū)別的。它是一個(gè)體系結(jié)構(gòu),你可以搭建更安全、更穩(wěn)定的企業(yè)應(yīng)用。它的大量代碼已由中間件(也就是我們常聽到的Weblogic,Websphere這些J2EE服務(wù)器)完成了,所以我們要做的程序代碼量很少,大部分工作都在設(shè)計(jì)和配置中間件上。至于JDBC,就不用我多說了,你如果用java編過存取數(shù)據(jù)庫的程序,就應(yīng)該很熟悉。還有,如果你要用Java編發(fā)送電子郵件的程序,你就得看看Javamail了。
好了,對Java和J2EE有了一些基本概念之后,你就應(yīng)該編一些程序了,千萬不要紙上談兵哦。最好找一些有實(shí)例且?guī)Ч獗P的書來看,這樣看到好的程序就可以直接Ctrl+C再Ctrl+V,也不用勞您老大架再親自把它再輸一遍吧,再說直接復(fù)制還不用怕出錯(cuò),何樂而不為呢!還有就是要經(jīng)常上一些好的Java編程文章,有好的文章要Cut下來,有問題盡管問,只要問題不是太傻,一般高手都會回答你的。下面介紹幾個(gè)好的Java方面的編程網(wǎng)站:
CSDN論壇http:/// 中國最有名的技術(shù)論壇,《程序員》雜志就是他們出版的,你可以在上面提出問題,馬上就有人回答你,如果你覺得好,你可以給那人加分;
Java研究組http:/// 那里Java資料比較全;
java.com.cn http://.cn/ 看這域名就知道有多牛,注冊用戶快接近一萬了,同時(shí)在線人數(shù)也在一千左右,人氣很旺的;
IBM的開發(fā)者網(wǎng)http:// IBM永遠(yuǎn)的藍(lán)色巨人;
那么我書也看了,程序也做了,別人問我的問題我都能解決了,是不是就成為高手了呢?當(dāng)然沒那么簡單,這只是萬里長征走完了第一步。不信?那你出去接一個(gè)項(xiàng)目,你知道怎么下手嗎,你知道怎么設(shè)計(jì)嗎,你知道怎么組織人員進(jìn)行開發(fā)嗎?你現(xiàn)在腦子里除了一些散亂的代碼之外,可能再沒有別的東西了吧!你現(xiàn)在最缺的是實(shí)際的工作經(jīng)驗(yàn),而不是書本上那些憑空想出來的程序。所以你快去找一份Java的編程工作來做吧(如果是在校學(xué)生可以去做兼職啊),在實(shí)踐中提高自己,那才是最快的。不過你得祈禱在公司里碰到一個(gè)高手,而且他還愿意不厭其煩地教你,這樣好象有點(diǎn)難哦!
還有一個(gè)辦法就是讀開放源碼的程序了。我們知道開放源碼大都出自高手,他們設(shè)計(jì)合理,考慮周到,再加上有廣大的程序員參與,代碼的價(jià)值自然是字字珠嘰,鏗鏘有力(對不起,最近《金裝四大才子》看多了)。學(xué)Java必讀的兩個(gè)開源程序就是Jive和Pet Store.。Jive是國外一個(gè)非常著名的BBS程序,完全開放源碼。論壇的設(shè)計(jì)采用了很多先進(jìn)的技術(shù),如Cache、用戶認(rèn)證、Filter、XML等,而且論壇完全屏蔽了對數(shù)據(jù)庫的訪問,可以很輕易的在不同數(shù)據(jù)庫中移植。論壇還有方便的安裝和管理程序,這是我們平時(shí)編程時(shí)容易忽略的一部份(中國程序員一般只注重編程的技術(shù)含量,卻完全不考慮用戶的感受,這就是我們與國外軟件的差距所在)。Jive的資料在很多網(wǎng)站上都有,大家可以找來研究一下。相信你讀完代碼后,會有脫胎換骨的感覺。遺憾的是Jive從2.5以后就不再無條件的開放源代碼,同時(shí)有l(wèi)icence限制。不過幸好還有中國一流的Java程序員關(guān)注它,外國人不開源了,中國人就不能開源嗎?這里向大家推薦一個(gè)漢化的Jive版本—J道。Jive(J道版)是由中國Java界大名鼎鼎的banq在Jive2.1版本基礎(chǔ)上改編而成, 全中文,增加了一些實(shí)用功能,如貼圖,用戶頭像和用戶資料查詢等,而且有一個(gè)開發(fā)團(tuán)隊(duì)在不斷升級。你可以訪問banq的網(wǎng)
http:/// 去下載,或到同濟(jì)技術(shù)論壇的服務(wù)器上
ftp://nro.shtdu.edu.cn去下,安裝上有什么問題,可以到論壇上去提問。Pet Store.(寵物店)是SUN公司為了演示其J2EE編程規(guī)范而推出的開放源碼的程序,應(yīng)該很具有權(quán)威性,想學(xué)J2EE和EJB的朋友不要錯(cuò)過了。
你一定會高興地說,哈哈,原來成為Java高手就這么簡單啊!記得我也曾碰到過一個(gè)項(xiàng)目經(jīng)理,號稱Java很簡單,只要三個(gè)月就可以學(xué)會。其實(shí)說這種話的人就如當(dāng)年小日本號稱“三個(gè)月拿下中國”一樣大言不慚。不是我潑你冷水,你現(xiàn)在只是學(xué)到了Java的骨架,卻還沒有學(xué)到Java的精髓。接下來你得研究設(shè)計(jì)模式了。設(shè)計(jì)模式是高級程序員真正掌握面向?qū)ο蠛诵乃枷氲谋匦拚n。設(shè)計(jì)模式并不是一種具體“技術(shù)”,它講述的是思想,它不僅僅展示了接口或抽象類在實(shí)際案例中的靈活應(yīng)用和智慧,讓你能夠真正掌握接口或抽象類的應(yīng)用,從而在原來的Java語言基礎(chǔ)上躍進(jìn)一步,更重要的是,設(shè)計(jì)模式反復(fù)向你強(qiáng)調(diào)一個(gè)宗旨:要讓你的程序盡可能的可重用。關(guān)于設(shè)計(jì)模式的資料,還是向大家推薦banq的網(wǎng)http:///,他把GOF的23種模式以通俗易懂的方式詮釋出來,純Java描述,真是經(jīng)典中的經(jīng)典。有時(shí)間再研究一下MVC結(jié)構(gòu)(把
Model-View-Control分離開的設(shè)計(jì)思想)吧,現(xiàn)在很流行的Structs就是它的一種實(shí)現(xiàn)方式,不過Structs用起來實(shí)在是很繁,我們只要學(xué)習(xí)其精髓即可,我們完全可以設(shè)計(jì)自己的MVC結(jié)構(gòu)。然后你再研究一下軟件Refactoring(重整)和極限XP編程,相信你又會上一個(gè)臺階。
做完這些,你不如整理一下你的Java代碼,把那些經(jīng)典的程序和常見的應(yīng)用整理出來,再精心打造一番,提高其重用性和可擴(kuò)展性。你再找?guī)讉€(gè)志同道合的朋友成立一個(gè)工作室吧,你可以去承接一些項(xiàng)目做了,一開始可能有些困難,可是你有技術(shù)積累,又考慮周全,接下項(xiàng)目來可以迅速作完,相信大家以后都會來找你的,所以Money就嘩啦啦的來了。。。
當(dāng)然你也可以參加一些開源項(xiàng)目,一方面可以提高自己,另一方面也是為中國軟件事業(yè)做貢獻(xiàn)嘛!開發(fā)者在互聯(lián)網(wǎng)上用CVS合作開發(fā),用QQ,MSN,E-mail討論聯(lián)系,天南海北的程序員分散在各地卻同時(shí)開發(fā)同一個(gè)軟件,是不是很有意思呢?
下面介紹兩個(gè)好的開源項(xiàng)目網(wǎng)站:
湖北省軟件公共開發(fā)平http://gro.clinux.org/
共創(chuàng)聯(lián)http://cosoft.org.cn/
哇,好高興哦,我終于成為高手了!非也,非也。古人云:“識時(shí)務(wù)者為俊杰”。你知道計(jì)算機(jī)界現(xiàn)在的發(fā)展形勢嗎?你知道微軟的.NET藍(lán)圖和SUN ONE計(jì)劃之間的明爭暗斗嗎?你知道計(jì)算機(jī)技術(shù)將向何處發(fā)展嗎?其實(shí)從各大計(jì)算機(jī)廠商最近的動作,都可以看出來“Web服務(wù)將是下一代互聯(lián)網(wǎng)應(yīng)用的制高點(diǎn)”,而微軟的.NET藍(lán)圖和SUN ONE計(jì)劃的斗爭焦點(diǎn),也就是Web服務(wù)。Web服務(wù)就是一個(gè)嶄新的分布式計(jì)算模型,它是一系列標(biāo)準(zhǔn)的綜合(XML,SOAP,UDDI,WSDL和WSFL等)。它使得不同語言編寫的軟件能夠輕易的集成起來,使網(wǎng)絡(luò)資源和Web站點(diǎn)變成一種服務(wù)而不是混亂的垃圾場。不遠(yuǎn)的將來,我們就可以在家里點(diǎn)擊一下鼠標(biāo),就可以完成出門旅游的全部準(zhǔn)備工作,包括定飛機(jī)票,定旅游線路,定好房間等。請注意,這所有的一切都是Web站點(diǎn)間自動完成的,再也不用象現(xiàn)在一樣,表面上是電子商務(wù),實(shí)際上很多環(huán)節(jié)都是人工操作。也許你會覺得這是天方夜談,不過就近的說,你也很有可能承接一個(gè)項(xiàng)目,要集成兩個(gè)企業(yè)的ERP系統(tǒng)。很有可能上游企業(yè)的系統(tǒng)是用Dephi編的,而下游企業(yè)的系統(tǒng)是用Java編的。你說你是Java高手,大家都看者你怎么做呢。所以啊,你還得學(xué)習(xí)新技術(shù),如Web服務(wù),而且你Dephi也要懂一點(diǎn)吧(Dephi6現(xiàn)在已經(jīng)提供Web服務(wù)的控件了)。你編的Java系統(tǒng),可能要和.NET集成,所以你.NET要懂一點(diǎn)吧?到最后,你可能發(fā)現(xiàn)你已經(jīng)成為Java高手了,但很多時(shí)間卻在搞別的技術(shù)。太極張三豐里說,最厲害的招式就是沒有招式,可能就是這個(gè)道理吧!因?yàn)閯倓偱d起,所以網(wǎng)上Web服務(wù)的資料不是很多,我還是給大家推薦幾個(gè)網(wǎng)站吧:
中國UDDI技術(shù)聯(lián)http:///developerWorks/cn/xml/index.shtml?csdn IBM可是Web服務(wù)的力推者
嗚…你費(fèi)勁千心萬苦,總算成為Java高手了,怎叫人不由喜極而泣呢!是啊,真不容易,真不簡單,真叫人感動啊!那么打個(gè)電話告訴我吧,什么?我的電話號碼是多少?昏到,你打電話問不就知道了嗎,真是的……
如上是在網(wǎng)上考下來的,但個(gè)人認(rèn)為SCJP證書也好,程序員等級證書也好,不要太看重它;關(guān)鍵是你手中有沒有技術(shù),能不能拿出活來。我面試時(shí)候都是以證書為參考,主要衡量你的手段還是提問技術(shù)性問題以及一些編程方面的基礎(chǔ)問題。建議不要把證書看的太重。
第四篇:java程序員之路
很多網(wǎng)友問我學(xué)習(xí)Java有沒有什么捷徑,我說“無他,唯手熟爾”。但是我卻很愿意將自己學(xué)習(xí)的一些經(jīng)驗(yàn)寫出來,以便后來者少走彎路,幫助別人是最大的快樂嘛!
要想學(xué)好Java,首先要知道Java的大致分類。我們知道,自從Sun推出Java以來,就力圖使之無所不包,所以Java發(fā)展到現(xiàn)在,按應(yīng)用來分主要分為三大塊:J2SE,J2ME和J2EE,這也就是Sun ONE(Open Net Environment)體系。J2SE就是Java2的標(biāo)準(zhǔn)版,主要用于桌面應(yīng)用軟件的編程;J2ME主要應(yīng)用于嵌入是系統(tǒng)開發(fā),如手機(jī)和PDA的編程;J2EE是Java2的企業(yè)版,主要用于分布式的網(wǎng)絡(luò)程序的開發(fā),如電子商務(wù)網(wǎng)站和ERP系統(tǒng)。J2SE開發(fā)桌面應(yīng)用軟件比起VC,VB,DEPHI這些傳統(tǒng)開發(fā)語言來說,優(yōu)勢好象并不明顯。J2ME對于初學(xué)者來說,好象又有點(diǎn)深?yuàn)W,而且一般開發(fā)者很難有開發(fā)環(huán)境。所以現(xiàn)在應(yīng)用最廣泛又最好學(xué)的就是J2EE了。J2EE又包括許多組件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要學(xué)習(xí)起來可不是一兩天的事。
那么又該如何學(xué)習(xí)J2EE呢?當(dāng)然Java語法得先看一看的,I/O包,Util包,Lang包你都熟悉了嗎?然后再從JSP學(xué)起。如果你學(xué)過HTML,那么事情要好辦的多,如果沒有,那你快去補(bǔ)一補(bǔ)HTML基礎(chǔ)吧。其實(shí)JSP中的Java語法也不多,它更象一個(gè)腳本語言,有點(diǎn)象ASP。然后你就該學(xué)一學(xué)Servlet了。Servlet就是服務(wù)器端小程序,他負(fù)責(zé)生成發(fā)送給客戶端的HTML文件。JSP在執(zhí)行時(shí),也是先轉(zhuǎn)換成Servlet再運(yùn)行的。雖說JSP理論上可以完全取代Servlet,這也是SUN推出JSP的本意,可是Servlet用來控制流程跳轉(zhuǎn)還是挺方便的,也令程序更清晰。接下來你應(yīng)該學(xué)習(xí)一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代碼的混亂方式了,這種方式跟ASP又有什么區(qū)別呢?還好,SUN提供了Javabean可以把你的JSP中的Java代碼封裝起來,便于調(diào)用也便于重用。接著就是EJB了,EJB就是Enterprise JavaBean,看名字好象它是Javabean,可是它和Javabean還是有區(qū)別的。它是一個(gè)體系結(jié)構(gòu),你可以搭建更安全、更穩(wěn)定的企業(yè)應(yīng)用。它的大量代碼已由中間件(也就是我們常聽到的Weblogic,Websphere這些J2EE服務(wù)器)完成了,所以我們要做的程序代碼量很少,大部分工作都在設(shè)計(jì)和配置中間件上。至于JDBC,就不用我多說了,你如果用java編過存取數(shù)據(jù)庫的程序,就應(yīng)該很熟悉。還有,如果你要用Java編發(fā)送電子郵件的程序,你就得看看Javamail了。
好了,對Java和J2EE有了一些基本概念之后,你就應(yīng)該編一些程序了,千萬不要紙上談兵哦。最好找一些有實(shí)例且?guī)Ч獗P的書來看,這樣看到好的程序就可以直接Ctrl+C再Ctrl+V,也不用勞您老大架再親自把它再輸一遍吧,再說直接復(fù)制還不用怕出錯(cuò),何樂而不為呢!還有就是要經(jīng)常上一些好的Java編程文章,有好的文章要Cut下來,有問題盡管問,只要問題不是太傻,一般高手都會回答你的。下面介紹幾個(gè)好的Java方面的編程網(wǎng)站:
CSDN論壇http:/// 那里Java資料比較全;
java.com.cn http://.cn/ 看這域名就知道有多牛,注冊用戶快接近一萬了,同時(shí)在線人數(shù)也在一千左右,人氣很旺的;
IBM的開發(fā)者網(wǎng)http:// IBM永遠(yuǎn)的藍(lán)色巨人;
那么我書也看了,程序也做了,別人問我的問題我都能解決了,是不是就成為高手了呢?當(dāng)然沒那么簡單,這只是萬里長征走完了第一步。不信?那你出去接一個(gè)項(xiàng)目,你知道怎么下手嗎,你知道怎么設(shè)計(jì)嗎,你知道怎么組織人員進(jìn)行開發(fā)嗎?你現(xiàn)在腦子里除了一些散亂的代碼之外,可能再沒有別的東西了吧!你現(xiàn)在最缺的是實(shí)際的工作經(jīng)驗(yàn),而不是書本上那些憑空想出來的程序。所以你快去找一份Java的編程工作來做吧(如果是在校學(xué)生可以去做兼職啊),在實(shí)踐中提高
自己,那才是最快的。不過你得祈禱在公司里碰到一個(gè)高手,而且他還愿意不厭其煩地教你,這樣好象有點(diǎn)難哦!
還有一個(gè)辦法就是讀開放源碼的程序了。我們知道開放源碼大都出自高手,他們設(shè)計(jì)合理,考慮周到,再加上有廣大的程序員參與,代碼的價(jià)值自然是字字珠嘰,鏗鏘有力(對不起,最近《金裝四大才子》看多了)。學(xué)Java必讀的兩個(gè)開源程序就是Jive和Pet Store.。Jive是國外一個(gè)非常著名的BBS程序,完全開放源碼。論壇的設(shè)計(jì)采用了很多先進(jìn)的技術(shù),如Cache、用戶認(rèn)證、Filter、XML等,而且論壇完全屏蔽了對數(shù)據(jù)庫的訪問,可以很輕易的在不同數(shù)據(jù)庫中移植。論壇還有方便的安裝和管理程序,這是我們平時(shí)編程時(shí)容易忽略的一部份(中國程序員一般只注重編程的技術(shù)含量,卻完全不考慮用戶的感受,這就是我們與國外軟件的差距所在)。Jive的資料在很多網(wǎng)站上都有,大家可以找來研究一下。相信你讀完代碼后,會有脫胎換骨的感覺。遺憾的是Jive從2.5以后就不再無條件的開放源代碼,同時(shí)有l(wèi)icence限制。不過幸好還有中國一流的Java程序員關(guān)注它,外國人不開源了,中國人就不能開源嗎?這里向大家推薦一個(gè)漢化的Jive版本—J道。Jive(J道版)是由中國Java界大名鼎鼎的banq在Jive2.1版本基礎(chǔ)上改編而成, 全中文,增加了一些實(shí)用功能,如貼圖,用戶頭像和用戶資料查詢等,而且有一個(gè)開發(fā)團(tuán)隊(duì)在不斷升級。你可以訪問banq的網(wǎng)http:/// 去下載,或到同濟(jì)技術(shù)論壇的服務(wù)器上ftp://nro.shtdu.edu.cn去下,安裝上有什么問題,可以到論壇上去提問。Pet Store.(寵物店)是SUN公司為了演示其J2EE編程規(guī)范而推出的開放源碼的程序,應(yīng)該很具有權(quán)威性,想學(xué)J2EE和EJB的朋友不要錯(cuò)過了。
你一定會高興地說,哈哈,原來成為Java高手就這么簡單啊!記得我也曾碰到過一個(gè)項(xiàng)目經(jīng)理,號稱Java很簡單,只要三個(gè)月就可以學(xué)會。其實(shí)說這種話的人就如當(dāng)年小日本號稱“三個(gè)月拿下中國”一樣大言不慚。不是我潑你冷水,你現(xiàn)在只是學(xué)到了Java的骨架,卻還沒有學(xué)到Java的精髓。接下來你得研究設(shè)計(jì)模式了。設(shè)計(jì)模式是高級程序員真正掌握面向?qū)ο蠛诵乃枷氲谋匦拚n。設(shè)計(jì)模式并不是一種具體“技術(shù)”,它講述的是思想,它不僅僅展示了接口或抽象類在實(shí)際案例中的靈活應(yīng)用和智慧,讓你能夠真正掌握接口或抽象類的應(yīng)用,從而在原來的Java語言基礎(chǔ)上躍進(jìn)一步,更重要的是,設(shè)計(jì)模式反復(fù)向你強(qiáng)調(diào)一個(gè)宗旨:要讓你的程序盡可能的可重用。關(guān)于設(shè)計(jì)模式的資料,還是向大家推薦banq的網(wǎng)http:///,他把GOF的23種模式以通俗易懂的方式詮釋出來,純Java描述,真是經(jīng)典中的經(jīng)典。有時(shí)間再研究一下MVC結(jié)構(gòu)(把Model-View-Control分離開的設(shè)計(jì)思想)吧,現(xiàn)在很流行的Structs就是它的一種實(shí)現(xiàn)方式,不過Structs用起來實(shí)在是很繁,我們只要學(xué)習(xí)其精髓即可,我們完全可以設(shè)計(jì)自己的MVC結(jié)構(gòu)。然后你再研究一下軟件Refactoring(重整)和極限XP編程,相信你又會上一個(gè)臺階。
做完這些,你不如整理一下你的Java代碼,把那些經(jīng)典的程序和常見的應(yīng)用整理出來,再精心打造一番,提高其重用性和可擴(kuò)展性。你再找?guī)讉€(gè)志同道合的朋友成立一個(gè)工作室吧,你可以去承接一些項(xiàng)目做了,一開始可能有些困難,可是你有技術(shù)積累,又考慮周全,接下項(xiàng)目來可以迅速作完,相信大家以后都會來找你的,所以Money就嘩啦啦的來了。。。
當(dāng)然你也可以參加一些開源項(xiàng)目,一方面可以提高自己,另一方面也是為中國軟件事業(yè)做貢獻(xiàn)嘛!開發(fā)者在互聯(lián)網(wǎng)上用CVS合作開發(fā),用QQ,MSN,E-mail討論聯(lián)系,天南海北的程序員分散在各地卻同時(shí)開發(fā)同一個(gè)軟件,是不是很有意思呢?
下面介紹兩個(gè)好的開源項(xiàng)目網(wǎng)站:
湖北省軟件公共開發(fā)平http://gro.clinux.org/
共創(chuàng)聯(lián)http://cosoft.org.cn/
哇,好高興哦,我終于成為高手了!非也,非也。古人云:“識時(shí)務(wù)者為俊杰”。你知道計(jì)算機(jī)界現(xiàn)在的發(fā)展形勢嗎?你知道微軟的.NET藍(lán)圖和SUN ONE計(jì)劃之間的明爭暗斗嗎?你知道計(jì)算機(jī)技術(shù)將向何處發(fā)展嗎?其實(shí)從各大計(jì)算機(jī)廠商最近的動作,都可以看出來“Web服務(wù)將是下一
代互聯(lián)網(wǎng)應(yīng)用的制高點(diǎn)”,而微軟的.NET藍(lán)圖和SUN ONE計(jì)劃的斗爭焦點(diǎn),也就是Web服務(wù)。Web服務(wù)就是一個(gè)嶄新的分布式計(jì)算模型,它是一系列標(biāo)準(zhǔn)的綜合(XML,SOAP,UDDI,WSDL和WSFL等)。它使得不同語言編寫的軟件能夠輕易的集成起來,使網(wǎng)絡(luò)資源和Web站點(diǎn)變成一種服務(wù)而不是混亂的垃圾場。不遠(yuǎn)的將來,我們就可以在家里點(diǎn)擊一下鼠標(biāo),就可以完成出門旅游的全部準(zhǔn)備工作,包括定飛機(jī)票,定旅游線路,定好房間等。請注意,這所有的一切都是Web站點(diǎn)間自動完成的,再也不用象現(xiàn)在一樣,表面上是電子商務(wù),實(shí)際上很多環(huán)節(jié)都是人工操作。也許你會覺得這是天方夜談,不過就近的說,你也很有可能承接一個(gè)項(xiàng)目,要集成兩個(gè)企業(yè)的ERP系統(tǒng)。很有可能上游企業(yè)的系統(tǒng)是用Dephi編的,而下游企業(yè)的系統(tǒng)是用Java編的。你說你是Java高手,大家都看者你怎么做呢。所以啊,你還得學(xué)習(xí)新技術(shù),如Web服務(wù),而且你Dephi也要懂一點(diǎn)吧(Dephi6現(xiàn)在已經(jīng)提供Web服務(wù)的控件了)。你編的Java系統(tǒng),可能要和.NET集成,所以你.NET要懂一點(diǎn)吧?到最后,你可能發(fā)現(xiàn)你已經(jīng)成為Java高手了,但很多時(shí)間卻在搞別的技術(shù)。太極張三豐里說,最厲害的招式就是沒有招式,可能就是這個(gè)道理吧!
因?yàn)閯倓偱d起,所以網(wǎng)上Web服務(wù)的資料不是很多,我還是給大家推薦幾個(gè)網(wǎng)站吧:中國UDDI技術(shù)聯(lián)http:///developerWorks/cn/xml/index.shtml?csdn IBM可是Web服務(wù)的力推者
嗚…你費(fèi)勁千心萬苦,總算成為Java高手了,怎叫人不由喜極而泣呢!是啊,真不容易,真不簡單,真叫人感動啊!那么打個(gè)電話告訴我吧,什么?我的電話號碼是多少?昏到,你打電話問不就知道了嗎,真是的……
如上是在網(wǎng)上考下來的,但個(gè)人認(rèn)為SCJP證書也好,程序員等級證書也好,不要太看重它;關(guān)鍵是你手中有沒有技術(shù),能不能拿出活來。我面試時(shí)候都是以證書為參考,主要衡量你的手段還是提問技術(shù)性問題以及一些編程方面的基礎(chǔ)問題。建議不要把證書看的太重。
參考資料:參考高手建議
第五篇:JAVA程序員之路
JAVA程序員之路
很多網(wǎng)友問我學(xué)習(xí)Java有沒有什么捷徑,我說“無他,唯手熟爾”。但是我卻很愿意將自己學(xué)習(xí)的一些經(jīng)驗(yàn)寫出來,以便后來者少走彎路,幫助別人是最大的快樂嘛!
要想學(xué)好Java,首先要知道Java的大致分類。我們知道,自從Sun推出Java以來,就力圖使之無所不包,所以Java發(fā)展到現(xiàn)在,按應(yīng)用來分主要分為三大塊:J2SE,J2ME和J2EE,這也就是Sun ONE(Open Net Environment)體系。J2SE就是Java2的標(biāo)準(zhǔn)版,主要用于桌面應(yīng)用軟件的編程;J2ME主要應(yīng)用于嵌入是系統(tǒng)開發(fā),如手機(jī)和PDA的編程;J2EE是Java2的企業(yè)版,主要用于分布式的網(wǎng)絡(luò)程序的開發(fā),如電子商務(wù)網(wǎng)站和ERP系統(tǒng)。J2SE開發(fā)桌面應(yīng)用軟件比起VC,VB,DEPHI這些傳統(tǒng)開發(fā)語言來說,優(yōu)勢好象并不明顯。J2ME對于初學(xué)者來說,好象又有點(diǎn)深?yuàn)W,而且一般開發(fā)者很難有開發(fā)環(huán)境。所以現(xiàn)在應(yīng)用最廣泛又最好學(xué)的就是J2EE了。J2EE又包括許多組件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要學(xué)習(xí)起來可不是一兩天的事。那么又該如何學(xué)習(xí)J2EE呢?當(dāng)然Java語法得先看一看的,I/O包,Util包,Lang包你都熟悉了嗎?然后再從JSP學(xué)起。如果你學(xué)過HTML,那么事情要好辦的多,如果沒有,那你快去補(bǔ)一補(bǔ)HTML基礎(chǔ)吧。其實(shí)JSP中的Java語法也不多,它更象一個(gè)腳本語言,有點(diǎn)象ASP。然后你就該學(xué)一學(xué)Servlet了。Servlet就是服務(wù)器端小程序,他負(fù)責(zé)生成發(fā)送給客戶端的HTML文件。JSP在執(zhí)行時(shí),也是先轉(zhuǎn)換成Servlet再運(yùn)行的。雖說JSP理論上可以完全取代Servlet,這也是SUN推出JSP的本意,可是Servlet用來控制流程跳轉(zhuǎn)還是挺方便的,也令程序更清晰。接下來你應(yīng)該學(xué)習(xí)一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代碼的混亂方式了,這種方式跟ASP又有什么區(qū)別呢?還好,SUN提供了Javabean可以把你的JSP中的Java代碼封裝起來,便于調(diào)用也便于重用。接著就是EJB了,EJB就是Enterprise JavaBean,看名字好象它是Javabean,可是它和Javabean還是有區(qū)別的。它是一個(gè)體系結(jié)構(gòu),你可以搭建更安全、更穩(wěn)定的企業(yè)應(yīng)用。它的大量代碼已由中間件(也就是我們常聽到的Weblogic,Websphere這些J2EE服務(wù)器)完成了,所以我們要做的程序代碼量很少,大部分工作都在設(shè)計(jì)
和配置中間件上。至于JDBC,就不用我多說了,你如果用java編過存取數(shù)據(jù)庫的程序,就應(yīng)該很熟悉。還有,如果你要用Java編發(fā)送電子郵件的程序,你就得看看Javamail了。
好了,對Java和J2EE有了一些基本概念之后,你就應(yīng)該編一些程序了,千萬不要紙上談兵哦。最好找一些有實(shí)例且?guī)Ч獗P的書來看,這樣看到好的程序就可以直接Ctrl+C再Ctrl+V,也不用勞您老大架再親自把它再輸一遍吧,再說直接復(fù)制還不用怕出錯(cuò),何樂而不為呢!還有就是要經(jīng)常上一些好的Java編程文章,有好的文章要Cut下來,有問題盡管問,只要問題不是太傻,一般高手都會回答你的。下面介紹幾個(gè)好的Java方面的編程網(wǎng)站:
CSDN論壇 中國最有名的技術(shù)論壇,《程序員》雜志就是他們出版的,你可以在上面提出問題,馬上就有人回答你,如果你覺得好,你可以給那人加分;
Java研究組 上面有很多原創(chuàng)文章,高手還是挺多的; Java開發(fā)者 那里Java資料比較全;
java.com.cn看這域名就知道有多牛,注冊用戶快接近一萬了,同時(shí)在線人數(shù)也在一千左右,人氣很旺的;
IBM的開發(fā)者網(wǎng) IBM永遠(yuǎn)的藍(lán)色巨人;
那么我書也看了,程序也做了,別人問我的問題我都能解決了,是不是就成為高手了呢?當(dāng)然沒那么簡單,這只是萬里長征走完了第一步。不信?那你出去接一個(gè)項(xiàng)目,你知道怎么下手嗎,你知道怎么設(shè)計(jì)嗎,你知道怎么組織人員進(jìn)行開發(fā)嗎?你現(xiàn)在腦子里除了一些散亂的代碼之外,可能再沒有別的東西了吧!你現(xiàn)在最缺的是實(shí)際的工作經(jīng)驗(yàn),而不是書本上那些憑空想出來的程序。所以你快去找一份Java的編程工作來做吧(如果是在校學(xué)生可以去做兼職啊),在實(shí)踐中提高自己,那才是最快的。不過你得祈禱在公司里碰到一個(gè)高手,而且他還愿意不厭其煩地教你,這樣好象有點(diǎn)難哦!
還有一個(gè)辦法就是讀開放源碼的程序了。我們知道開放源碼大都出自高手,他們設(shè)計(jì)合理,考慮周到,再加上有廣大的程序員參與,代碼的價(jià)值自然是字字珠嘰,鏗鏘有力(對不起,最近《金裝四大才子》看多了)。學(xué)Java必讀的兩個(gè)開源程序就是Jive和Pet Store.。Jive是國外一個(gè)非常著名的BBS程序,完全開放源碼。論壇的設(shè)計(jì)采用了很多先進(jìn)的技術(shù),如Cache、用戶認(rèn)證、Filter、XML等,而且論壇完全屏蔽了對數(shù)據(jù)庫的訪問,可以很輕易的在不同數(shù)據(jù)庫中移植。論壇還有方便的安裝和管理程序,這是我們平時(shí)編程時(shí)容易忽略的一部份(中國程序員一般只注重編程的技術(shù)含量,卻完全不考慮用戶的感受,這就是我們與國外軟件的差距所在)。Jive的資料在很多網(wǎng)站上都有,大家可以找來研究一下。相信你讀完代碼后,會有脫胎換骨的感覺。遺憾的是Jive從2.5以后就不再無條件的開放源代碼,同時(shí)有l(wèi)icence限制。不過幸好還有中國一流的Java程序員關(guān)注它,外國人不開源了,中國人就不能開源嗎?這里向大家推薦一個(gè)漢化的Jive版本—J道。Jive(J道版)是由中國Java界大名鼎鼎的banq在Jive2.1版本基礎(chǔ)上改編而成, 全中文,增加了一些實(shí)用功能,如貼圖,用戶頭像和用戶資料查詢等,而且有一個(gè)開發(fā)團(tuán)隊(duì)在不斷升級。你可以訪問banq的網(wǎng)http:/// 去下載,或到同濟(jì)技術(shù)論壇的服務(wù)器上ftp://nro.shtdu.edu.cn去下,安裝上有什么問題,可以到論壇上去提問。Pet Store.(寵物店)是SUN公司為了演示其J2EE編程規(guī)范而推出的開放源碼的程序,應(yīng)該很具有權(quán)威性,想學(xué)J2EE和EJB的朋友不要錯(cuò)過了。
你一定會高興地說,哈哈,原來成為Java高手就這么簡單啊!記得我也曾碰到過一個(gè)項(xiàng)目經(jīng)理,號稱Java很簡單,只要三個(gè)月就可以學(xué)會。其實(shí)說這種話的人就如當(dāng)年小日本號稱“三個(gè)月拿下中國”一樣大言不慚。不是我潑你冷水,你現(xiàn)在只是學(xué)到了Java的骨架,卻還沒有學(xué)到Java的精髓。接下來你得研究設(shè)計(jì)模式了。設(shè)計(jì)模式是高級程序員真正掌握面向?qū)ο蠛诵乃枷氲谋匦拚n。設(shè)計(jì)模式并不是一種具體“技術(shù)”,它講述的是思想,它不僅僅展示了接口或抽象類在實(shí)際案例中的靈活應(yīng)用和智慧,讓你能夠真正掌握接口或抽象類的應(yīng)用,從而在原來的Java語言基礎(chǔ)上躍進(jìn)一步,更重要的是,設(shè)計(jì)模式反復(fù)向你強(qiáng)調(diào)一個(gè)宗旨:要讓你的程序盡可能的可重用。關(guān)于設(shè)計(jì)模式的資料,還是向大家推薦banq的網(wǎng),他把GOF的23種模式以通俗易懂的方式詮釋出來,純Java描述,真是經(jīng)典中的經(jīng)典。有時(shí)間再研究一下MVC結(jié)構(gòu)(把Model-View-Control分離開的設(shè)計(jì)思想)吧,現(xiàn)在很流行的Structs就是它的一種實(shí)現(xiàn)方式,不過Structs
用起來實(shí)在是很繁,我們只要學(xué)習(xí)其精髓即可,我們完全可以設(shè)計(jì)自己的MVC結(jié)構(gòu)。然后你再研究一下軟件Refactoring(重整)和極限XP編程,相信你又會上一個(gè)臺階。
做完這些,你不如整理一下你的Java代碼,把那些經(jīng)典的程序和常見的應(yīng)用整理出來,再精心打造一番,提高其重用性和可擴(kuò)展性。你再找?guī)讉€(gè)志同道合的朋友成立一個(gè)工作室吧,你可以去承接一些項(xiàng)目做了,一開始可能有些困難,可是你有技術(shù)積累,又考慮周全,接下項(xiàng)目來可以迅速作完,相信大家以后都會來找你的,所以Money就嘩啦啦的來了。。。
當(dāng)然你也可以參加一些開源項(xiàng)目,一方面可以提高自己,另一方面也是為中國軟件事業(yè)做貢獻(xiàn)嘛!開發(fā)者在互聯(lián)網(wǎng)上用CVS合作開發(fā),用QQ,MSN,E-mail討論聯(lián)系,天南海北的程序員分散在各地卻同時(shí)開發(fā)同一個(gè)軟件,是不是很有意思呢?
下面介紹兩個(gè)好的開源項(xiàng)目網(wǎng)站:
湖北省軟件公共開發(fā)平http://gro.clinux.org/
共創(chuàng)聯(lián)http://cosoft.org.cn/
哇,好高興哦,我終于成為高手了!非也,非也。古人云:“識時(shí)務(wù)者為俊杰”。你知道計(jì)算機(jī)界現(xiàn)在的發(fā)展形勢嗎?你知道微軟的.NET藍(lán)圖和SUN ONE計(jì)劃之間的明爭暗斗嗎?你知道計(jì)算機(jī)技術(shù)將向何處發(fā)展嗎?其實(shí)從各大計(jì)算機(jī)廠商最近的動作,都可以看出來“Web服務(wù)將是下一代互聯(lián)網(wǎng)應(yīng)用的制高點(diǎn)”,而微軟的.NET藍(lán)圖和SUN ONE計(jì)劃的斗爭焦點(diǎn),也就是Web服務(wù)。Web服務(wù)就是一個(gè)嶄新的分布式計(jì)算模型,它是一系列標(biāo)準(zhǔn)的綜合(XML,SOAP,UDDI,WSDL和WSFL等)。它使得不同語言編寫的軟件能夠輕易的集成起來,使網(wǎng)絡(luò)資源和Web站點(diǎn)變成一種服務(wù)而不是混亂的垃圾場。不遠(yuǎn)的將來,我們就可以在家里點(diǎn)擊一下鼠標(biāo),就可以完成出門旅游的全部準(zhǔn)備工作,包括定飛機(jī)票,定旅游線路,定好房間等。請注意,這所有的一切都是Web站點(diǎn)間自動完成的,再也不用象現(xiàn)在一樣,表面上是電子商務(wù),實(shí)際上很多環(huán)節(jié)都是人工操作。也許你會覺得這是天方夜談,不過就近的說,你也很有可能承接一個(gè)項(xiàng)目,要集成兩個(gè)企業(yè)的ERP系統(tǒng)。很有可能上游企業(yè)的系統(tǒng)是用Dephi編的,而下游企業(yè)的系統(tǒng)是用Java編的。你說你是Java高手,大家都看者你怎么做呢。所以啊,你還得學(xué)習(xí)新技
術(shù),如Web服務(wù),而且你Dephi也要懂一點(diǎn)吧(Dephi6現(xiàn)在已經(jīng)提供Web服務(wù)的控件了)。你編的Java系統(tǒng),可能要和.NET集成,所以你.NET要懂一點(diǎn)吧?到最后,你可能發(fā)現(xiàn)你已經(jīng)成為Java高手了,但很多時(shí)間卻在搞別的技術(shù)。太極張三豐里說,最厲害的招式就是沒有招式,可能就是這個(gè)道理吧!
因?yàn)閯倓偱d起,所以網(wǎng)上Web服務(wù)的資料不是很多,我還是給大家推薦幾個(gè)網(wǎng)站吧:
中國UDDI技術(shù)聯(lián)http://www.tmdps.cn/
CSDN的柴曉路專(注:柴曉路也是互聯(lián)網(wǎng)上一個(gè)有名的人物,他發(fā)表過很多關(guān)于Web服務(wù)的文章,還出了一書,應(yīng)該稱的上是中國Web服務(wù)技術(shù)的先行者)
IBM的開發(fā)者網(wǎng)絡(luò)的XML&Web Service專欄:IBM可是Web服務(wù)的力推者
嗚…你費(fèi)勁千心萬苦,總算成為Java高手了,怎叫人不由喜極而泣呢!是啊,真不容易,真不簡單,真叫人感動啊!那么打個(gè)電話告訴我吧,什么?我的電話號碼是多少?昏到,你打電話問不就知道了嗎,真是的……