一個Java先行者的追尋之路

  前言:前些日子新聞一直在追蹤報導北大山鷹社5名失蹤登山隊員的下落,雖然我對登山運動不甚了解,但攀登六七千米的懸崖峭壁的危險是顯而易見的。也許,山鷹隊隊員們的夢想不僅在於那連綿不斷的雪山,更在於在勇攀高峰的過程中所體味的成長與愛,生命與自由。這些新聞報導,促使我寫這篇文章,與大家分享我成功的欣喜與失敗的淚水。

我在大學時學計算機科學專業,畢業以後一直從事計算機網路管理和軟體開發的工作,也就是大家所說的“it行業”。大多數人只認為這是一個報酬較高的行業。但在我眼中,it可以是我一生的事業,是我的理想,而一切都起源於一種程式設計語言——java programming language。

事情可以追溯到三年以前……

1999年1月

這一周以來,我正在用c語言編寫一套通訊接口程式,可是在測試和調試過程中發現了一些不明原因的問題,程式有時候會莫名其妙地崩潰。由於涉及通訊的服務方進程和客戶方進程是異步運行的,所以無法進行單步跟蹤、定位可能發生問題的程式模組。這個問題困擾了我一個星期的時間,在反覆審查我自己的代碼而未能找到原因的情況下,我開始懷疑我所使用的第三方的c代碼庫可能會存在問題。經過屢次的跟蹤和系統崩潰,我終於發現第三方的c代碼庫中存在指針(pointer)誤用的錯誤,這個錯誤導致了不應該修改的數據被意外修改的現象,並最終導致系統的不穩定和崩潰。

1999年3月

我從internet上發現一些訊息,有一種被稱為java的程式語言在北美地區已經相當流行,這種程式設計語言由sun microsystems公司發明和編寫,語言風格類似於c/c++語言,但解決了一些c/c++中的指針問題。發現這些信息之後,我立刻到sun公司的網站上下載了java語言的相關資料。閱讀數遍之後,發現其中的含義和理論並不簡單,遠遠超過vb、pb、dephi之類。我想找一些中文資料來看。

1999年4月

跑遍上海的大小計算機書店,發現關於java語言的計算機圖書資料少得可憐,即便有,也是不知所云,找不到真正權威性的中文版本的java圖書。網上資料不少,但很零散,質量也不高。怎樣才能在最短的時間裡掌握java的語法、程式結構框架、設計理念和思想呢?

1999年5月

參加培訓也許是個好辦法,mcse的培訓課程很火,java應該也有吧!找遍各大it媒體,居然沒有發現哪家培訓中心有java的培訓課程。只能等待機會了。

1999年6月

太好了!上海交通大學計算機培訓中心有java課程!我毫不猶豫地報了名。

沒想到java課程上機是sparc工作站和solaris作業系統,而且java程式移植到windows平台時不需要重寫,讓我覺得簡直不可思議!而且java語言是純面向對象語言,設計理念和思想與面向過程的程式設計語言相比有許多意想不到的優勢。

1999年8月

向老闆建議,以後的軟體項目用java來開發,遭到否決!

2000年2月

發現一家美國公司在招聘java程式設計師,為了證明自己的java編程水平,我參加了sun公司的scjp(sun certified java programmer)考試,通過!然後加入了這家公司的java開發團隊。

2000年9月

為了再次證實我在java軟體開發方面的能力和經驗,我參加了sun公司的scjd(sun certified java developer)的考試,並順利通過。同時我認識到,java技術所包含的面向對象的思想完全可以作為軟體系統建模的基石,面向對象的分析和設計(ooa/d)過程完全可以通過java技術來完成和最佳化。同時,由於java語言的易學性,為數量眾多的軟體開發人員進入對象世界提供了一條捷徑。

2001年5月

一個偶然的機會,我遇見了余老師,他從事計算機系統管理的培訓課程已有多年。余老師正在從事java sl275課程的培訓工作,他認為我既有java語言的理論知識,又有比較豐富的套用軟體實際開發經驗,因此比較適合作授課講師。我自己在學習和使用java語言一年多來,發現其中蘊含了強大的面向對象的思想和構建易於擴展的、靈活的軟體體系結構的能力是無可比擬的。而大部分中國的程式設計師和開發員卻對它缺乏了解,能夠讓廣大的開發人員接觸和了解這樣一個新生事物,對他們一定有重大的幫助。於是我決定接受java講師的角色,迎接一個新的挑戰。

 2001年10月

隨著進一步的學習和研究,我發現java技術提供了從現實世界到套用軟體世界的對象建模能力,同時它的分散式計算的能力也十分出色。java企業版(java 2 enterprise edition)平台提供了基於internet計算的分析、設計、開發、測試和部署能力,並且將事件驅動、服務驅動和即插即用的套用能力發揮到了極至。為了再次證實我在分散式計算、企業級計算方面分析、設計和實現的能力和經驗,我參加了sun公司的scea(sun certified enterprise architect)的考試,並順利通過。

現在,當我看到許多學生和程式開發員通過java課程的培訓接受了面向對象的先進思想、並且能夠運用到實際開發過程中,取得良好的效果,我感到由衷的欣慰。因為我不但為自己,我找到了一條理想的道路,同時也在為it產業貢獻一份微薄的力量。