前言:前些日子新聞一直在追蹤報(bào)導(dǎo)北大山鷹社5名失蹤登山隊(duì)員的下落,雖然我對(duì)登山運(yùn)動(dòng)不甚了解,但攀登六七千米的懸崖峭壁的危險(xiǎn)是顯而易見的。也許,山鷹隊(duì)隊(duì)員們的夢(mèng)想不僅在于那連綿不斷的雪山,更在于在勇攀高峰的過(guò)程中所體味的成長(zhǎng)與愛,生命與自由。這些新聞報(bào)導(dǎo),促使我寫這篇文章,與大家分享我成功的欣喜與失敗的淚水。
我在大學(xué)時(shí)學(xué)計(jì)算機(jī)科學(xué)專業(yè),畢業(yè)以后一直從事計(jì)算機(jī)網(wǎng)絡(luò)管理和軟件開發(fā)的工作,也就是大家所說(shuō)的“it行業(yè)”。大多數(shù)人只認(rèn)為這是一個(gè)報(bào)酬較高的行業(yè)。但在我眼中,it可以是我一生的事業(yè),是我的理想,而一切都起源于一種程序設(shè)計(jì)語(yǔ)言——java programming language。
事情可以追溯到三年以前……
1999年1月
這一周以來(lái),我正在用c語(yǔ)言編寫一套通訊接口程序,可是在測(cè)試和調(diào)試過(guò)程中發(fā)現(xiàn)了一些不明原因的問(wèn)題,程序有時(shí)候會(huì)莫名其妙地崩潰。由于涉及通訊的服務(wù)方進(jìn)程和客戶方進(jìn)程是異步運(yùn)行的,所以無(wú)法進(jìn)行單步跟蹤、定位可能發(fā)生問(wèn)題的程序模塊。這個(gè)問(wèn)題困擾了我一個(gè)星期的時(shí)間,在反復(fù)審查我自己的代碼而未能找到原因的情況下,我開始懷疑我所使用的第三方的c代碼庫(kù)可能會(huì)存在問(wèn)題。經(jīng)過(guò)屢次的跟蹤和系統(tǒng)崩潰,我終于發(fā)現(xiàn)第三方的c代碼庫(kù)中存在指針(pointer)誤用的錯(cuò)誤,這個(gè)錯(cuò)誤導(dǎo)致了不應(yīng)該修改的數(shù)據(jù)被意外修改的現(xiàn)象,并最終導(dǎo)致系統(tǒng)的不穩(wěn)定和崩潰。
1999年3月
我從internet上發(fā)現(xiàn)一些消息,有一種被稱為java的程序語(yǔ)言在北美地區(qū)已經(jīng)相當(dāng)流行,這種程序設(shè)計(jì)語(yǔ)言由sun microsystems公司發(fā)明和編寫,語(yǔ)言風(fēng)格類似于c/c++語(yǔ)言,但解決了一些c/c++中的指針問(wèn)題。發(fā)現(xiàn)這些信息之后,我立刻到sun公司的網(wǎng)站上下載了java語(yǔ)言的相關(guān)資料。閱讀數(shù)遍之后,發(fā)現(xiàn)其中的含義和理論并不簡(jiǎn)單,遠(yuǎn)遠(yuǎn)超過(guò)vb、pb、dephi之類。我想找一些中文資料來(lái)看。
1999年4月
跑遍上海的大小計(jì)算機(jī)書店,發(fā)現(xiàn)關(guān)于java語(yǔ)言的計(jì)算機(jī)圖書資料少得可憐,即便有,也是不知所云,找不到真正權(quán)威性的中文版本的java圖書。網(wǎng)上資料不少,但很零散,質(zhì)量也不高。怎樣才能在最短的時(shí)間里掌握java的語(yǔ)法、程序結(jié)構(gòu)框架、設(shè)計(jì)理念和思想呢?
1999年5月
參加培訓(xùn)也許是個(gè)好辦法,mcse的培訓(xùn)課程很火,java應(yīng)該也有吧!找遍各大it媒體,居然沒有發(fā)現(xiàn)哪家培訓(xùn)中心有java的培訓(xùn)課程。只能等待機(jī)會(huì)了。
1999年6月
太好了!上海交通大學(xué)計(jì)算機(jī)培訓(xùn)中心有java課程!我毫不猶豫地報(bào)了名。
沒想到j(luò)ava課程上機(jī)是sparc工作站和solaris操作系統(tǒng),而且java程序移植到windows平臺(tái)時(shí)不需要重寫,讓我覺得簡(jiǎn)直不可思議!而且java語(yǔ)言是純面向?qū)ο笳Z(yǔ)言,設(shè)計(jì)理念和思想與面向過(guò)程的程序設(shè)計(jì)語(yǔ)言相比有許多意想不到的優(yōu)勢(shì)。
1999年8月
向老板建議,以后的軟件項(xiàng)目用java來(lái)開發(fā),遭到否決!
2000年2月
發(fā)現(xiàn)一家美國(guó)公司在招聘java程序員,為了證明自己的java編程水平,我參加了sun公司的scjp(sun certified java programmer)考試,通過(guò)!然后加入了這家公司的java開發(fā)團(tuán)隊(duì)。
2000年9月
為了再次證實(shí)我在java軟件開發(fā)方面的能力和經(jīng)驗(yàn),我參加了sun公司的scjd(sun certified java developer)的考試,并順利通過(guò)。同時(shí)我認(rèn)識(shí)到,java技術(shù)所包含的面向?qū)ο蟮乃枷胪耆梢宰鳛檐浖到y(tǒng)建模的基石,面向?qū)ο蟮姆治龊驮O(shè)計(jì)(ooa/d)過(guò)程完全可以通過(guò)java技術(shù)來(lái)完成和優(yōu)化。同時(shí),由于java語(yǔ)言的易學(xué)性,為數(shù)量眾多的軟件開發(fā)人員進(jìn)入對(duì)象世界提供了一條捷徑。
2001年5月
一個(gè)偶然的機(jī)會(huì),我遇見了余老師,他從事計(jì)算機(jī)系統(tǒng)管理的培訓(xùn)課程已有多年。余老師正在從事java sl275課程的培訓(xùn)工作,他認(rèn)為我既有java語(yǔ)言的理論知識(shí),又有比較豐富的應(yīng)用軟件實(shí)際開發(fā)經(jīng)驗(yàn),因此比較適合作授課講師。我自己在學(xué)習(xí)和使用java語(yǔ)言一年多來(lái),發(fā)現(xiàn)其中蘊(yùn)含了強(qiáng)大的面向?qū)ο蟮乃枷牒蜆?gòu)建易于擴(kuò)展的、靈活的軟件體系結(jié)構(gòu)的能力是無(wú)可比擬的。而大部分中國(guó)的程序員和開發(fā)員卻對(duì)它缺乏了解,能夠讓廣大的開發(fā)人員接觸和了解這樣一個(gè)新生事物,對(duì)他們一定有重大的幫助。于是我決定接受java講師的角色,迎接一個(gè)新的挑戰(zhàn)。
2001年10月
隨著進(jìn)一步的學(xué)習(xí)和研究,我發(fā)現(xiàn)java技術(shù)提供了從現(xiàn)實(shí)世界到應(yīng)用軟件世界的對(duì)象建模能力,同時(shí)它的分布式計(jì)算的能力也十分出色。java企業(yè)版(java 2 enterprise edition)平臺(tái)提供了基于internet計(jì)算的分析、設(shè)計(jì)、開發(fā)、測(cè)試和部署能力,并且將事件驅(qū)動(dòng)、服務(wù)驅(qū)動(dòng)和即插即用的應(yīng)用能力發(fā)揮到了極至。為了再次證實(shí)我在分布式計(jì)算、企業(yè)級(jí)計(jì)算方面分析、設(shè)計(jì)和實(shí)現(xiàn)的能力和經(jīng)驗(yàn),我參加了sun公司的scea(sun certified enterprise architect)的考試,并順利通過(guò)。
現(xiàn)在,當(dāng)我看到許多學(xué)生和程序開發(fā)員通過(guò)java課程的培訓(xùn)接受了面向?qū)ο蟮南冗M(jìn)思想、并且能夠運(yùn)用到實(shí)際開發(fā)過(guò)程中,取得良好的效果,我感到由衷的欣慰。因?yàn)槲也坏珵樽约海艺业搅艘粭l理想的道路,同時(shí)也在為it產(chǎn)業(yè)貢獻(xiàn)一份微薄的力量。