第一篇:【免費(fèi)下載】一個(gè)80后Java程序員的成長(zhǎng)道路
來(lái)源于:http://dayang2001911.javaeye.com/blog/
一個(gè)80后Java程序員的道路
寫(xiě)給想了解部分程序員職業(yè)發(fā)展生涯的人看,寫(xiě)給準(zhǔn)備跳槽的程序員們看,寫(xiě)給有過(guò)和我類似經(jīng)歷的同行們看,寫(xiě)給自己看,寫(xiě)給我的女朋友看,寫(xiě)給其他行業(yè)中也想去努力拼搏的人看。
一、我的情況簡(jiǎn)介
我是一名有3年多工作經(jīng)驗(yàn)的程序員,或者說(shuō)是高級(jí)軟件工程師。
本科曾經(jīng)就讀于西安電子科技大學(xué),學(xué)過(guò)數(shù)學(xué)專業(yè),那時(shí)候國(guó)家建立了36所示范性的軟件學(xué)院,我一眼熱就改專業(yè)、轉(zhuǎn)學(xué)院,學(xué)了軟件工程。這個(gè)教育背景寫(xiě)到簡(jiǎn)歷上應(yīng)該還是不錯(cuò)的,不過(guò)我在軟件學(xué)院其實(shí)沒(méi)怎么學(xué)軟件,所以找工作的時(shí)候自己心里都沒(méi)底。
沒(méi)好好學(xué)軟件的原因是那時(shí)候覺(jué)得軟件也不是我喜歡的,又打算考個(gè)經(jīng)濟(jì)學(xué)的研究生,想以后搞企業(yè)。最終研究生也沒(méi)能考上,又要養(yǎng)活自己,所以只好還是以軟件開(kāi)發(fā)為生,在西安一家國(guó)企性質(zhì)的IT公司工作,公司主要給銀行做,公司老總也是原來(lái)銀行的一些小領(lǐng)導(dǎo)。
就這樣,我在這個(gè)公司從畢業(yè)一直干了3年,從一開(kāi)始我沒(méi)什么基礎(chǔ),java都要自己現(xiàn)學(xué)(學(xué)校里是開(kāi)這門(mén)課了的,畢設(shè)也用java做的),到三年之后我跳槽離開(kāi),可以說(shuō)積累了一些開(kāi)發(fā)經(jīng)驗(yàn)。從工資級(jí)別上看,離開(kāi)時(shí)也是高級(jí)軟件工程師里的最高級(jí)了。
套用一句郭德綱的經(jīng)典臺(tái)詞:“我很欣慰”。
三年里做過(guò)5,6個(gè)項(xiàng)目,還有1,2個(gè)自己做的小項(xiàng)目,從一開(kāi)始的簡(jiǎn)單的修改一些變量、常量,用ireport一點(diǎn)一點(diǎn)畫(huà)一些表格,到用cognos開(kāi)發(fā)報(bào)表,做一些BI項(xiàng)目的前端展示,到獨(dú)立開(kāi)發(fā)模塊,再到最后和我的小師父一塊研究jbpm開(kāi)發(fā)工作流的業(yè)務(wù)項(xiàng)目。順便提一下我的小師父,也是我的同事,只因?yàn)樗任疫€小,但技術(shù)上很牛,又帶過(guò)我,所以簡(jiǎn)稱小師父了。
回想三年,雖沒(méi)有像很多更牛、更成功的程序員們的經(jīng)歷輝煌,但從我自己來(lái)看,我真的“很欣慰”。
因?yàn)?,我知道,我一點(diǎn)一點(diǎn)磨到這一步中間的代價(jià)是什么,是我多少個(gè)夜晚沒(méi)睡好覺(jué),去一點(diǎn)一點(diǎn)摳代碼該怎么寫(xiě)換來(lái)的。三年了,我真真正正睡過(guò)幾個(gè)舒心的覺(jué)呢?
但我又覺(jué)得我可能不適合這個(gè)行業(yè),我沒(méi)有Robbin或者我的小師父那么牛的技術(shù)。別人我不知道,單從我小師父干活時(shí)表現(xiàn)出的那種素質(zhì),技術(shù),我就總覺(jué)得我真是太菜了,而且我還耗費(fèi)那么多時(shí)間不睡覺(jué)去一點(diǎn)一點(diǎn)學(xué),還花銀子去買各種技術(shù)書(shū)籍,這些我小師父是很少去做的。我發(fā)現(xiàn)我們的“投入產(chǎn)出比”實(shí)在過(guò)于懸殊。
回過(guò)頭想一下,我覺(jué)著我當(dāng)時(shí)選擇轉(zhuǎn)到軟件工程專業(yè)也挺合適我的,因?yàn)槲以仁菍W(xué)的數(shù)學(xué),是理科,轉(zhuǎn)到軟件工程,算是工科,從理科轉(zhuǎn)到工科這才是我轉(zhuǎn)專業(yè)的本質(zhì),我認(rèn)為雖然我在開(kāi)發(fā)上技術(shù)還不夠精湛,但是我要是在理科可能混的更慘。我喜歡工科,我喜歡可以時(shí)不時(shí)的出些小成果的工作。
所以說(shuō),做到現(xiàn)在我也喜歡上了這個(gè)工作,這個(gè)行當(dāng),而且我希望自己技藝能更精湛,或者說(shuō)編碼能更快點(diǎn)、質(zhì)量能更高點(diǎn),并且我慶幸我在第一份工作經(jīng)歷中能遇到技術(shù)高手,又能親自帶我、教我,更慶幸的是我通過(guò)第一份工作經(jīng)歷使我對(duì)軟件開(kāi)發(fā)有了更多的興趣,讓我對(duì)自己的定位不模糊。雖然我現(xiàn)在不如這些技術(shù)牛人,但是我會(huì)堅(jiān)持,借用一句名言“I came,I saw,I conquer”。我相信有那么一天,我會(huì)做的很好,我不會(huì)擔(dān)心自己在工作時(shí)間里憋不出那幾行代碼,我不會(huì)為了消除這種擔(dān)心而用寶貴的睡眠時(shí)間去提前開(kāi)始思考、編碼,我不會(huì)不敢給項(xiàng)目經(jīng)理報(bào)我的進(jìn)度。
我以為經(jīng)過(guò)這三年的經(jīng)歷我能得到很多很多的回報(bào),但是當(dāng)我從這個(gè)公司辭職后去找第二家公司的時(shí)候,我發(fā)現(xiàn)我能得到的回報(bào)是IT界的一種普遍回報(bào)的平均數(shù)。
二、第一次跳槽
從西安那家公司離職后,我來(lái)到北京,開(kāi)始我的第一次跳槽經(jīng)歷,三個(gè)月找工作的經(jīng)歷,讓我知道了我到底值多少錢(qián),更讓我知道了什么是競(jìng)爭(zhēng)的殘酷性、理智性。
其實(shí)我找到第一份工作的過(guò)程很簡(jiǎn)單,由于原來(lái)部門(mén)的經(jīng)理是我的校友,可能出于對(duì)學(xué)校的一種回報(bào),答應(yīng)給軟件學(xué)院一些招聘名額,當(dāng)時(shí)什么都不會(huì)的我就去試了試,又正巧面試我的副經(jīng)理出差,就由經(jīng)理問(wèn)了問(wèn)一些筆試中的問(wèn)題,和一些Java方面的問(wèn)題,我記得答的不怎么樣,不過(guò)可能也沒(méi)完全答錯(cuò),也就過(guò)關(guān)了。后來(lái)想想,經(jīng)理主要是做C的開(kāi)發(fā),那個(gè)副經(jīng)理才是Java出身,如果真讓副經(jīng)理面了,恐怕結(jié)果也不會(huì)這么順利。
也就是說(shuō),我第一份工作得來(lái)的還是很容易的,沒(méi)有經(jīng)過(guò)那么多次的選擇。
也許正是第一份工作得來(lái)的相對(duì)容易,第二次找工作的經(jīng)歷就被上帝公平地安排一下,參加應(yīng)聘的次數(shù)變多了,找工作的時(shí)間也延長(zhǎng)了,用了3個(gè)月才定了下來(lái)。
人未到北京,網(wǎng)上的簡(jiǎn)歷已經(jīng)投了很多,到了北京沒(méi)幾天就有招聘的電話打來(lái)。
三、人力外派的招聘
1.人力外派公司的職位
是一家做人力外派的公司給我打來(lái)的電話。由于我有銀行業(yè)軟件開(kāi)發(fā)的背景,而他們也正有某國(guó)有銀行的項(xiàng)目需要,所以給我打了電話。到北京之前我就想,不能定的太快,要多比較一下,賣個(gè)好價(jià)錢(qián)。出于比較的心理,我答應(yīng)到公司去面試。
公司就在上地那個(gè)有著亞洲第一廳堂的大廈里,來(lái)之前由于住的地方不能上網(wǎng),也沒(méi)好好查這個(gè)公司的基本情況,并不知道是做人力派遣的,到了之后,公司的總監(jiān)很哥們似的把我拉到角落,給我介紹大致的情況。
“公司目前有兩個(gè)職位,一個(gè)是給某銀行做報(bào)表方面的項(xiàng)目,算是高級(jí)軟工,另一個(gè)是給國(guó)家某總局做項(xiàng)目,并且是跟另一家公司合作,算是系統(tǒng)分析師級(jí)別”。一聽(tīng)這個(gè)情況,我首先反應(yīng),希望能更上一層樓,做做系統(tǒng)分析師,所以就說(shuō)想做后者。再說(shuō)到待遇,銀行那個(gè)項(xiàng)目給到稅前6K,某總局的那個(gè)項(xiàng)目可以給到7K。
2.期望待遇與實(shí)際待遇有差距
我以為憑在西安工作了三年,而且又被原單位非常認(rèn)可的程度(包括獲得優(yōu)秀員工的獎(jiǎng)勵(lì),工資級(jí)別是高級(jí)軟工的最高級(jí)這兩點(diǎn)),我認(rèn)為我在北京應(yīng)該得到至少至少7K的水平。而這個(gè)系統(tǒng)分析師的職位也才給到7K,使我相當(dāng)不爽。但是我也知道,不爭(zhēng)取是得不到好東西的,我就給那總監(jiān)說(shuō),我的理想待遇是8K,總監(jiān)說(shuō)不太可能。
雖然價(jià)錢(qián)沒(méi)談攏,但是我還是想試試自己的面試能力,就同意和合作公司的技術(shù)方面的負(fù)責(zé)人去面試。
我原本以為就自己去面試,中途又加了一個(gè),聽(tīng)總監(jiān)說(shuō)有近10年的工作經(jīng)驗(yàn)了,能力相當(dāng)強(qiáng),我是一個(gè)尊重經(jīng)驗(yàn)的人,因此對(duì)這位大哥也是抱著十分尊崇的心情的。
我、10年經(jīng)驗(yàn)的大哥以及外派公司的總監(jiān),我們?nèi)司偷搅四晨偩值捻?xiàng)目開(kāi)發(fā)現(xiàn)場(chǎng),與合作公司的技術(shù)負(fù)責(zé)人見(jiàn)面。
3.第一次跳槽之第一次面試
來(lái)之前,我大致準(zhǔn)備了一下,主要是想了想該怎么介紹自己的項(xiàng)目經(jīng)歷什么的。由于我最后一個(gè)項(xiàng)目的經(jīng)歷算是集大成之作,而且也因這個(gè)項(xiàng)目得到了“優(yōu)秀員工”的榮譽(yù),所以我著重準(zhǔn)備了最后一個(gè)項(xiàng)目,有關(guān)工作流的項(xiàng)目。
面試主要也是問(wèn)經(jīng)歷。合作公司的負(fù)責(zé)人拿著我的簡(jiǎn)歷看,我給他在來(lái)個(gè)同期聲,把我的經(jīng)歷介紹一下,其實(shí)這個(gè)介紹和簡(jiǎn)歷上的也差不多。
我介紹自己:在某某年幾月到某某年幾月,我參與某信托投資公司的綜合業(yè)務(wù)系統(tǒng)的開(kāi)發(fā),主要利用了
JBPM
工作流引擎實(shí)現(xiàn)該系統(tǒng)的流程部分。我的主要職責(zé)是對(duì)JBPM進(jìn)行了技術(shù)攻關(guān)、分配一些模塊、開(kāi)發(fā)公用接口等工作。
負(fù)責(zé)人問(wèn)了我如何對(duì)JBPM進(jìn)行的技術(shù)攻關(guān)的問(wèn)題。其實(shí)當(dāng)時(shí)有我小師父在,他基本已經(jīng)弄清了JBPM的使用了,因此我的主要任務(wù)是把這個(gè)工作流引擎運(yùn)用在項(xiàng)目中,比如做出一個(gè)實(shí)際的例子,但是也有一部分對(duì)JBPM學(xué)習(xí)的任務(wù)。我就大致說(shuō)了一下對(duì)JBPM技術(shù)攻關(guān)的過(guò)程,比如看了JBPM提供的例子、技術(shù)文檔,而且我們部門(mén)還邀請(qǐng)了上海一家公司給我們做了幾次咨詢、培訓(xùn),把他們運(yùn)用JBPM的項(xiàng)目拿出來(lái)給我們進(jìn)行了講解。為了體現(xiàn)出我的價(jià)值,我著重強(qiáng)調(diào)了自己在這個(gè)項(xiàng)目中封裝了一些流程的接口,用于給項(xiàng)目組成員使用,使他們不必對(duì)JBPM更深入了解,降低了開(kāi)發(fā)難度。
之后,負(fù)責(zé)人又問(wèn)了問(wèn)以前我做過(guò)的項(xiàng)目,也沒(méi)什么太特別的問(wèn)題,這里就不再贅述了。
輪到10年經(jīng)驗(yàn)大哥面試了,這位老兄瘦瘦的,戴副眼鏡,歪歪一坐,一副誰(shuí)也不吊的樣子。負(fù)責(zé)人也像問(wèn)我似的,讓他自己說(shuō)說(shuō)自己的經(jīng)歷,我一聽(tīng)我都快坐不住了。這位老兄經(jīng)驗(yàn)豐富,而且聽(tīng)他說(shuō)自己非常喜歡玩各種新技術(shù),很喜歡自己鼓弄,由于這個(gè)項(xiàng)目中可能用到有關(guān)搜索方面的東西,他也說(shuō)自己也用過(guò)搜索引擎lucense,其實(shí)這個(gè)我也見(jiàn)過(guò),可惜從沒(méi)碰過(guò),當(dāng)時(shí)很后悔,至少也應(yīng)該了解了解啊,這樣至少有的說(shuō)嘛。
負(fù)責(zé)人又問(wèn)了他有沒(méi)有做過(guò)項(xiàng)目經(jīng)理,他說(shuō)也做過(guò),不過(guò)還是喜歡做技術(shù),所以也沒(méi)做多久。給我的感覺(jué)就是,技術(shù)很牛,很有經(jīng)驗(yàn)!
我真是都不想再待在那個(gè)面試的房間里了,明擺著我就是一個(gè)陪襯。不過(guò),我還是想,既來(lái)之則安之,面就面到最后。
合作公司的技術(shù)負(fù)責(zé)人面試完畢了,合作公司的項(xiàng)目經(jīng)理也過(guò)來(lái)面試我們。項(xiàng)目經(jīng)理問(wèn)了我們一些個(gè)問(wèn)題,我記得的一個(gè)問(wèn)題是讓我說(shuō)說(shuō)我的優(yōu)缺點(diǎn)。
4.我的缺點(diǎn)
其實(shí)在離開(kāi)上一家公司之前,技術(shù)總監(jiān)曾經(jīng)找我最后談話,了解我離職后的打算以及對(duì)項(xiàng)目后期的建議,談完后,我特意問(wèn)了技術(shù)總監(jiān)一個(gè)問(wèn)題,我問(wèn)他認(rèn)為我的缺點(diǎn)有哪些,我希望通過(guò)領(lǐng)導(dǎo)的眼睛看到我不能看到的問(wèn)題。
由于我們?cè)鹊墓疽?guī)模不大,軟件開(kāi)發(fā)部總共也就100人左右,而且我當(dāng)時(shí)所在的信托項(xiàng)目由于問(wèn)題很多,技術(shù)總監(jiān)直接進(jìn)入我們項(xiàng)目組,指導(dǎo)我們的設(shè)計(jì),并對(duì)我們實(shí)現(xiàn)的功能進(jìn)行把關(guān),最緊張的時(shí)候項(xiàng)目組全體成員
14,5個(gè)人封閉開(kāi)發(fā),這也包括技術(shù)總監(jiān),因此技術(shù)總監(jiān)對(duì)我們項(xiàng)目組每個(gè)人的情況都非常了解。
在我眼中,技術(shù)總監(jiān)是一個(gè)很聰明,看問(wèn)題能看到本質(zhì)的人,因此我信他說(shuō)的。
作為領(lǐng)導(dǎo),作為有著豐富職場(chǎng)經(jīng)驗(yàn)的老手,他首先評(píng)價(jià)我有很多不錯(cuò)的地方,比如我能夠從大局看待項(xiàng)目,這主要是指當(dāng)時(shí)我們項(xiàng)目極度缺乏詳細(xì)設(shè)計(jì)文檔,而缺乏設(shè)計(jì)文檔在開(kāi)發(fā)初期給項(xiàng)目組造成了很多開(kāi)發(fā)上的困難,開(kāi)發(fā)人員不能又開(kāi)發(fā),又琢磨要實(shí)現(xiàn)什么。我把這個(gè)問(wèn)題反饋給了技術(shù)總監(jiān),并且詳細(xì)的列出了需要哪些功能的詳細(xì)設(shè)計(jì)文檔。
負(fù)責(zé)寫(xiě)詳設(shè)的是我另一位師傅,這位同事在我進(jìn)入第一個(gè)項(xiàng)目組的時(shí)候給了我很大幫助,這次我沒(méi)有給我這位師傅留太多面子,直接把問(wèn)題反應(yīng)給了技術(shù)總監(jiān),估計(jì)也造成了我和這位師傅之間的一些隔閡。
接著技術(shù)總監(jiān)看我對(duì)自己缺點(diǎn)的問(wèn)題還是比較認(rèn)真的,就繼續(xù)說(shuō)了下去。他說(shuō)其實(shí)我在項(xiàng)目中也暴露出一些問(wèn)題,可能也不算是缺點(diǎn)等等的,可見(jiàn)技術(shù)總監(jiān)的說(shuō)話還是滴水不漏的,一點(diǎn)也不會(huì)把事情搞得讓我很難堪。
他認(rèn)為我在項(xiàng)目緊張開(kāi)發(fā)的那段時(shí)間里沒(méi)能安排好自己的工作,當(dāng)時(shí)分配給了我?guī)醉?xiàng)工作,包括開(kāi)發(fā)公用模塊、給其他開(kāi)發(fā)人員分配任務(wù)以及開(kāi)發(fā)一些自己的模塊等等,在這些工作開(kāi)展的時(shí)候,我沒(méi)能把精力集中在對(duì)流程核心接口的開(kāi)發(fā)中,有些任務(wù)可以分給其他人來(lái)做的沒(méi)有分配,導(dǎo)致代碼質(zhì)量不是很高、效率底下等情況。技術(shù)總監(jiān)也說(shuō),這也有他們分配任務(wù)沒(méi)考慮過(guò)細(xì)的原因等等。
我在聽(tīng)完他說(shuō)我的這個(gè)缺點(diǎn)之后,我的心里其實(shí)沒(méi)有太服氣,但也說(shuō)不出到底是什么不服,可能有這樣一個(gè)想法,為什么你們當(dāng)時(shí)不給我指正呢?為什么項(xiàng)目經(jīng)理有那么多問(wèn)題,技術(shù)總監(jiān)都給他及時(shí)的批評(píng)指正,而我卻得不到領(lǐng)導(dǎo)的這種指導(dǎo)呢?我不服氣的是,我認(rèn)為技術(shù)總監(jiān)偏袒項(xiàng)目經(jīng)理,說(shuō)難聽(tīng)點(diǎn)就是有幫派習(xí)氣。
雖然我對(duì)技術(shù)總監(jiān)有不滿的情緒,但是對(duì)他做事的風(fēng)格,實(shí)事求是分析問(wèn)題的方法還是非常佩服,所以對(duì)技術(shù)總監(jiān)說(shuō)的我的缺點(diǎn)很留心,離職后,我立馬琢磨他所說(shuō)的意思。
后來(lái)我在吸收了技術(shù)總監(jiān)意見(jiàn)的基礎(chǔ)上,總結(jié)出了我的缺點(diǎn)就是,有時(shí)候不能安排好自己工作的優(yōu)先級(jí)。針對(duì)這樣的問(wèn)題,我自己想了想解決方法,應(yīng)該先把公用的東西優(yōu)先做出來(lái),涉及到別人的東西也要先做,可以分配給別人做的應(yīng)該分出去,自己只做精力允許的、最重要的那部分。
我到現(xiàn)在都對(duì)我當(dāng)時(shí)向技術(shù)總監(jiān)征求個(gè)人缺點(diǎn)的看法很得意,技術(shù)總監(jiān)看問(wèn)題就是不一樣,如果讓我自己總結(jié)自己的缺點(diǎn),怎么也不可能想到自己在安排自己的工作上出問(wèn)題。而且經(jīng)過(guò)提煉,我還可以把自己的缺點(diǎn)放到面試中去說(shuō)。
5.出人意料的結(jié)果
我把自己的缺點(diǎn)講給合作公司的項(xiàng)目經(jīng)理,面試又進(jìn)行了一會(huì)就結(jié)束了,人力公司的總監(jiān)和合作公司的負(fù)責(zé)人出去商量最終結(jié)果。
在這空當(dāng),我主動(dòng)找10年經(jīng)驗(yàn)大哥聊了聊,我表達(dá)了我對(duì)他技術(shù)上、經(jīng)驗(yàn)上的欽佩,而且希望以后能交流交流的意愿,我向他要了手機(jī)號(hào)碼。沒(méi)想到這位老兄說(shuō)“你要我電話干嘛,沒(méi)必要給你電話”,讓我很詫異,我心說(shuō)了,還有這么刺頭的人,他又說(shuō)“最近裝修搞得他頭都暈了,別再給我打電話了“之類的,簡(jiǎn)直讓我覺(jué)得很尷尬,一下子對(duì)他的敬意全無(wú)。
人力公司總監(jiān)回來(lái)了,結(jié)果很明顯。他用車把我倆往回送,對(duì)那老兄說(shuō)了一些什么,那老兄到了就下了,就剩總監(jiān)和我了,他問(wèn)我說(shuō)“你猜錄取誰(shuí)了?”,我很平靜的告訴他,肯定是那位有著10年工作經(jīng)驗(yàn)的大哥無(wú)疑了。
但是,結(jié)果出乎我的意料,總監(jiān)說(shuō)錄取我了。
我很意外,總監(jiān)跟我解釋道,主要看中我的團(tuán)隊(duì)意識(shí),雖然那位老兄有10年經(jīng)驗(yàn),但是不易合作,即使技術(shù)強(qiáng)也不合適,因此決定要我。
聽(tīng)到這個(gè)結(jié)果,自己還是比較滿意的,畢竟是首戰(zhàn)告捷了,雖然我是不會(huì)選擇去這家人力外派公司的,但是對(duì)自己能夠獲得這個(gè)工作機(jī)會(huì)還是很高興的。
經(jīng)過(guò)第一家公司的面試,雖然是人力外派類的公司的面試,但是由于成功過(guò)關(guān)了,所以自己的信心增強(qiáng)了。
四、兵敗外企
1.T公司
其實(shí)在來(lái)北京之前,自己心里就已經(jīng)有非常向往的公司了,也就是外企T公司。
知道T公司是因?yàn)槲以瓉?lái)的同事強(qiáng)子曾經(jīng)應(yīng)聘過(guò)T的西安分公司,而且這個(gè)公司在軟件行業(yè)內(nèi)的口碑非常好,在IT紅黑榜網(wǎng)站上查這個(gè)公司的評(píng)價(jià),基本都是好評(píng),不像其他公司似的,某某公司拖欠工資、某某公司領(lǐng)導(dǎo)很壞之類的負(fù)面評(píng)價(jià)。這些都與T公司絕緣。
最讓我對(duì)T公司產(chǎn)生興趣的還是他們的開(kāi)發(fā)方式。
2.敏捷開(kāi)發(fā)
T
公司在開(kāi)發(fā)上很有特色,公司采用敏捷開(kāi)發(fā)方式,我理解敏捷開(kāi)發(fā)是一種開(kāi)發(fā)方法論,為了能成為T(mén)公司的員工,我買了本《敏捷開(kāi)發(fā)》的影印版開(kāi)始看。
敏捷開(kāi)發(fā)大致就是說(shuō)以實(shí)際的軟件、代碼作為和客戶交流需求的載體,而不是用文檔,歡迎變化而不是遵循計(jì)劃之類的。
在來(lái)到北京不久,一家專業(yè)的編程方面的雜志社聯(lián)合T公司舉行一年一度的敏捷中國(guó)大會(huì),我到了北京的時(shí)候已經(jīng)錯(cuò)過(guò)了報(bào)名參會(huì)的時(shí)間,不過(guò)好在我跟雜志社聯(lián)系了一下,補(bǔ)上了報(bào)名。
會(huì)議組織得很專業(yè),包括宣傳材料、會(huì)議胸牌、茶歇等都組織的非常好。會(huì)議由許多演講組成,值得一提的是,大會(huì)的主題演講的演講者也是敏捷開(kāi)發(fā)的提出者之一,同時(shí)也是T公司的科學(xué)家。
我參會(huì)的目的很明確,想通過(guò)敏捷開(kāi)發(fā)大會(huì)進(jìn)一步了解敏捷開(kāi)發(fā),另一個(gè)就是想多和T公司的員工們交流一下,取得應(yīng)聘T公司的經(jīng)驗(yàn)。
實(shí)際上,T公司主辦的這個(gè)敏捷開(kāi)發(fā)大會(huì)的目的也是和我的目的類似,也是要宣傳敏捷開(kāi)發(fā)的理念,宣傳T公司,而且提倡參會(huì)人員和T公司的員工自由交流。
演講的很多都是老外,雖然我極力認(rèn)真去聽(tīng)他們講的是什么,但是我英語(yǔ)還沒(méi)達(dá)到能直接聽(tīng)懂他們?cè)谥v什么。
雖然參加了這個(gè)會(huì)的收獲一般,但是由于和T公司能走的更近,所以覺(jué)得也是做應(yīng)聘準(zhǔn)備的一個(gè)重要步驟,我想象在應(yīng)聘的時(shí)候可以給他們說(shuō)我參加了這個(gè)會(huì)議,從一個(gè)側(cè)面也能表明我對(duì)敏捷開(kāi)發(fā)的興趣。3.電話面試
開(kāi)過(guò)這個(gè)敏捷大會(huì)后,我就開(kāi)始著手準(zhǔn)備因?yàn)榭粗?,所以慎重?/p>
我到網(wǎng)上搜關(guān)于
T
公司的面試、筆試了。
T
公司的應(yīng)聘信息,包括筆試、面試的題目等等,結(jié)果不多。倒是碰到一個(gè)做T公司職位的獵頭,就加了MSN,我說(shuō)明了我的情況,這個(gè)女獵頭主要做高端的,也就是5年以上工作經(jīng)驗(yàn)的。我追著問(wèn)她T公司招聘的流程,甚至題目。女獵頭心地很善良,發(fā)給我一份文檔,寫(xiě)了T公司面試的一些情況。
T公司是外企,外企面試一般都是先進(jìn)行一次電話面試,電話面試可以使人力了解應(yīng)聘者的口語(yǔ)水平,電話面試通過(guò)后再真正面試。女獵頭的文檔列出了T公司電話面試的一般問(wèn)題,比如有個(gè)人介紹、曾經(jīng)遇到的一些困難什么的。看上去問(wèn)題都不太難,我用英文把教育經(jīng)歷、三年的工作經(jīng)歷、項(xiàng)目中承擔(dān)的責(zé)任、收獲都寫(xiě)成了稿子,并熟記于心。
投簡(jiǎn)歷后的第2,3天進(jìn)行了電話面試,時(shí)間定的是下午4:00,到了3:50的時(shí)候我還沒(méi)有不一樣的感受,可是當(dāng)時(shí)間到了3:55的時(shí)候,我發(fā)現(xiàn)自己心跳加速了,到了4:00的時(shí)候簡(jiǎn)直不能平靜了。
好在T公司是4:00多給我打來(lái)的電話,我盡力地平息著我的緊張。首先人力要求我做一個(gè)英語(yǔ)的個(gè)人介紹,這個(gè)不難,我已經(jīng)有了稿子,只要照著念就OK了,不過(guò)在念的過(guò)程中我還是有意識(shí)的放慢速度,稍微打些磕巴,免得被看穿。
個(gè)人介紹很快念完了,人力開(kāi)始提問(wèn)了,“what is your challenge in your current job?”,其實(shí)我已經(jīng)聽(tīng)懂了她所問(wèn)的,就是說(shuō)遇到過(guò)什么挑戰(zhàn),但是由于緊張,突然聽(tīng)不懂“current”這個(gè)單詞,問(wèn)題說(shuō)完了我就在不停的回想current到底是什么意思。我估計(jì)因?yàn)槲乙呀?jīng)離職了,當(dāng)前并沒(méi)工作,而她問(wèn)在current
job(當(dāng)前工作)中遇到什么挑戰(zhàn)就導(dǎo)致我有點(diǎn)神智不清了,不過(guò)很快我反應(yīng)了過(guò)來(lái),從稿子中找到遇到的困難那部分,就開(kāi)始往上套。
首先我說(shuō)了個(gè)技術(shù)上的挑戰(zhàn),如何在信托項(xiàng)目中使用JBPM工作流引擎,以及如何把這個(gè)工作流引擎結(jié)合具體業(yè)務(wù)在項(xiàng)目中使用。說(shuō)完,人力繼續(xù)問(wèn)我如何解決的,我就把技術(shù)總監(jiān)給我們指明的要把“業(yè)務(wù)和流程分開(kāi)”的解決思路說(shuō)了。之后人力又繼續(xù)追問(wèn),還有沒(méi)有其他方面的挑戰(zhàn)。我都被問(wèn)得快有點(diǎn)撐不住了,想了想就把自己當(dāng)時(shí)沒(méi)能安排好自己工作優(yōu)先級(jí)的這個(gè)缺點(diǎn)改造了一下,說(shuō)了說(shuō)。但是由于這部分沒(méi)能預(yù)先準(zhǔn)備,邊想邊說(shuō),說(shuō)得特別磕巴,有的詞發(fā)音都沒(méi)發(fā)準(zhǔn)。
說(shuō)到半截,可能人力已經(jīng)知道我的外語(yǔ)水平了,就不要我再用英語(yǔ)折磨她了,讓我可以說(shuō)中文了,我就把沒(méi)能用英語(yǔ)表達(dá)清楚的地方用中文重新說(shuō)了一下。
時(shí)間已經(jīng)過(guò)去了15分鐘,最后人力讓我提問(wèn),為了給人力留下深刻印象,我問(wèn)了5,6個(gè)問(wèn)題,有關(guān)于敏捷開(kāi)發(fā)在T公司的開(kāi)發(fā)效果的,有對(duì)敏捷開(kāi)發(fā)能否在大型項(xiàng)目中應(yīng)用的,有關(guān)于T公司是否做國(guó)內(nèi)項(xiàng)目的,反正我盡可能的想了很多問(wèn)題,體現(xiàn)自己對(duì)他們公司的興趣。
這個(gè)電話面試時(shí)間總共有20分鐘,完后我的感覺(jué)并不太差,不過(guò)我也明確地知道了我的英語(yǔ)口語(yǔ)水平實(shí)在不怎么樣,但是,我總以為上天會(huì)照顧我,至少讓我能過(guò)了電話面試這第一關(guān),哪怕讓我進(jìn)入下一關(guān)再出局。
4.晴天霹靂
想到這里,我心情還不錯(cuò)地和女朋友一塊去逛超市買東西,從超市高高興興買了東西回來(lái)后,我習(xí)慣性的看了一下郵箱,發(fā)現(xiàn)了T公司的一封信。信的內(nèi)容讓我失落到谷底:
“After careful consideration, we are unable to match your skills and background with any of our current open positions.”
晴天霹靂!而且原以為要幾天才會(huì)有結(jié)果,一看郵件到達(dá)的時(shí)間就是我電話面試后的15分鐘后,我覺(jué)著他們太輕率了!但也只能接受這個(gè)結(jié)果。
我反復(fù)琢磨著“技能和背景與現(xiàn)有職位不匹配”一句的含義,最終,我理解為一方面,我原先的工作單位規(guī)模不大,另一方面,我原先的開(kāi)發(fā)方式也和他們的不同,我雖然看了敏捷開(kāi)發(fā)的書(shū),但是從沒(méi)實(shí)踐過(guò),更別說(shuō)口語(yǔ)水平了,真是徹底失敗。
那一晚我想丟了魂似的,可不么,理想實(shí)現(xiàn)不了,真是很痛苦。不過(guò),我總歸還得繼續(xù)找工作,這家最理想的不行那就換點(diǎn)別的吧,退而求其次,還是希望能進(jìn)入到外企工作,不但拿錢(qián)多,而且學(xué)到的東西也多。
從網(wǎng)上看到有路X社北京研發(fā)中心的招聘啟事,我給他們也投了,沒(méi)多久,來(lái)了個(gè)電話面試,讓我說(shuō)了說(shuō)經(jīng)歷,用中文問(wèn)了些諸如HashMap和HashTable的區(qū)別之類的問(wèn)題,過(guò)后也沒(méi)有了音信。
后來(lái),通過(guò)獵頭我還接到了
S公司的電話面試,S公司是發(fā)明了J語(yǔ)言的公司,電話面試的內(nèi)容也大同小異,我用我磕磕巴巴的英語(yǔ)應(yīng)付了這些電話面試。
再后來(lái),通過(guò)其他獵頭還給一家韓國(guó)公司投了簡(jiǎn)歷,囧的是,連獵頭這關(guān)都沒(méi)過(guò)。
5.認(rèn)識(shí)自我
這幾家外企的應(yīng)聘,我基本都在電話面試就結(jié)束了自己前進(jìn)的步伐,幾次失敗讓我非常現(xiàn)實(shí)地認(rèn)識(shí)了我當(dāng)前的水平、經(jīng)驗(yàn)、技能、背景這幾個(gè)方面,與外企要求的條件相比差距還是相當(dāng)大的。口語(yǔ)不過(guò)關(guān),工作過(guò)的單位也不是規(guī)模大的公司,做過(guò)的項(xiàng)目也不是非常大,這些都導(dǎo)致了我和我最向往的公司以及那些高薪的外企的遠(yuǎn)離。
清楚了自己的水平,自己也認(rèn)為目前應(yīng)聘外企是不適合的。而現(xiàn)在,我要做的是改變求職的方向,不能把重心都放在外企上,所以最終我決定以應(yīng)聘國(guó)內(nèi)的大型公司為主。這么做是希望自己可以從大公司中學(xué)到小公司所欠缺的更加規(guī)范化的東西。
五、轉(zhuǎn)變方向有代價(jià)
1.做ERP的大公司K 繼續(xù)在人才網(wǎng)上搜索大公司,聯(lián)系到了一家,是在ERP領(lǐng)域做得很大的K公司。K公司的筆試,試題分了幾類,量很大,題目應(yīng)該說(shuō)不算難,包括JAVA的一些基礎(chǔ)知識(shí)、寫(xiě)SQL查詢語(yǔ)句等等。還有要寫(xiě)一個(gè)單例類的題,我沒(méi)想起來(lái)怎么定義的,忙發(fā)短信找同事求援,幸虧小師父找了一個(gè),讓我少丟10分。
上午筆試,下午面試。面試時(shí)間比較長(zhǎng),首先面試官先介紹了一下K公司,K公司是做ERP產(chǎn)品的大型公司云云。我還是介紹我做過(guò)的項(xiàng)目,尤其是對(duì)工作流技術(shù)的研究以及在項(xiàng)目中的運(yùn)用這方面著重多講,并引起和面試官的一些討論。氣氛還比較融洽,席間我投瞄到我上午的筆試卷子,好像是60多分。面試到了最后,面試官認(rèn)為我所講的經(jīng)歷都是項(xiàng)目經(jīng)歷,而K公司是以做產(chǎn)品為主,這其實(shí)是一個(gè)差別。
面試過(guò)后,回去等待結(jié)果,過(guò)了幾日,K公司人力約我和北方區(qū)的總經(jīng)理見(jiàn)面,我也如約而至,其實(shí)主要是總經(jīng)理再和我聊聊期望薪水,再了解一下我過(guò)去的經(jīng)歷。關(guān)于期望薪水,我給K公司報(bào)的是9K,但是我也說(shuō)可以考慮減少到8K,其實(shí)我心里算計(jì)的怎么也應(yīng)該比7K要多。
K公司規(guī)模很大,招聘流程也很長(zhǎng),北京公司這邊負(fù)責(zé)筆試面試等工作,最后還要把我的資料送到總公司那邊,總公司再進(jìn)行一下最后把關(guān),我也被告知我需要等待1周左右的時(shí)間來(lái)等結(jié)果。
在這一周里,正好又有家做咨詢、技術(shù)解決方案的公司找到我。
2.掙開(kāi)源的錢(qián)
姑且給這家公司起名叫P公司好了,公司的發(fā)展方向比較獨(dú)特,利用開(kāi)源軟件給做軟件開(kāi)發(fā)的公司提供咨詢、技術(shù)支持的服務(wù)賺錢(qián)。
P公司代理了從操作系統(tǒng)到數(shù)據(jù)庫(kù)以及web服務(wù)器等各方面的開(kāi)源軟件,通過(guò)賣許可證、技術(shù)咨詢等方式掙軟件開(kāi)發(fā)商的錢(qián)。
可能正是因?yàn)槲以诤?jiǎn)歷中有“開(kāi)源”的關(guān)鍵字,又在項(xiàng)目中用過(guò)JBPM,所以得到了P公司的面試機(jī)會(huì)。公司有位副總,人稱馬總,曾經(jīng)在美國(guó)帶過(guò)項(xiàng)目,而且巧的是也用JBPM開(kāi)發(fā)過(guò)項(xiàng)目,還拿到了一個(gè)美國(guó)的大獎(jiǎng),9年后回到了祖國(guó)。馬總相信開(kāi)源,也很會(huì)玩開(kāi)源的東西。3.與馬總的上海之行
和馬總交流并且能得到他的一些指導(dǎo),對(duì)我而言也是種收獲。在我眼中一些技術(shù)高手、大牛們總是高高在上,很難溝通。
馬總卻很具有親和力。P公司在上海召開(kāi)了一個(gè)給軟件開(kāi)發(fā)商宣講開(kāi)源解決方案的大會(huì),到了快開(kāi)會(huì)的時(shí)間還有很多人沒(méi)到場(chǎng),為了不讓已經(jīng)到的人等的心急,馬總上臺(tái)預(yù)熱,他稱之為“和大家聊聊天”,他的“聊天”方式很放松,做幾個(gè)小調(diào)查,比如問(wèn)誰(shuí)知道“開(kāi)源”,還推出了有獎(jiǎng)問(wèn)答,凡是舉手回答問(wèn)題的還能得獎(jiǎng),使得會(huì)場(chǎng)氣氛很熱烈。
我也跟著去了上海,和馬總一塊給一家上海的軟件公司將開(kāi)源報(bào)表的解決方案,我側(cè)重講解iReport的使用。由于JasperSoft出了一個(gè)管理報(bào)表的引擎JasperServer,用于管理報(bào)表,權(quán)限等信息。馬總讓我對(duì)這方面也進(jìn)行了解,尤其是在機(jī)子上配置好這個(gè)軟件用于講解,整了一晚上也沒(méi)整出來(lái),馬總用候機(jī)的時(shí)間給配了出來(lái)。
那天正好K公司給我打電話,商量薪酬的事情,他們給我開(kāi)了一個(gè)非常吃驚的價(jià)錢(qián),開(kāi)的是6K,而我期望能在9K,聽(tīng)到這個(gè)價(jià)錢(qián)我很難接受,因此直接就說(shuō)這個(gè)價(jià)格沒(méi)法接受之類的話,后來(lái)想想有點(diǎn)后悔。
憑著用過(guò)iReport,做報(bào)表的過(guò)程講解的還算到位,但是對(duì)如何使用參數(shù)、變量這些稍微復(fù)雜的地方,我就沒(méi)太多講,能看出來(lái)有些讓馬總失望。
在結(jié)束上海之行的時(shí)候,馬總找了個(gè)機(jī)會(huì)跟我談了一下,我記住了他的一句話,說(shuō)“你還要再上三個(gè)臺(tái)階才行”,這句話我覺(jué)著是對(duì)我的一個(gè)十分中肯的評(píng)價(jià),雖然工作三年了,也做過(guò)一些項(xiàng)目,似乎有了些積累,但是并沒(méi)在技術(shù)上特別精通,而且在溝通方面也沒(méi)能鍛煉的很好。我認(rèn)為這種技術(shù)支持、咨詢類的公司需要既懂技術(shù)又能講解、還能懂架構(gòu)的技術(shù)支持人員。4.從開(kāi)發(fā)轉(zhuǎn)變?yōu)樽稍??我?zhǔn)備好了嗎?
我對(duì)P公司有好感,主要是兩個(gè)方面,一個(gè)是開(kāi)源,另一個(gè)就是馬總,我覺(jué)著我如果選擇開(kāi)源作為事業(yè)的方向?qū)⒛芤龑?dǎo)我走向成功,再加上有馬總這樣的經(jīng)驗(yàn)豐富的領(lǐng)導(dǎo)指導(dǎo)、培養(yǎng)我,我覺(jué)著我將會(huì)有很不錯(cuò)的前途。
但我認(rèn)為自己還是一名水平不太高的軟件開(kāi)發(fā)工程師,還需要用幾年時(shí)間向架構(gòu)師、項(xiàng)目經(jīng)理的方向奮斗才行,而做咨詢、技術(shù)支持是屬于需要依靠很豐富的經(jīng)驗(yàn)才能做好一種工作,雖然我能快速學(xué)習(xí),但還是會(huì)缺乏在項(xiàng)目中的實(shí)踐,很難給客戶以很好的支持,最終可能也會(huì)讓馬總失望。
從上?;貋?lái)后,我和人力談了我的想法,我說(shuō)自己還是應(yīng)該在開(kāi)發(fā)上面多做一些工作,目前的工作可能不適合,把P公司的應(yīng)聘結(jié)束掉了。
5.從做項(xiàng)目轉(zhuǎn)變?yōu)樽霎a(chǎn)品,也要付出點(diǎn)代價(jià)。
我又趕緊和K公司聯(lián)系,K公司人力抓住了K公司是做產(chǎn)品的而我是做項(xiàng)目出身的這一差別作為6K待遇的理由,又說(shuō)讓我權(quán)衡是進(jìn)入一個(gè)大型的平臺(tái)以后不斷發(fā)展,還是為了眼前的待遇而放棄進(jìn)入大公司。我更看重K公司這樣的大發(fā)展平臺(tái),但是還是希望人力能再提高一些待遇,畢竟我這是在北京工作,刨去稅真的感覺(jué)“回到了解放前”。
人力讓我等幾天和總公司協(xié)調(diào),最后等來(lái)的結(jié)果就是,總部不批準(zhǔn)我的應(yīng)聘申請(qǐng)。我很難過(guò),因?yàn)槲艺夜ぷ饕呀?jīng)從5月20號(hào)一直找到了7月20多號(hào)了,K公司又是大公司,我后悔從一開(kāi)始就把不滿意薪水的話說(shuō)給了人力,又忙和人力又溝通看有沒(méi)有什么補(bǔ)救,因?yàn)楫吘贡本┕具@邊認(rèn)為我還是不錯(cuò)的,可是結(jié)果已經(jīng)出來(lái)了,也無(wú)法改變了。
如果應(yīng)聘上了,那種薪酬,也就是從做項(xiàng)目轉(zhuǎn)變?yōu)樽霎a(chǎn)品要付出的一種代價(jià)吧。6.從做銀行業(yè)務(wù)的軟件開(kāi)發(fā)轉(zhuǎn)換為給某家居公司做系統(tǒng)?
這種可以轉(zhuǎn)變我工作方向的機(jī)會(huì)很多。有一家家居公司B要上ERP系統(tǒng),用的SAP的ERP,但是有些功能還是要自己開(kāi)發(fā),因此他們想招一些高級(jí)軟件工程師。
面試中談了談項(xiàng)目經(jīng)驗(yàn),走走過(guò)場(chǎng),基本就搞定了。待遇是稅前7K。面試完了,我也就決定了,肯定不去。
我想以我目前三年的開(kāi)發(fā)經(jīng)驗(yàn),到企業(yè)中做信息化的工作,要做到技術(shù)總監(jiān)或者CIO的話肯定也是很難的。因?yàn)楹芏嗳硕际窃谟辛撕茇S富的軟件實(shí)施經(jīng)驗(yàn)后,才跳到非軟件公司做企業(yè)自身的信息化方面的工作的,我自然還不合適。
7.從開(kāi)發(fā)轉(zhuǎn)變?yōu)闇y(cè)試?代價(jià)依然很高。
找工作找到現(xiàn)在,出現(xiàn)了沒(méi)有可選的局面了,有點(diǎn)抓狂,有點(diǎn)絕望。這時(shí)候,一家知名公司,神X公司約我面試。和面試官談了才知道,雖然我投的是這家公司的高級(jí)軟件工程師,但是他們想找我過(guò)來(lái)做測(cè)試,這個(gè)測(cè)試不是一般的黑盒測(cè)試,要寫(xiě)測(cè)試代碼、腳本之類的??紤]到如果在這樣的大公司做測(cè)試也是一種機(jī)會(huì),我也樂(lè)意考慮這個(gè)職位。但是談到待遇,只比應(yīng)屆生的工資高點(diǎn),實(shí)在是打擊,面試官的理由是我對(duì)寫(xiě)測(cè)試腳本還有網(wǎng)絡(luò)性能這些測(cè)試方面的東西還不了解,還需要學(xué)習(xí)一段,所以給這個(gè)價(jià)錢(qián)。
事后,我想了,我如果應(yīng)聘了測(cè)試,就是在用我的弱勢(shì)去應(yīng)聘,而把我的強(qiáng)項(xiàng)(開(kāi)發(fā)經(jīng)驗(yàn))沒(méi)體現(xiàn)出來(lái),那自然得不到好的待遇,雖然是一個(gè)機(jī)會(huì),但是我還是希望在軟件開(kāi)發(fā)這條道路上繼續(xù)發(fā)展,即使我選擇換一種方向,經(jīng)過(guò)自己衡量所需要付出的代價(jià),我還是選擇放棄這個(gè)知名公司的測(cè)試的職位。
第二篇:Java程序員成長(zhǎng)路線
004km.cn
Java程序員成長(zhǎng)路線
Java程序員
高級(jí)特性
反射、泛型、注釋符、自動(dòng)裝箱和拆箱、枚舉類、可變
參數(shù)、可變返回類型、增強(qiáng)循環(huán)、靜態(tài)導(dǎo)入
核心編程
IO、多線程、實(shí)體類、集合類、正則表達(dá)式、XML和屬性文件
圖形編程
AWT(Java2D/JavaSound/JMF)、Swing、SWT、JFace
004km.cn
網(wǎng)路編程
Applet、Socket/TCP/UDP、NIO、RMI、CORBA
Java語(yǔ)法基礎(chǔ)
類、抽象類、接口、最終類、靜態(tài)類、匿名類、內(nè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)成,包括類、抽象類、接口、最終類、靜態(tài)類、匿名類、內(nèi)部類、異常的編寫(xiě)。
3.Java核心API:基于JDK提供的類庫(kù),掌握三大核心功能:
A。Java核心編程:包括Java編程的兩大核心功能——Java輸入/輸出流和多線程,以及常用的輔助類庫(kù)——實(shí)體類、集合類、正則表達(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í)特性,包括反射、泛型、注釋,以及java高級(jí)特性——自動(dòng)裝箱和拆箱、枚舉類、可變參數(shù)、可變返回類型、增強(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程序員的成長(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)要容易, 然而要精通它, 要成為專家卻很難.主要原因是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è)階段, 就需要研究很多專題性的東西了, 比如: IO的實(shí)現(xiàn)原理, 多線程和Java的線程模型, 網(wǎng)絡(luò)編程, swing, RMI, reflect, EJB, JDBC等等很多很多的專題技術(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è)類吧), 你就會(huì)對(duì)Doug Lea佩服得五體投地.這個(gè)時(shí)候最忌碰到難題就去尋找?guī)椭? 去網(wǎng)上找答案!先把自己的腦袋想破吧, 或者等你的老板拿著砍刀沖過(guò)來(lái)要把你殺了, 再去尋求幫助吧.對(duì)于專題的學(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è)階段, 有很多很多類似的有趣的東西可以供你去研究, 你需要更多地關(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), 都能提高很多!
第四篇:怎樣成長(zhǎng)為以一個(gè)真正的java程序員
很多網(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的大致分類。我們知道,自從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ā)送給客戶端的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://?csdn IBM可是Web服務(wù)的力推者 嗚…你費(fèi)勁千心萬(wàn)苦,總算成為Java高手了,怎叫人不由喜極而泣呢!是啊,真不容易,真不簡(jiǎn)單,真叫人感動(dòng)啊!那么打個(gè)電話告訴我吧,什么?我的電話號(hào)碼是多少?昏到,你打電話問(wèn)不就知道了嗎,真是的……
如上是在網(wǎng)上考下來(lái)的,但個(gè)人認(rèn)為SCJP證書(shū)也好,程序員等級(jí)證書(shū)也好,不要太看重它;關(guān)鍵是你手中有沒(méi)有技術(shù),能不能拿出活來(lái)。我面試時(shí)候都是以證書(shū)為參考,主要衡量你的手段還是提問(wèn)技術(shù)性問(wèn)題以及一些編程方面的基礎(chǔ)問(wèn)題。建議不要把證書(shū)看的太重。
第五篇:怎樣成長(zhǎng)為以一個(gè)真正的java程序員
很多網(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的大致分類。我們知道,自從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ā)送給客戶端的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.cn http://.cn/ 看這域名就知道有多牛,注冊(cè)用戶快接近一萬(wàn)了,同時(shí)在線人數(shù)也在一千左右,人氣很旺的;
IBM的開(kāi)發(fā)者網(wǎng)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、用戶認(rèn)證、Filter、XML等,而且論壇完全屏蔽了對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),可以很輕易的在不同數(shù)據(jù)庫(kù)中移植。論壇還有方便的安裝和管理程序,這是我們平時(shí)編程時(shí)容易忽略的一部份(中國(guó)程序員一般只注重編程的技術(shù)含量,卻完全不考慮用戶的感受,這就是我們與國(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在Jive2.1版本基礎(chǔ)上改編而成, 全中文,增加了一些實(shí)用功能,如貼圖,用戶頭像和用戶資料查詢等,而且有一個(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)單啊!記得我也曾碰到過(guò)一個(gè)項(xiàng)目經(jīng)理,號(hào)稱Java很簡(jiǎn)單,只要三個(gè)月就可以學(xué)會(huì)。其實(shí)說(shuō)這種話的人就如當(dāng)年小日本號(hào)稱“三個(gè)月拿下中國(guó)”一樣大言不慚。不是我潑你冷水,你現(xiàn)在只是學(xué)到了Java的骨架,卻還沒(méi)有學(xué)到Java的精髓。接下來(lái)你得研究設(shè)計(jì)模式了。設(shè)計(jì)模式是高級(jí)程序員真正掌握面向?qū)ο蠛诵乃枷氲谋匦拚n。設(shè)計(jì)模式并不是一種具體“技術(shù)”,它講述的是思想,它不僅僅展示了接口或抽象類在實(shí)際案例中的靈活應(yīng)用和智慧,讓你能夠真正掌握接口或抽象類的應(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ā)平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?csdn IBM可是Web服務(wù)的力推者
嗚…你費(fèi)勁千心萬(wàn)苦,總算成為Java高手了,怎叫人不由喜極而泣呢!是啊,真不容易,真不簡(jiǎn)單,真叫人感動(dòng)啊!那么打個(gè)電話告訴我吧,什么?我的電話號(hào)碼是多少?昏到,你打電話問(wèn)不就知道了嗎,真是的……
如上是在網(wǎng)上考下來(lái)的,但個(gè)人認(rèn)為SCJP證書(shū)也好,程序員等級(jí)證書(shū)也好,不要太看重它;關(guān)鍵是你手中有沒(méi)有技術(shù),能不能拿出活來(lái)。我面試時(shí)候都是以證書(shū)為參考,主要衡量你的手段還是提問(wèn)技術(shù)性問(wèn)題以及一些編程方面的基礎(chǔ)問(wèn)題。建議不要把證書(shū)看的太重。