第一篇:Java程序員成長(zhǎng)路線
004km.cn
Java程序員成長(zhǎng)路線
Java程序員
高級(jí)特性
反射、泛型、注釋符、自動(dòng)裝箱和拆箱、枚舉類(lèi)、可變
參數(shù)、可變返回類(lèi)型、增強(qiáng)循環(huán)、靜態(tài)導(dǎo)入
核心編程
IO、多線程、實(shí)體類(lèi)、集合類(lèi)、正則表達(dá)式、XML和屬性文件
圖形編程
AWT(Java2D/JavaSound/JMF)、Swing、SWT、JFace
004km.cn
網(wǎng)路編程
Applet、Socket/TCP/UDP、NIO、RMI、CORBA
Java語(yǔ)法基礎(chǔ)
類(lèi)、抽象類(lèi)、接口、最終類(lèi)、靜態(tài)類(lèi)、匿名類(lèi)、內(nèi)部類(lèi)、異常類(lèi)、編碼規(guī)范
Java開(kāi)發(fā)環(huán)境
JDK、JVM、Eclipse、Linux
Java核心編程技術(shù)
Java,設(shè)計(jì)而又非常精巧的語(yǔ)言。學(xué)習(xí)Java,須從Java開(kāi)發(fā)環(huán)境開(kāi)始,到Java語(yǔ)法,再到Java的核心API。
1.Java開(kāi)發(fā)入門(mén):Java開(kāi)發(fā)環(huán)境的安裝與使用,包括JDK命令、EclipseIDE、Linux下Java程序的開(kāi)發(fā)和部署等。
004km.cn
2.Java語(yǔ)法基礎(chǔ):基于JDK和Eclipse環(huán)境,進(jìn)行Java核心功能開(kāi)發(fā),掌握J(rèn)ava面向?qū)ο蟮恼Z(yǔ)法構(gòu)成,包括類(lèi)、抽象類(lèi)、接口、最終類(lèi)、靜態(tài)類(lèi)、匿名類(lèi)、內(nèi)部類(lèi)、異常的編寫(xiě)。
3.Java核心API:基于JDK提供的類(lèi)庫(kù),掌握三大核心功能:
A。Java核心編程:包括Java編程的兩大核心功能——Java輸入/輸出流和多線程,以及常用的輔助類(lèi)庫(kù)——實(shí)體類(lèi)、集合類(lèi)、正則表達(dá)式、XML和屬性文件。
B。Java圖形編程:包括Sun的GUI庫(kù)AWT(Java2D、JavaSound、JMF)和Swing,IBM和GUI庫(kù)SWT和Jface;
C.Java網(wǎng)路編程:Applet組件編程,Socket編程,NIO非阻塞Socket編程、RMI和CORBA分布式開(kāi)發(fā)。
4.Java高級(jí)特性:掌握J(rèn)DK1.4、JDK5.0、JDK6.0中的Java高級(jí)特性,包括反射、泛型、注釋?zhuān)约癹ava高級(jí)特性——自動(dòng)裝箱和拆箱、枚舉類(lèi)、可變參數(shù)、可變返回類(lèi)型、增強(qiáng)循環(huán)、靜態(tài)導(dǎo)入等。
JavaEE初級(jí)軟件工程師
004km.cn
JSF框架開(kāi)發(fā)技術(shù)
配置文件(頁(yè)面導(dǎo)航、后臺(tái)Bean)、JSF組件庫(kù)(JSF EL語(yǔ)言、HTML標(biāo)簽、事件處理、)、JSF核心庫(kù)(格式轉(zhuǎn)換、輸入驗(yàn)證、國(guó)際化)
Javaweb核心開(kāi)發(fā)技術(shù)
開(kāi)發(fā)環(huán)境(Eclipse、Linux)
三大組件(JSP、JavaBean、Servlet)
擴(kuò)展技術(shù)(EL、JSTL、Taglib)
網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)
HTML、XML、CSS、JavaScript、AJAX
數(shù)據(jù)庫(kù)設(shè)計(jì)技術(shù)
SQL、MySql、Oracle、SQLServer、JDBC
Web服務(wù)器(Tomcat/Jetty/Resin/JBossWeb)
004km.cn
JavaWeb核心技術(shù):
JavaWeb項(xiàng)目開(kāi)發(fā)的全過(guò)程可以分解為:
網(wǎng)頁(yè)開(kāi)發(fā)+數(shù)據(jù)庫(kù)設(shè)計(jì)——>JavaWeb項(xiàng)目開(kāi)發(fā),其中,javaWeb由6項(xiàng)基本技術(shù)組成:JSP+JavaBean+Servlet+EL+JSTL+Taglib,而JSF正是將這6種技術(shù)進(jìn)行有機(jī)結(jié)合的技術(shù)框架:
JavaEE中級(jí)軟件工程師
四種經(jīng)典架構(gòu)SSH1、SSI1、SSH2、SSI2
Struts1表現(xiàn)層框架
入門(mén)配置、核心組件、標(biāo)簽庫(kù)、國(guó)際化、數(shù)據(jù)檢驗(yàn)、數(shù)據(jù)庫(kù)開(kāi)發(fā)、Sitemesh集成、集成Hibernate/iBATIS
Struts2表現(xiàn)層框架
入門(mén)配置、核心組件、標(biāo)簽庫(kù)、國(guó)際化、數(shù)據(jù)校驗(yàn)、Sitemesh集成轉(zhuǎn)換器、攔截器、集成Hibernate/iBATIS
004km.cn
Spring業(yè)務(wù)層框架
入門(mén)配置、IoC容器、MVC、標(biāo)簽庫(kù)、國(guó)際化、數(shù)據(jù)校驗(yàn)、數(shù)據(jù)庫(kù)開(kāi)發(fā)
Hibernate持久層框架
MySQL、Oracle、SQLServer iBATIS持久層框架
MySQL、Oracle、SQLServer
Web服務(wù)器(Tomcat/Jetty/Resin/JBossWeb)
Java高級(jí)軟件工程師
javaWeb開(kāi)源技術(shù)與框架
工作流、規(guī)則引擎
004km.cn
搜索引擎、緩存引擎、任務(wù)調(diào)度、身份認(rèn)證
報(bào)表服務(wù)、系統(tǒng)測(cè)試、集群、負(fù)載平衡、故障轉(zhuǎn)移
JavaWeb分布式開(kāi)發(fā)技術(shù)
JTA(Java事物管理)
004km.cn
JAAS(Java驗(yàn)證和授權(quán)服務(wù))
JNDI(Java命名和目錄服務(wù))
JavaMail(Java郵件服務(wù))
JMS(java信息服務(wù))
WebService(web服務(wù))
JCA(java連接體系)
JMS(java管理體系)
應(yīng)用服務(wù)器(JBossAS/WebLogic/WebSphere)
JavaEE系統(tǒng)架構(gòu)師
面向云架構(gòu)(COA)
COA、SaaS、網(wǎng)格計(jì)算、集群計(jì)算、分布式計(jì)算、云計(jì)算
004km.cn
面向資源架構(gòu)(ROA)
ROA、RESI
面向web服務(wù)架構(gòu)(SOA)
WebService、SOA、SCA、ESB、OSGI、EAI
Java設(shè)計(jì)模式
創(chuàng)建式模式:抽象工廠/建造者/工廠方法/原型/單例
構(gòu)造型模式:適配器/橋接/組合/裝飾/外觀/享元/代理
行為型模式:責(zé)任鏈/命令/解釋器/迭代子/中介者/備忘錄/觀察者/狀態(tài)/策略/模板方法/訪問(wèn)者
Java與UML建模
對(duì)象圖、用例圖、組件圖、部署圖、序列圖、交互圖、活動(dòng)圖、正向工程與逆向工程
004km.cn
CTO首席技術(shù)官
發(fā)展戰(zhàn)略
技術(shù)總監(jiān)
團(tuán)隊(duì)提升
團(tuán)隊(duì)建設(shè)
項(xiàng)目管理
產(chǎn)品管理
一般情況下,java的發(fā)展路線是這樣的,當(dāng)然,具體情況因人而異。比如,有的可能后來(lái)轉(zhuǎn)入產(chǎn)品職位或其他職位了。另外,每個(gè)企業(yè)里面java從業(yè)人員的title是不同的。比如,有的企業(yè)有CTO,而有的企業(yè)則只有技術(shù)經(jīng)理或技術(shù)主任等,叫法不同,但本質(zhì)和所需掌握的技術(shù)大致相同。
(ps:本文章由北大青鳥(niǎo)廣安門(mén)校區(qū)搜集自互聯(lián)網(wǎng))
第二篇:Java自學(xué)成長(zhǎng)路線
Java自學(xué)成長(zhǎng)路線
JAVA自學(xué)之路 一:學(xué)會(huì)選擇
決心做軟件的,大多數(shù)人選的是java,或是.net,也有一些選擇了手機(jī)、嵌入式、游戲、3G、測(cè)試等。
JAVA是一種平臺(tái),也是一種程序設(shè)計(jì)語(yǔ)言,如何學(xué)好程序設(shè)計(jì)不僅僅適用于JAVA,對(duì)C++等其他程序設(shè)計(jì)語(yǔ)言也一樣管用。有編程高手認(rèn)為,JAVA也好C也好沒(méi)什么分別,拿來(lái)就用。為什么他們能達(dá)到如此境界?我想是因?yàn)榫幊陶Z(yǔ)言之間有共通之處,領(lǐng)會(huì)了編程的精髓,自然能夠做到一通百通。如何學(xué)習(xí)程序設(shè)計(jì)理所當(dāng)然也有許多共通的地方。
1.1 培養(yǎng)興趣
興趣是能夠讓你堅(jiān)持下去的動(dòng)力。如果只是把寫(xiě)程序作為謀生的手段的話,你會(huì)活的很累,也太對(duì)不起自己了。多關(guān)心一些行業(yè)趣事,多想想蓋茨。不是提倡天天做白日夢(mèng),但人要是沒(méi)有了夢(mèng)想,你覺(jué)得有味道嗎?可能像許多深圳本地農(nóng)民一樣,打打麻將,喝喝功夫茶,拜拜財(cái)神爺;每個(gè)月就有幾萬(wàn)十幾萬(wàn)甚至更多的進(jìn)帳,憑空多出個(gè)“食利階層”。你認(rèn)為,這樣有味道嗎?有空多到一些程序員論壇轉(zhuǎn)轉(zhuǎn),你會(huì)發(fā)現(xiàn),他們其實(shí)很樂(lè)觀幽默,時(shí)不時(shí)會(huì)冒出智慧的火花。
1.2 慎選程序設(shè)計(jì)語(yǔ)言
男怕入錯(cuò)行,女怕嫁錯(cuò)郎。初學(xué)者選擇程序設(shè)計(jì)語(yǔ)言需要謹(jǐn)慎對(duì)待。軟件開(kāi)發(fā)不僅僅是掌握一門(mén)編程語(yǔ)言了事,它還需要其他很多方面的背景知識(shí)。軟件開(kāi)發(fā)也不僅僅局限于某幾個(gè)領(lǐng)域,而是已經(jīng)滲透到了各行各業(yè)幾乎每一個(gè)角落。
如果你對(duì)硬件比較感興趣,你可以學(xué)習(xí)C語(yǔ)言/匯編語(yǔ)言,進(jìn)入硬件開(kāi)發(fā)領(lǐng)域。如果你對(duì)電信的行業(yè)知識(shí)及網(wǎng)絡(luò)比較熟悉,你可以在C/C++等之上多花時(shí)間,以期進(jìn)入電信軟件開(kāi)發(fā)領(lǐng)域。如果你對(duì)操作系統(tǒng)比較熟悉,你可以學(xué)習(xí)C/Linux等等,為L(zhǎng)inux內(nèi)核開(kāi)發(fā)/驅(qū)動(dòng)程序開(kāi)發(fā)/嵌入式開(kāi)發(fā)打基礎(chǔ)。如果你想介入到應(yīng)用范圍最廣泛的應(yīng)用軟件開(kāi)發(fā)(包括電子商務(wù)電子政務(wù)系統(tǒng))的話,你可以選擇J2EE或.NET,甚至LAMP組合。每個(gè)領(lǐng)域要求的背景知識(shí)不一樣。做應(yīng)用軟件需要對(duì)數(shù)據(jù)庫(kù)等很熟悉??傊?,你需要根據(jù)自己的特點(diǎn)來(lái)選擇合適你的編程語(yǔ)言。
1.3 要腳踏實(shí)地,快餐式的學(xué)習(xí)不可取
先分享一個(gè)故事。
有一個(gè)小朋友,他很喜歡研究生物學(xué),很想知道那些蝴蝶如何從蛹?xì)だ锍鰜?lái),變成蝴蝶便會(huì)飛。有一次,他走到草原上面看見(jiàn)一個(gè)蛹,便取了回家,然后看著,過(guò)了幾天以后,這個(gè)蛹出了一條裂痕,看見(jiàn)里面的蝴蝶開(kāi)始掙扎,想抓破蛹?xì)わw出來(lái)。這個(gè)過(guò)程達(dá)數(shù)小時(shí)之久,蝴蝶在蛹里面很辛苦地拼命掙扎,怎么也沒(méi)法子走出來(lái)。這個(gè)小孩看著看著不忍心,就想不如讓我?guī)蛶退桑汶S手拿起剪刀在蛹上剪開(kāi),使蝴蝶破蛹而出。但蝴蝶出來(lái)以后,因?yàn)槌岚虿粔蛄Γ兊煤苡纺[,飛不起來(lái)。
這個(gè)故事給我們的啟示是:欲速則不達(dá)。
浮躁是現(xiàn)代人最普遍的心態(tài),能怪誰(shuí)?也許是貧窮落后了這么多年的緣故,就像當(dāng)年的大躍進(jìn)一樣,都想大步跨入共產(chǎn)主義社會(huì)?,F(xiàn)在的軟件公司、客戶(hù)、政府、學(xué)校、培訓(xùn)機(jī)構(gòu)等等到處彌漫著浮躁之氣。就拿筆者比較熟悉的深圳IT培訓(xùn)行業(yè)來(lái)說(shuō)吧,居然有的打廣告宣稱(chēng)“參加培訓(xùn),100%就業(yè)”,居然報(bào)名的學(xué)生不少,簡(jiǎn)直是藐視天下程序員。社會(huì)環(huán)境如是,我們不能改變,只能改變自己,鬧市中的安寧,彌足珍貴。許多初學(xué)者C++/JAVA沒(méi)開(kāi)始學(xué),立馬使用VC/JBuilder,會(huì)使用VC/JBuilder開(kāi)發(fā)一個(gè)Hello World程序,就忙不迭的向世界宣告,“我會(huì)軟件開(kāi)發(fā)了”,簡(jiǎn)歷上也大言不慚地寫(xiě)上“精通VC/JAVA”。結(jié)果到軟件公司面試時(shí)要么被三兩下打發(fā)走了,要么被駁的體無(wú)完膚,無(wú)地自容。到處碰壁之后才知道捧起《C++編程思想》《JAVA編程思想》仔細(xì)鉆研,早知如此何必當(dāng)初呀。
“你現(xiàn)在講究簡(jiǎn)單方便,你以后的路就長(zhǎng)了”,好象也是佛經(jīng)中的勸戒。
1.4 多實(shí)踐,快實(shí)踐
彭端淑的《為學(xué)一首示子侄》中有窮和尚與富和尚的故事。
從前,四川邊境有兩個(gè)和尚,一個(gè)貧窮,一個(gè)有錢(qián)。一天,窮和尚對(duì)富和尚說(shuō):“我打算去南海朝圣,你看怎么樣?”富和尚說(shuō):“這里離南海有幾千里遠(yuǎn),你靠什么去呢?”窮和尚說(shuō):“我只要一個(gè)水缽,一個(gè)飯碗就夠了?!备缓蜕袨殡y地說(shuō):“幾年前我就打算買(mǎi)條船去南海,可至今沒(méi)去成,你還是別去吧!” 一年以后,富和尚還在為租賃船只籌錢(qián),窮和尚卻已經(jīng)從南海朝圣回來(lái)了。
這個(gè)故事可解讀為:任何事情,一旦考慮好了,就要馬上上路,不要等到準(zhǔn)備周全之后,再去干事情。假如事情準(zhǔn)備考慮周全了再上路的話,別人恐怕捷足先登了。軟件開(kāi)發(fā)是一門(mén)工程學(xué)科,注重的就是實(shí)踐,“君子動(dòng)口不動(dòng)手”對(duì)軟件開(kāi)發(fā)人員來(lái)講根本就是錯(cuò)誤的,他們提倡“動(dòng)手至上”,但別害怕,他們大多溫文爾雅,沒(méi)有暴力傾向,雖然有時(shí)候蓬頭垢面的一副“比爾蓋茨”樣。有前輩高人認(rèn)為,學(xué)習(xí)編程的秘訣是:編程、編程、再編程,筆者深表贊同。不僅要多實(shí)踐,而且要快實(shí)踐。我們?cè)诳磿?shū)的時(shí)候,不要等到你完全理解了才動(dòng)手敲代碼,而是應(yīng)該在看書(shū)的同時(shí)敲代碼,程序運(yùn)行的各種情況可以讓你更快更牢固的掌握知識(shí)點(diǎn)。
1.5 多參考程序代碼
程序代碼是軟件開(kāi)發(fā)最重要的成果之一,其中滲透了程序員的思想與靈魂。許多人被《仙劍奇?zhèn)b傳》中凄美的愛(ài)情故事感動(dòng),悲劇的結(jié)局更有一種缺憾美。為什么要以悲劇結(jié)尾?據(jù)說(shuō)是因?yàn)閷?xiě)《仙劍奇?zhèn)b傳》的程序員失戀而安排了這樣的結(jié)局,他把自己的感覺(jué)融入到游戲中,卻讓眾多的仙劍迷扼腕嘆息。
多多參考代碼例子,對(duì)JAVA而言有參考文獻(xiàn)[4.3],有API類(lèi)的源代碼(JDK安裝目錄下的src.zip文件),也可以研究一些開(kāi)源的軟件或框架。
1.6 加強(qiáng)英文閱讀能力
對(duì)學(xué)習(xí)編程來(lái)說(shuō),不要求英語(yǔ), 但不能一點(diǎn)不會(huì),。最起碼像JAVA API文檔(參考文獻(xiàn)[4.4])這些東西還是要能看懂的,連猜帶懵都可以;旁邊再開(kāi)啟一個(gè)“金山詞霸”。看多了就會(huì)越來(lái)越熟練。在學(xué)JAVA的同時(shí)學(xué)習(xí)英文,一箭雙雕多好。另外好多軟件需要到英文網(wǎng)站下載,你要能夠找到它們,這些是最基本的要求。英語(yǔ)好對(duì)你學(xué)習(xí)有很大的幫助??谡Z(yǔ)好的話更有機(jī)會(huì)進(jìn)入管理層,進(jìn)而可以成為剝削程序員的“周扒皮”。
1.7 萬(wàn)不得已才請(qǐng)教別人
筆者在ChinaITLab網(wǎng)校的在線輔導(dǎo)系統(tǒng)中解決學(xué)生問(wèn)題時(shí)發(fā)現(xiàn),大部分的問(wèn)題學(xué)生稍做思考就可以解決。請(qǐng)教別人之前,你應(yīng)該先回答如下幾個(gè)問(wèn)題。
你是否在google中搜索了問(wèn)題的解決辦法?
你是否查看了JAVA API文檔?
你是否查找過(guò)相關(guān)書(shū)籍?
你是否寫(xiě)代碼測(cè)試過(guò)?
如果回答都是“是”的話,而且還沒(méi)有找到解決辦法,再問(wèn)別人不遲。要知道獨(dú)立思考的能力對(duì)你很重要。要知道程序員的時(shí)間是很寶貴的。
1.8 多讀好書(shū)
書(shū)中自有顏如玉。比爾?蓋茨是一個(gè)飽讀群書(shū)的人。雖然沒(méi)有讀完大學(xué),但九歲的時(shí)候比爾?蓋茨就已經(jīng)讀完了所有的百科全書(shū),所以他精通天文、歷史、地理等等各類(lèi)學(xué)科,可以說(shuō)比爾?蓋茨不僅是當(dāng)今世界上金錢(qián)的首富,而且也可以稱(chēng)得上是知識(shí)的巨富。
筆者在給學(xué)生上課的時(shí)候經(jīng)常會(huì)給他們推薦書(shū)籍,到后來(lái)學(xué)生實(shí)在忍無(wú)可忍開(kāi)始抱怨,“天吶,這么多書(shū)到什么時(shí)候才能看完了”,“學(xué)軟件開(kāi)發(fā),感覺(jué)上了賊船”。這時(shí)候,我的回答一般是,“別著急,什么時(shí)候帶你們?nèi)タ纯次业臅?shū)房,到現(xiàn)在每月花在技術(shù)書(shū)籍上的錢(qián)400元,這在軟件開(kāi)發(fā)人員之中還只能夠算是中等的”,學(xué)生當(dāng)場(chǎng)暈倒。(注:這一部分學(xué)生是剛學(xué)軟件開(kāi)發(fā)的)
對(duì)于在JAVA開(kāi)發(fā)領(lǐng)域的好書(shū)在筆者另外一篇文章中會(huì)專(zhuān)門(mén)點(diǎn)評(píng)。該文章可作為本文的姊妹篇。
1.9 使用合適的工具
工欲善其事必先利其器。軟件開(kāi)發(fā)包含各種各樣的活動(dòng),需求收集分析、建立用例模型、建立分析設(shè)計(jì)模型、編程實(shí)現(xiàn)、調(diào)試程序、自動(dòng)化測(cè)試、持續(xù)集成等等,沒(méi)有工具幫忙可以說(shuō)是寸步難行。工具可以提高開(kāi)發(fā)效率,使軟件的質(zhì)量更高BUG更少。組合稱(chēng)手的武器。到飛花摘葉皆可傷人的境界就很高了,無(wú)招勝有招,手中無(wú)劍心中有劍這樣的境界幾乎不可企及。在筆者另外一篇文章中會(huì)專(zhuān)門(mén)闡述如何選擇合適的工具(該文章也可作為本文的姊妹篇)。
2.軟件開(kāi)發(fā)學(xué)習(xí)路線
兩千多年的儒家思想孔孟之道,中庸的思想透入骨髓,既不冒進(jìn)也不保守并非中庸之道,而是找尋學(xué)習(xí)軟件開(kāi)發(fā)的正確路線與規(guī)律。
從軟件開(kāi)發(fā)人員的生涯規(guī)劃來(lái)講,我們可以大致分為三個(gè)階段,軟件工程師→軟件設(shè)計(jì)師→架構(gòu)設(shè)計(jì)師或項(xiàng)目管理師。不想當(dāng)元帥的士兵不是好士兵,不想當(dāng)架構(gòu)設(shè)計(jì)師或項(xiàng)目管理師的程序員也不是好的程序員。我們應(yīng)該努力往上走。讓我們先整理一下開(kāi)發(fā)應(yīng)用軟件需要學(xué)習(xí)的主要技術(shù)。
A.基礎(chǔ)理論知識(shí),如操作系統(tǒng)、編譯原理、數(shù)據(jù)結(jié)構(gòu)與算法、計(jì)算機(jī)原理等,它們并非不重要。如不想成為計(jì)算機(jī)科學(xué)家的話,可以采取“用到的時(shí)候再來(lái)學(xué)”的原則。
B.一門(mén)編程語(yǔ)言,現(xiàn)在基本上都是面向?qū)ο蟮恼Z(yǔ)言,JAVA/C++/C#等等。如果做WEB開(kāi)發(fā)的話還要學(xué)習(xí)HTML/JavaScript等等。
C.一種方法學(xué)或者說(shuō)思想,現(xiàn)在基本都是面向?qū)ο笏枷耄∣OA/OOD/設(shè)計(jì)模式)。由此而衍生的基于組件開(kāi)發(fā)CBD/面向方面編程AOP等等。
D.一種關(guān)系型數(shù)據(jù)庫(kù),ORACLE/SqlServer/DB2/MySQL等等
E.一種提高生產(chǎn)率的IDE集成開(kāi)發(fā)環(huán)境JBuilder/Eclipse/VS.NET等。
F.一種UML建模工具,用ROSE/VISIO/鋼筆進(jìn)行建模。
G.一種軟件過(guò)程,RUP/XP/CMM等等,通過(guò)軟件過(guò)程來(lái)組織軟件開(kāi)發(fā)的眾多活動(dòng),使開(kāi)發(fā)流程專(zhuān)業(yè)化規(guī)范化。當(dāng)然還有其他的一些軟件工程知識(shí)。
H.項(xiàng)目管理、體系結(jié)構(gòu)、框架知識(shí)。
正確的路線應(yīng)該是:B→C→E→F→G→H。
還需要補(bǔ)充幾點(diǎn):
1).對(duì)于A與C要補(bǔ)充的是,我們應(yīng)該在實(shí)踐中逐步領(lǐng)悟編程理論與編程思想。新技術(shù)雖然不斷涌現(xiàn),更新速度令人眼花燎亂霧里看花;但萬(wàn)變不離其宗,編程理論與編程思想的變化卻很慢。掌握了編程理論與編程思想你就會(huì)有撥云見(jiàn)日之感。面向?qū)ο蟮乃枷朐谀壳皝?lái)講是相當(dāng)關(guān)鍵的,是強(qiáng)勢(shì)技術(shù)之一,在上面需要多投入時(shí)間,給你的回報(bào)也會(huì)讓你驚喜。
2).對(duì)于數(shù)據(jù)庫(kù)來(lái)說(shuō)是獨(dú)立學(xué)習(xí)的,這個(gè)時(shí)機(jī)就由你來(lái)決定吧。
3).編程語(yǔ)言作為學(xué)習(xí)軟件開(kāi)發(fā)的主線,而其余的作為輔線。
4).軟件工程師著重于B、C、E、D;軟件設(shè)計(jì)師著重于B、C、E、D、F;架構(gòu)設(shè)計(jì)師著重于C、F、H。
3.如何學(xué)習(xí)JAVA?
3.1 JAVA學(xué)習(xí)路線
3.1.1 基礎(chǔ)語(yǔ)法及JAVA原理
基礎(chǔ)語(yǔ)法和JAVA原理是地基,地基不牢靠,猶如沙地上建摩天大廈,是相當(dāng)危險(xiǎn)的。學(xué)習(xí)JAVA也是如此,必須要有扎實(shí)的基礎(chǔ),你才能在J2EE、J2ME領(lǐng)域游刃有余。參加SCJP(SUN公司認(rèn)證的JAVA程序員)考試不失為一個(gè)好方法,原因之一是為了對(duì)得起你交的1200大洋考試費(fèi),你會(huì)更努力學(xué)習(xí),原因之二是SCJP考試能夠讓你把基礎(chǔ)打得很牢靠,它要求你跟JDK一樣熟悉JAVA基礎(chǔ)知識(shí);但是你千萬(wàn)不要認(rèn)為考過(guò)了SCJP就有多了不起,就能夠獲得軟件公司的青睞,就能夠獲取高薪,這樣的想法也是很危險(xiǎn)的。獲得“真正”的SCJP只能證明你的基礎(chǔ)還過(guò)得去,但離實(shí)際開(kāi)發(fā)還有很長(zhǎng)的一段路要走。
3.1.2 OO思想的領(lǐng)悟
掌握了基礎(chǔ)語(yǔ)法和JAVA程序運(yùn)行原理后,我們就可以用JAVA語(yǔ)言實(shí)現(xiàn)面向?qū)ο蟮乃枷肓?。面向?qū)ο?,是一種方法學(xué);是獨(dú)立于語(yǔ)言之外的編程思想;是CBD基于組件開(kāi)發(fā)的基礎(chǔ);屬于強(qiáng)勢(shì)技術(shù)之一。當(dāng)以后因工作需要轉(zhuǎn)到別的面向?qū)ο笳Z(yǔ)言的時(shí)候,你會(huì)感到特別的熟悉親切,學(xué)起來(lái)像喝涼水這么簡(jiǎn)單。
使用面向?qū)ο蟮乃枷脒M(jìn)行開(kāi)發(fā)的基本過(guò)程是:
●調(diào)查收集需求。
●建立用例模型。
●從用例模型中識(shí)別分析類(lèi)及類(lèi)與類(lèi)之間的靜態(tài)動(dòng)態(tài)關(guān)系,從而建立分析模型。
●細(xì)化分析模型到設(shè)計(jì)模型。
●用具體的技術(shù)去實(shí)現(xiàn)。
●測(cè)試、部署、總結(jié)。
3.1.3 基本API的學(xué)習(xí)
進(jìn)行軟件開(kāi)發(fā)的時(shí)候,并不是什么功能都需要我們?nèi)?shí)現(xiàn),也就是經(jīng)典名言所說(shuō)的“不需要重新發(fā)明輪子”。我們可以利用現(xiàn)成的類(lèi)、組件、框架來(lái)搭建我們的應(yīng)用,如SUN公司編寫(xiě)好了眾多類(lèi)實(shí)現(xiàn)一些底層功能,以及我們下載過(guò)來(lái)的JAR文件中包含的類(lèi),我們可以調(diào)用類(lèi)中的方法來(lái)完成某些功能或繼承它。
那么究竟應(yīng)該選擇什么方向呢?
我的意見(jiàn)是,不要太過(guò)相信各種培訓(xùn)機(jī)構(gòu)或是搶手文章的說(shuō)法(包括我),當(dāng)你要走向社會(huì)的時(shí)候,就不要再把自己當(dāng)成學(xué)生,不要把自己的將來(lái)交給別人,學(xué)會(huì)運(yùn)用自己的眼睛去觀察,去了解這個(gè)世界吧。
每個(gè)培訓(xùn)機(jī)構(gòu)都會(huì)宣傳自己的好處,并不能說(shuō)明大的趨勢(shì)。一些新聞文章很有可能是槍手寫(xiě)的,不必太過(guò)相信。國(guó)外背景的教師和課程,未必適合你。
那么怎么才能確定自己將來(lái)的方向?如何才能從紛繁復(fù)雜、或真或假的數(shù)據(jù)世界中挖出一條路?
我講一個(gè)通過(guò)招聘網(wǎng)站的觀察方法。
可以到各種招聘的網(wǎng)站上查詢(xún)信息(可以到google上查詢(xún)招聘的網(wǎng)站),例如: http:// 得到別人的回答,要懂得感恩。
第三篇:java程序員的成長(zhǎng)之路
Java目前是最流行的語(yǔ)言之一,是很多公司和程序員喜愛(ài)的一門(mén)程序語(yǔ)言.而且, Java的入門(mén)比C++相對(duì)來(lái)說(shuō)要簡(jiǎn)單一些, 所以有很大一部分程序員都選擇Java作為自己的開(kāi)發(fā)語(yǔ)言.我也是其中之一, 就是因?yàn)橛X(jué)得學(xué)C++太難, 當(dāng)初在學(xué)校學(xué)了將近一個(gè)學(xué)期的C++, 啥進(jìn)步都沒(méi)有, 哈哈, 天資太差, 所以才選擇自學(xué)Java(當(dāng)時(shí)學(xué)校并沒(méi)有開(kāi)設(shè)Java的課程), 才走上了程序開(kāi)發(fā)這條路.Java雖然入門(mén)要容易, 然而要精通它, 要成為專(zhuān)家卻很難.主要原因是Java所涉及的技術(shù)面比較寬, 人的精力總是有限的.有些Java方面的技術(shù)是必須要要掌握的, 鉆研得越深入越好, 比如多線程技術(shù).1.基礎(chǔ)階段
基礎(chǔ)階段, 可能需要經(jīng)歷1-2年吧.這個(gè)時(shí)段, 應(yīng)該多寫(xiě)一些基礎(chǔ)的小程序(自己動(dòng)手寫(xiě)的越多越好).計(jì)算機(jī)是一門(mén)實(shí)踐性很強(qiáng)的學(xué)科, 自己動(dòng)手的東西, 記憶非常深刻, 效果要?jiǎng)龠^(guò)讀好多書(shū).當(dāng)然, 學(xué)Java基礎(chǔ)的時(shí)候, 書(shū)籍的選擇也非常重要, 好的書(shū)籍事半功倍, 能讓你打個(gè)非常好的基礎(chǔ).而差的書(shū)籍, 很容易將你帶入歧途, 多走很多彎路.書(shū)籍不在多, 而在乎讀得精(有些書(shū), 你讀十遍都不為過(guò)).我記得我學(xué)Java的第一本書(shū)是
2.中級(jí)階段
中級(jí)階段, 是一個(gè)更漫長(zhǎng)的時(shí)期, 能否突破此階段, 跟個(gè)人的努力和天資有著很大的關(guān)系.你不得不承認(rèn), 同樣一門(mén)新技術(shù), 有些人一個(gè)月領(lǐng)悟到的東西, 比你一年的都多.這就是天資, 程序員是一個(gè)需要天才的工作.我想, 很多人聽(tīng)說(shuō)李一男吧, 此君就是這樣的人物, 三個(gè)月的時(shí)間就能解決好大一幫人幾年解決不了的問(wèn)題, 給華為某部門(mén)帶來(lái)了很多的收益.哦, 這是題外話了, 與此篇的主題無(wú)關(guān), 只是本人偶爾的感慨而已:).這個(gè)階段, 就需要研究很多專(zhuān)題性的東西了, 比如: IO的實(shí)現(xiàn)原理, 多線程和Java的線程模型, 網(wǎng)絡(luò)編程, swing, RMI, reflect, EJB, JDBC等等很多很多的專(zhuān)題技術(shù), 鉆研得越深越好.為了更好的提高, 研究的更深入, 你需要經(jīng)常到網(wǎng)絡(luò)上搜索資料, 這個(gè)時(shí)候往往一本書(shū)起不來(lái)很大的作用.選一個(gè)JDK版本吧, 目前建議選用1.6, 多多研究它, 尤其是源
代碼(盡量!就是盡自己最大的努力, 雖然研究透是不可能滴).比如
說(shuō): util, collection, io, nio, concurrent等等包.可能有人會(huì)反對(duì)我說(shuō), 不是有API文檔嗎, 為什么還要研究這么多的源代碼? 錯(cuò)了, 有API文檔, 你僅僅只是知道怎么用而已, 而認(rèn)真仔細(xì)的研讀這些大牛的源碼, 你就會(huì)深入更高的一個(gè)階層, 自己的編碼, 設(shè)計(jì)都會(huì)有很大的提高.如果有能力和精力, 我建議你把JDK的每一行代碼都熟悉一遍, 絕對(duì)只有好處, 沒(méi)有壞處!而且你會(huì)有些意外的收獲, 比如, 當(dāng)你仔細(xì)地讀完concurrent包的時(shí)候(不多, 好像總共是86個(gè)類(lèi)吧), 你就會(huì)對(duì)Doug Lea佩服得五體投地.這個(gè)時(shí)候最忌碰到難題就去尋找?guī)椭? 去網(wǎng)上找答案!先把自己的腦袋想破吧, 或者等你的老板拿著砍刀沖過(guò)來(lái)要把你殺了, 再去尋求幫助吧.對(duì)于專(zhuān)題的學(xué)習(xí), 英文原版的閱讀是非常必要的, 看的越多越好, 多上上IBM的developer, SUN的網(wǎng)站吧, 當(dāng)然Javaeye也很不錯(cuò):), 有很多大牛, 呵呵.這個(gè)時(shí)候, 你應(yīng)該建立自己的代碼庫(kù)了, 你應(yīng)該自己去研究很多有意思的東西了.從一個(gè)200多M的文件中尋找一個(gè)字段, 最壞情況(在文件的末尾咯)也只需要1秒左右的時(shí)間, 你知道嗎?這個(gè)階段, 有很多很多類(lèi)似的有趣的東西可以供你去研究, 你需要更多地關(guān)注性能, 規(guī)范性, 多解決一些疑難問(wèn)題.需要學(xué)會(huì)所有的調(diào)試技術(shù), 運(yùn)用各種性能工具, 還有JDK附帶的很多工具, 這些你都要熟練得跟屠夫操刀一樣.也可以看看
3.高級(jí)階段
高級(jí)階段, 我就不敢妄言了.呵呵, 我感覺(jué)自己也是處于中級(jí)階段吧.也是根據(jù)自己的一些經(jīng)驗(yàn), 談?wù)勛约旱睦斫獍?
這個(gè)階段, 需要研究各種框
架, Spring, struts, Junit, Hibernate, iBatis, Jboss, Tomcat, snmp4j等等, 我覺(jué)得這個(gè)時(shí)候, 只要是用Java實(shí)現(xiàn)的經(jīng)典框架, 你都可以去研究.------在此申明一下, 我的意思不是說(shuō)會(huì)用.光會(huì)用其實(shí)是遠(yuǎn)遠(yuǎn)不夠的, 你可以選擇自己喜歡鉆研的框架, 去好好研究一下, 興趣是最好的老師嘛.建議開(kāi)始的時(shí)候, 研究Junit和Struts吧, 小一點(diǎn), 里面都采用了很多的模式, 呵呵, 可以熟悉一下, 盡量想想人家為什么這么做.我建議主要的精力可以花在spring和jboss上, 尤其是jboss,經(jīng)典中的經(jīng)典, 設(shè)計(jì), 性能, 多線程, 資源管理等等, 你從中可以學(xué)到的東西簡(jiǎn)直是太多了.而且它還有一本寫(xiě)得很好的參考書(shū), 叫
程和UML方面的資料, 或者自己主持一個(gè)項(xiàng)目玩玩, 不一定非得出去拉項(xiàng)目賺錢(qián)(能賺錢(qián)當(dāng)然更好), 不管成功或失敗, 都是很寶貴的經(jīng)驗(yàn), 都能提高很多!
第四篇:java程序員
如何迅速成為Java高手[Tomjava原創(chuàng)]
很多網(wǎng)友問(wèn)我學(xué)習(xí)Java有沒(méi)有什么捷徑,我說(shuō)“無(wú)他,唯手熟爾”。但是我卻很愿意將自己學(xué)習(xí)的一些經(jīng)驗(yàn)寫(xiě)出來(lái),以便后來(lái)者少走彎路,幫助別人是最大的快樂(lè)嘛!
要想學(xué)好Java,首先要知道Java的大致分類(lèi)。我們知道,自從Sun推出Java以來(lái),就力圖使之無(wú)所不包,所以Java發(fā)展到現(xiàn)在,按應(yīng)用來(lái)分主要分為三大塊:J2SE,J2ME和J2EE,這也就是Sun ONE(Open Net Environment)體系。J2SE就是Java2的標(biāo)準(zhǔn)版,主要用于桌面應(yīng)用軟件的編程;J2ME主要應(yīng)用于嵌入是系統(tǒng)開(kāi)發(fā),如手機(jī)和PDA的編程;J2EE是Java2的企業(yè)版,主要用于分布式的網(wǎng)絡(luò)程序的開(kāi)發(fā),如電子商務(wù)網(wǎng)站和ERP系統(tǒng)。J2SE開(kāi)發(fā)桌面應(yīng)用軟件比起VC,VB,DEPHI這些傳統(tǒng)開(kāi)發(fā)語(yǔ)言來(lái)說(shuō),優(yōu)勢(shì)好象并不明顯。J2ME對(duì)于初學(xué)者來(lái)說(shuō),好象又有點(diǎn)深?yuàn)W,而且一般開(kāi)發(fā)者很難有開(kāi)發(fā)環(huán)境。所以現(xiàn)在應(yīng)用最廣泛又最好學(xué)的就是J2EE了。J2EE又包括許多組件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要學(xué)習(xí)起來(lái)可不是一兩天的事。
那么又該如何學(xué)習(xí)J2EE呢?當(dāng)然Java語(yǔ)法得先看一看的,I/O包,Util包,Lang包你都熟悉了嗎?然后再?gòu)腏SP學(xué)起。如果你學(xué)過(guò)HTML,那么事情要好辦的多,如果沒(méi)有,那你快去補(bǔ)一補(bǔ)HTML基礎(chǔ)吧。其實(shí)JSP中的Java語(yǔ)法也不多,它更象一個(gè)腳本語(yǔ)言,有點(diǎn)象ASP。然后你就該學(xué)一學(xué)Servlet了。Servlet就是服務(wù)器端小程序,他負(fù)責(zé)生成發(fā)送給客戶(hù)端的HTML文件。JSP在執(zhí)行時(shí),也是先轉(zhuǎn)換成Servlet再運(yùn)行的。雖說(shuō)JSP理論上可以完全取代Servlet,這也是SUN推出JSP的本意,可是Servlet用來(lái)控制流程跳轉(zhuǎn)還是挺方便的,也令程序更清晰。接下來(lái)你應(yīng)該學(xué)習(xí)一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代碼的混亂方式了,這種方式跟ASP又有什么區(qū)別呢?還好,SUN提供了Javabean可以把你的JSP中的Java代碼封裝起來(lái),便于調(diào)用也便于重用。接著就是EJB了,EJB就是Enterprise JavaBean,看名字好象它是Javabean,可是它和Javabean還是有區(qū)別的。它是一個(gè)體系結(jié)構(gòu),你可以搭建更安全、更穩(wěn)定的企業(yè)應(yīng)用。它的大量代碼已由中間件(也就是我們常聽(tīng)到的Weblogic,Websphere這些J2EE服務(wù)器)完成了,所以我們要做的程序代碼量很少,大部分工作都在設(shè)計(jì)和配置中間件上。至于JDBC,就不用我多說(shuō)了,你如果用java編過(guò)存取數(shù)據(jù)庫(kù)的程序,就應(yīng)該很熟悉。還有,如果你要用Java編發(fā)送電子郵件的程序,你就得看看Javamail了。
好了,對(duì)Java和J2EE有了一些基本概念之后,你就應(yīng)該編一些程序了,千萬(wàn)不要紙上談兵哦。最好找一些有實(shí)例且?guī)Ч獗P(pán)的書(shū)來(lái)看,這樣看到好的程序就可以直接Ctrl+C再Ctrl+V,也不用勞您老大架再親自把它再輸一遍吧,再說(shuō)直接復(fù)制還不用怕出錯(cuò),何樂(lè)而不為呢!還有就是要經(jīng)常上一些好的Java編程文章,有好的文章要Cut下來(lái),有問(wèn)題盡管問(wèn),只要問(wèn)題不是太傻,一般高手都會(huì)回答你的。下面介紹幾個(gè)好的Java方面的編程網(wǎng)站:
CSDN論壇 http:///那里Java資料比較全;
java.com.cnhttp://.cn/看這域名就知道有多牛,注冊(cè)用戶(hù)快接近一萬(wàn)了,同時(shí)在線人數(shù)也在一千左右,人氣很旺的;
IBM的開(kāi)發(fā)者網(wǎng)絡(luò)http://IBM永遠(yuǎn)的藍(lán)色巨人;
那么我書(shū)也看了,程序也做了,別人問(wèn)我的問(wèn)題我都能解決了,是不是就成為高手了呢?當(dāng)然沒(méi)那么簡(jiǎn)單,這只是萬(wàn)里長(zhǎng)征走完了第一步。不信?那你出去接一個(gè)項(xiàng)目,你知道怎么下手嗎,你知道怎么設(shè)計(jì)嗎,你知道怎么組織人員進(jìn)行開(kāi)發(fā)嗎?你現(xiàn)在腦子里除了一些散亂的代碼之外,可能再?zèng)]有別的東西了吧!你現(xiàn)在最缺的是實(shí)際的工作經(jīng)驗(yàn),而不是書(shū)本上那些
憑空想出來(lái)的程序。所以你快去找一份Java的編程工作來(lái)做吧(如果是在校學(xué)生可以去做兼職?。?,在實(shí)踐中提高自己,那才是最快的。不過(guò)你得祈禱在公司里碰到一個(gè)高手,而且他還愿意不厭其煩地教你,這樣好象有點(diǎn)難哦!
還有一個(gè)辦法就是讀開(kāi)放源碼的程序了。我們知道開(kāi)放源碼大都出自高手,他們?cè)O(shè)計(jì)合理,考慮周到,再加上有廣大的程序員參與,代碼的價(jià)值自然是字字珠嘰,鏗鏘有力(對(duì)不起,偶最近《金裝四大才子》看多了)。學(xué)Java必讀的兩個(gè)開(kāi)源程序就是Jive和Pet Store.。Jive是國(guó)外一個(gè)非常著名的BBS程序,完全開(kāi)放源碼。論壇的設(shè)計(jì)采用了很多先進(jìn)的技術(shù),如Cache、用戶(hù)認(rèn)證、Filter、XML等,而且論壇完全屏蔽了對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),可以很輕易的在不同數(shù)據(jù)庫(kù)中移植。論壇還有方便的安裝和管理程序,這是我們平時(shí)編程時(shí)容易忽略的一部份(中國(guó)程序員一般只注重編程的技術(shù)含量,卻完全不考慮用戶(hù)的感受,這就是我們與國(guó)外軟件的差距所在)。Jive的資料在很多網(wǎng)站上都有,大家可以找來(lái)研究一下。相信你讀完代碼后,會(huì)有脫胎換骨的感覺(jué)。遺憾的是Jive從2.5以后就不再無(wú)條件的開(kāi)放源代碼,同時(shí)有l(wèi)icence限制。不過(guò)幸好還有中國(guó)一流的Java程序員關(guān)注它,外國(guó)人不開(kāi)源了,中國(guó)人就不能開(kāi)源嗎?這里向大家推薦一個(gè)漢化的Jive版本—J道。Jive(J道版)是由中國(guó)Java界大名鼎鼎的banq在Jive 2.1版本基礎(chǔ)上改編而成, 全中文,增加了一些實(shí)用功能,如貼圖,用戶(hù)頭像和用戶(hù)資料查詢(xún)等,而且有一個(gè)開(kāi)發(fā)團(tuán)隊(duì)在不斷升級(jí)。你可以訪問(wèn)banq的網(wǎng)站http:///去下載,或到同濟(jì)技術(shù)論壇的服務(wù)器上ftp://nro.shtdu.edu.cn去下,安裝上有什么問(wèn)題,可以到論壇上去提問(wèn)。Pet Store.(寵物店)是SUN公司為了演示其J2EE編程規(guī)范而推出的開(kāi)放源碼的程序,應(yīng)該很具有權(quán)威性,想學(xué)J2EE和EJB的朋友不要錯(cuò)過(guò)了。
你一定會(huì)高興地說(shuō),哈哈,原來(lái)成為Java高手就這么簡(jiǎn)單啊!記得Tomjava也曾碰到過(guò)一個(gè)項(xiàng)目經(jīng)理,號(hào)稱(chēng)Java很簡(jiǎn)單,只要三個(gè)月就可以學(xué)會(huì)。其實(shí)說(shuō)這種話的人就如當(dāng)年小日本號(hào)稱(chēng)“三個(gè)月拿下中國(guó)”一樣大言不慚。不是Tomjava潑你冷水,你現(xiàn)在只是學(xué)到了Java的骨架,卻還沒(méi)有學(xué)到Java的精髓。接下來(lái)你得研究設(shè)計(jì)模式了。設(shè)計(jì)模式是高級(jí)程序員真正掌握面向?qū)ο蠛诵乃枷氲谋匦拚n。設(shè)計(jì)模式并不是一種具體“技術(shù)”,它講述的是思想,它不僅僅展示了接口或抽象類(lèi)在實(shí)際案例中的靈活應(yīng)用和智慧,讓你能夠真正掌握接口或抽象類(lèi)的應(yīng)用,從而在原來(lái)的Java語(yǔ)言基礎(chǔ)上躍進(jìn)一步,更重要的是,設(shè)計(jì)模式反復(fù)向你強(qiáng)調(diào)一個(gè)宗旨:要讓你的程序盡可能的可重用。關(guān)于設(shè)計(jì)模式的資料,還是向大家推薦banq的網(wǎng)站http:///,他把GOF的23種模式以通俗易懂的方式詮釋出來(lái),純Java描述,真是經(jīng)典中的經(jīng)典。有時(shí)間再研究一下MVC結(jié)構(gòu)(把Model-View-Control分離開(kāi)的設(shè)計(jì)思想)吧,現(xiàn)在很流行的Structs就是它的一種實(shí)現(xiàn)方式,不過(guò)Structs用起來(lái)實(shí)在是很繁,我們只要學(xué)習(xí)其精髓即可,我們完全可以設(shè)計(jì)自己的MVC結(jié)構(gòu)。然后你再研究一下軟件Refactoring(重整)和極限XP編程,相信你又會(huì)上一個(gè)臺(tái)階。
做完這些,你不如整理一下你的Java代碼,把那些經(jīng)典的程序和常見(jiàn)的應(yīng)用整理出來(lái),再精心打造一番,提高其重用性和可擴(kuò)展性。你再找?guī)讉€(gè)志同道合的朋友成立一個(gè)工作室吧,你可以去承接一些項(xiàng)目做了,一開(kāi)始可能有些困難,可是你有技術(shù)積累,又考慮周全,接下項(xiàng)目來(lái)可以迅速作完,相信大家以后都會(huì)來(lái)找你的,所以Money就嘩啦啦的來(lái)了。。。當(dāng)然你也可以參加一些開(kāi)源項(xiàng)目,一方面可以提高自己,另一方面也是為中國(guó)軟件事業(yè)做貢獻(xiàn)嘛!開(kāi)發(fā)者在互聯(lián)網(wǎng)上用CVS合作開(kāi)發(fā),用QQ,MSN,E-mail討論聯(lián)系,天南海北的程序員分散在各地卻同時(shí)開(kāi)發(fā)同一個(gè)軟件,是不是很有意思呢?
下面介紹兩個(gè)好的開(kāi)源項(xiàng)目網(wǎng)站:
湖北省軟件公共開(kāi)發(fā)平臺(tái)http://gro.clinux.org/
共創(chuàng)聯(lián)盟http://cosoft.org.cn/
哇,好高興哦,我終于成為高手了!非也,非也。古人云:“識(shí)時(shí)務(wù)者為俊杰”。你知道計(jì)算
機(jī)界現(xiàn)在的發(fā)展形勢(shì)嗎?你知道微軟的.NET藍(lán)圖和SUN ONE計(jì)劃之間的明爭(zhēng)暗斗嗎?你知道計(jì)算機(jī)技術(shù)將向何處發(fā)展嗎?其實(shí)從各大計(jì)算機(jī)廠商最近的動(dòng)作,都可以看出來(lái)“Web服務(wù)將是下一代互聯(lián)網(wǎng)應(yīng)用的制高點(diǎn)”,而微軟的.NET藍(lán)圖和SUN ONE計(jì)劃的斗爭(zhēng)焦點(diǎn),也就是Web服務(wù)。Web服務(wù)就是一個(gè)嶄新的分布式計(jì)算模型,它是一系列標(biāo)準(zhǔn)的綜合(XML,SOAP,UDDI,WSDL和WSFL等)。它使得不同語(yǔ)言編寫(xiě)的軟件能夠輕易的集成起來(lái),使網(wǎng)絡(luò)資源和Web站點(diǎn)變成一種服務(wù)而不是混亂的垃圾場(chǎng)。不遠(yuǎn)的將來(lái),我們就可以在家里點(diǎn)擊一下鼠標(biāo),就可以完成出門(mén)旅游的全部準(zhǔn)備工作,包括定飛機(jī)票,定旅游線路,定好房間等。請(qǐng)注意,這所有的一切都是Web站點(diǎn)間自動(dòng)完成的,再也不用象現(xiàn)在一樣,表面上是電子商務(wù),實(shí)際上很多環(huán)節(jié)都是人工操作。也許你會(huì)覺(jué)得這是天方夜談,不過(guò)就近的說(shuō),你也很有可能承接一個(gè)項(xiàng)目,要集成兩個(gè)企業(yè)的ERP系統(tǒng)。很有可能上游企業(yè)的系統(tǒng)是用Dephi編的,而下游企業(yè)的系統(tǒng)是用Java編的。你說(shuō)你是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ù)。太極張三豐里說(shuō),最厲害的招式就是沒(méi)有招式,可能就是這個(gè)道理吧!
因?yàn)閯倓偱d起,所以網(wǎng)上Web服務(wù)的資料不是很多,我還是給大家推薦幾個(gè)網(wǎng)站吧: 中國(guó)UDDI技術(shù)聯(lián)盟http:///developerWorks/cn/xml/index.shtml?csdnIBM可是Web服務(wù)的力推者
嗚?你費(fèi)勁千心萬(wàn)苦,總算成為Java高手了,怎叫人不由喜極而泣呢!是啊,真不容易,真不簡(jiǎn)單,真叫人感動(dòng)啊!那么打個(gè)電話告訴我吧,什么?我的電話號(hào)碼是多少?昏到,你打電話問(wèn)不就知道了嗎,真是的??
第五篇:Java學(xué)習(xí)路線
怎么學(xué)習(xí)Java,這是很多新手經(jīng)常會(huì)問(wèn)我的問(wèn)題,現(xiàn)在我簡(jiǎn)單描述下一個(gè)Java初學(xué)者到就業(yè)要學(xué)到的一些東西:
首先要明白Java體系設(shè)計(jì)到得三個(gè)方面:J2SE,J2EE,J2ME(KJAVA)。J2SE,Java 2 Platform Standard Edition,我們經(jīng)常說(shuō)到的JDK,就主要指的這個(gè),它是三者的基礎(chǔ),屬于桌面級(jí)應(yīng)用開(kāi)發(fā),這部分如果學(xué)得好很容易拓展J2EE和J2ME。J2ME,The Micro Edition of the Java 2 Platform。主要用于嵌入式Java,如手機(jī),PDA等等。J2EE,Java 2 Platform,Enterprise Edition,就是所謂的企業(yè)級(jí)Java,適合企業(yè)的大型應(yīng)用開(kāi)發(fā)。
J2SE:
新手最初學(xué)習(xí)的時(shí)候先要從J2SE開(kāi)始學(xué)起,所包含的內(nèi)容主要分為:面向?qū)ο蟾拍畹睦斫?、Java基本語(yǔ)法的學(xué)習(xí),Java桌面圖形界面應(yīng)用程序的開(kāi)發(fā),掌握常用的Java API等(關(guān)鍵是要學(xué)會(huì)怎樣查閱)。
重點(diǎn):Java基本語(yǔ)法(循環(huán)結(jié)構(gòu),數(shù)據(jù)類(lèi)型,數(shù)組,運(yùn)算符等)、Swing,awt,事件機(jī)制、文件輸入輸出流處理等
難點(diǎn):面向?qū)ο笏枷氲睦斫猓ń涌凇㈩?lèi)等)、線程、socket網(wǎng)絡(luò)編程等
視頻教程推薦:孫鑫的Java基礎(chǔ)視頻教程、張孝祥的Java基礎(chǔ)視頻教程,講的都很細(xì),而且這兩位老師在教學(xué)方面都有很好的經(jīng)驗(yàn)。
J2EE:
在學(xué)習(xí)了J2SE之后,你可以嘗試著慢慢過(guò)渡到J2EE,當(dāng)然,學(xué)習(xí)J2EE海需要很多非JAVA技術(shù)的支撐,比如數(shù)據(jù)庫(kù)技術(shù),網(wǎng)頁(yè)編程技術(shù)等等,待會(huì)我會(huì)詳細(xì)介紹這兩方面的內(nèi)容。J2EE有三個(gè)必學(xué)的框架,如果你說(shuō)你學(xué)了J2EE,但又不會(huì)這三個(gè)框架的話,那會(huì)讓人笑掉大牙,這三個(gè)框架分別是Struts、Spring和Hibernate,雖然這三個(gè)框架應(yīng)用很廣,但不代表這三個(gè)框架就代表了J2EE,J2EE還有很多其他的東西,比如EJB,作為一款重量級(jí)(此重量級(jí)不是指重量級(jí)選手那個(gè)意思,此重量級(jí)非彼重量級(jí))框架,雖然這個(gè)應(yīng)用慢慢的再被其他框架所取代,但EJB3.0的出現(xiàn)也給它帶回一些生機(jī),作為一個(gè)分布式應(yīng)用的框架,也是大家要去學(xué)習(xí)和了解的知識(shí)。
當(dāng)然,剛才說(shuō)到J2EE包含的范圍很廣,即使我把我所了解的所有技術(shù)說(shuō)出來(lái),也并不能代表J2EE,這是一個(gè)很深很廣的學(xué)問(wèn),需要大家以后再工作的時(shí)候慢慢去發(fā)現(xiàn)了。我所了解的還包括:
JDBC:Java數(shù)據(jù)庫(kù)連接對(duì)象,基礎(chǔ)中的基礎(chǔ),Hibernate也只是對(duì)它的封裝而已 JNDI: Java 命名與目錄接口,J2EE重要規(guī)范之一 EJBS: 上面已經(jīng)提到過(guò)了
RMI: 提供遠(yuǎn)程調(diào)用方法的支持,主要用于程序分布式開(kāi)發(fā) JMS: Java消息服務(wù),中間件技術(shù)
JAVA IDL: 提供J2EE平臺(tái)與CORBA交互能力和互聯(lián)能力的技術(shù) JTS: 組件事務(wù)監(jiān)視器 JTA: 事務(wù)劃分的一個(gè)技術(shù) JAVAMAIL: Java中的郵件技術(shù) JAF: Java啟動(dòng)框架,沒(méi)研究過(guò) Log4j,一款日志處理的框架應(yīng)用
Junit:?jiǎn)卧獪y(cè)試的好幫手
freemarker、velocity:兩款不錯(cuò)的模板引擎
與Flash的交互Flex:目前很多的SNS應(yīng)用就是使用到了這個(gè)技術(shù)
Web services:想知道我們論壇天氣預(yù)報(bào)的效果是怎么做的嗎?請(qǐng)關(guān)注這個(gè)技術(shù) SOA:面向服務(wù)架構(gòu),未來(lái)技術(shù)發(fā)展的趨勢(shì)之一 ……
不過(guò)前面介紹到得這些都不是J2EE的基礎(chǔ),是屬于框架應(yīng)用級(jí)別的.要真正把上面說(shuō)到的知識(shí)掌握好,還是的學(xué)習(xí)J2EE最核心的東西:JDBC、JSP、servlet和JavaBean,后面三個(gè)也是學(xué)習(xí)SSH的基礎(chǔ)(StrutsSpringHibernate的簡(jiǎn)稱(chēng)).鑒于J2EE的內(nèi)容太過(guò)復(fù)雜,建議大家最初只學(xué)習(xí): JSP, servlet和JavaBean,等這個(gè)基礎(chǔ)掌握好再把SSH學(xué)習(xí)了,再對(duì)其他J2EE技術(shù)有個(gè)大致的了解就可以出去找工作了。當(dāng)然,找工作的前提除了把Java學(xué)習(xí)好,還會(huì)有一些其他的技術(shù)也是必須要掌握的。數(shù)據(jù)庫(kù)技術(shù):
數(shù)據(jù)庫(kù)幾乎是程序中不可或缺的一部分,在整個(gè)軟件開(kāi)發(fā)中更是占據(jù)了重要作用.數(shù)據(jù)庫(kù)在整個(gè)軟件中扮演的是地基的角色,你要修房子,就要先打好地基,你要做軟件,就要先設(shè)計(jì)好的數(shù)據(jù)庫(kù).目前數(shù)據(jù)庫(kù)幾乎都是關(guān)系型數(shù)據(jù)庫(kù),代表的有: SQL Server,目前最新的好像是2008,我不是很喜歡追趕時(shí)髦,用的還是2005,不過(guò)也很不錯(cuò)了,在此之前還有2000.MySQL,最知名的開(kāi)源數(shù)據(jù)庫(kù)之一,我很喜歡它的小巧耐用,學(xué)過(guò)SQL SERVER數(shù)據(jù)庫(kù)再學(xué)它,無(wú)師自通,易如反掌.ORACLE.甲骨文公司的產(chǎn)品,大型數(shù)據(jù)庫(kù),正版的一般公司買(mǎi)不起.只有看看了,不過(guò)現(xiàn)在Java開(kāi)發(fā)60%都是會(huì)使用到這個(gè)數(shù)據(jù)庫(kù),再加上現(xiàn)在甲骨文已經(jīng)把sun公司收購(gòu)了,JAVA和ORACLE得關(guān)系更加曖昧,各位得多花些時(shí)間在這上面了.除了這些,你還應(yīng)該了解一些桌面應(yīng)用軟件開(kāi)發(fā)用到的數(shù)據(jù)庫(kù),比如說(shuō)sqlite。你在制作安裝程序的時(shí)候可以把這個(gè)數(shù)據(jù)庫(kù)打包進(jìn)你的安裝程序。
網(wǎng)頁(yè)編程基礎(chǔ):
網(wǎng)頁(yè)編程基礎(chǔ)要學(xué)的內(nèi)容也比較多,但主要集中在以下這三個(gè)技術(shù)之上,大家每天看的各種樣式的網(wǎng)頁(yè)都是它們呈現(xiàn)的: HTML:超文本標(biāo)記語(yǔ)言 CSS:層疊樣式表
Javascript:瀏覽器客戶(hù)端腳本語(yǔ)言
現(xiàn)在更是流行各種JavaScript庫(kù),比如:Jquery、ExtJs等,你要是會(huì)其中的某一個(gè)庫(kù)的使用,找工作so easy。
J2ME:
如果你在學(xué)習(xí)了以上技術(shù)還不過(guò)癮,可以再學(xué)習(xí)手機(jī)程序的開(kāi)發(fā),就我個(gè)人看來(lái),開(kāi)發(fā)手機(jī)程序技術(shù)其實(shí)蠻簡(jiǎn)單的,難點(diǎn)在于優(yōu)化,比如怎么讓你寫(xiě)的程序盡量的節(jié)約手機(jī)資源,“代碼誠(chéng)可貴,手機(jī)價(jià)更高“,所以不得不比PC機(jī)多考慮很多成本和實(shí)用性問(wèn)題。J2ME的學(xué)習(xí)的話,切忌不要單純的再模擬器上測(cè)試,一定要找真機(jī)測(cè)試,真機(jī)和模擬器的效果之間差別是很大的。更多手機(jī)開(kāi)發(fā)技術(shù),有興趣的朋友可以和我一起探討。
開(kāi)發(fā)工具:
開(kāi)發(fā)工具的選擇主要還是看大家的習(xí)慣,我個(gè)人比較喜歡使用eclispe,功能很強(qiáng)大,也很好拓展其他的功能。當(dāng)讓初學(xué)你也可以選擇JCreator,或者最好就直接用記事本。等你熟悉了Java代碼之后,就可以使用JBuilder、eclispe或者netbeans這一類(lèi)的工具了。
先說(shuō)到這里先,以后大家一起完善這個(gè)帖子。盡量再給大家整理一些學(xué)習(xí)的資源在這里。也歡迎大家一起整理我文章中提到的一些技術(shù)資源和開(kāi)發(fā)工具。最后,再和大家分享一句話:生命欣欣向榮,唯奮斗不息。也和大家分享一幅Java學(xué)習(xí)路線圖: