明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

JAVA學習,是一條漫長的道路(轉(zhuǎn)貼)

[摘要]作者:蔡學鏞發(fā)表日期:2001-08-13瀏覽人次 :378 我在Java 1.0正式問世前就開始學習Java,這么多年過去了,到現(xiàn)在我的Java學習歷程還沒有停過。我閱讀原文書,研究原始碼,撰寫程序,自認為走得扎實,不奢望一步登天。像我這樣老式的學習方式,顯然和現(xiàn)在的快餐主義背道而馳。從許多讀者...
作者:蔡學鏞發(fā)表日期:2001-08-13瀏覽人次 :378 


我在Java 1.0正式問世前就開始學習Java,這么多年過去了,到現(xiàn)在我的Java學習歷程還沒有停過。我閱讀原文書,研究原始碼,撰寫程序,自認為走得扎實,不奢望一步登天。像我這樣老式的學習方式,顯然和現(xiàn)在的快餐主義背道而馳。從許多讀者的來信和學生的反應中,我發(fā)現(xiàn)大多數(shù)的人對于Java的學習歷程都差不多是:因為公司需要使用Java來進行服務器的計畫,所以急急忙忙地學習Java語言,然后就開始使用J2EE的API,開始寫起程序來了。如此急就章的學習方式,程序員基礎(chǔ)能力根本就不夠,對于對象導向精髓不能掌握,對于Java語言內(nèi)部的運作機制毫無所悉,對API的整體連貫性懵懵懂懂。

當然,我們也不好因此責怪程序員,畢竟軟件技術(shù)變動得太快。公司不可能給程序員足夠的訓練之后才開始做計畫。程序員一下子被指派使用A技術(shù),還沒弄懂A技術(shù)是怎么回事,又被指派使用B技術(shù),而且都是縫縫補補的方式邊學邊用,每次都像是全新的開始,遑論技術(shù)能量的累積。

我很慶幸的是,我不太有這樣的困擾。因為我是資訊工程系出身(而且我大學時上課一向很認真),所以理論基礎(chǔ)穩(wěn)固,學習新技術(shù)對我來說不是難事。我就讀大學時,周遭許多同學都瞧不起數(shù)據(jù)結(jié)構(gòu)、程序語言、操作系統(tǒng)這些所謂「學院派」的課程,以為這些課程一點都不實用。他們認為到了外面公司,這些信息科系所學的一切都派不上用場,「只要會Visual Basic和數(shù)據(jù)庫就夠了」。這種偏差的心態(tài),恐怕會使得他們在知識經(jīng)濟時代吃足了苦頭。

另外還有一派同學很瞧不起程序設(shè)計工作,他們告訴我,像我這樣會寫程序的人,未來進了社會「還不是被他們這些走管理的人踩在腳下」。所以,他們很輕忽理工課程的學習,甚至還有人相當熱衷「成功學」,認為這是邁向成功的快捷方式,卻因此把學校的課業(yè)棄之不顧。我不敢相信有人竟然如此地本末倒置。

前一類的人太過于短視近利,后一類的人太過于好高騖遠。我一直很不能理解這些人的想法為什么會這樣,或許是因為社會環(huán)境的風氣使然。我很慶幸我到目前還沒被社會的大染缸給玷污了(最好這輩子都不要)。我不認為我的學習方式是一種典范,但是一路走來,倒也頗有進展。許多讀者來信問我的學習歷程,雖然我個人的學習方式不見得適用于每個人,但或許還有一些參考價值(特別是對于那些有志進入信息行業(yè)的年輕學子),我想透過本文簡短地敘述一下。


我一向是采用先深后廣(也稱為Bottom-Up,Deep-First)的學習方式。比方說,當我在學A技術(shù)的時候,學到一半發(fā)現(xiàn)需要B技術(shù)的基礎(chǔ),我會到書局找出一兩本B技術(shù)的書,然后把A先擱著,開始看起B(yǎng)技術(shù)的書。甚至,我在技術(shù)書籍上看到不太熟悉的英文句構(gòu)時,我會找出一本英文文法書詳細讀過。這種先深后廣的學習方式,適合學生時代全面地自我能力提升,但不適合業(yè)界人士。試想,老板要你開發(fā)的ERP系統(tǒng)已經(jīng)延遲了,你怎有空研究J2EE原文書中的英文文法。先深后廣的好處是,學習很扎實;缺點是有時候會偏離主題太多。有一次我發(fā)現(xiàn)我原本是要學某軟件技術(shù),幾次「先深后廣」下來,我居然看起老子的道德經(jīng)了。

在技術(shù)上,我一直都是一個喜新厭舊的人,很少有軟件技術(shù)能讓我持續(xù)研究半年以上,我?guī)缀趺扛魩讉月就要換一次領(lǐng)域。Java 能讓我持續(xù)這么久,也正是因為Java的領(lǐng)域廣。透過Java,我的技術(shù)視野變開闊了。這些年來,我換過的 Java 相關(guān)領(lǐng)域包括了:虛擬機器、數(shù)據(jù)庫、企業(yè)運算、多媒體、2D/3D圖學、網(wǎng)絡.…..等。

我的學習完全是興趣導向的,所以壓力并不大。因為有興趣,所以我會很想充分理解一切細節(jié)。又因為理解,所以許多原本片片斷斷的知識都可以漸漸互相融會貫通,累積技術(shù)能量,理論和實務之間的藩籬被打破了,學習效率倍增。

我多年來的學習觸覺很敏銳,我常常會搶先一步學好有前瞻性的技術(shù)。比方說,Java還在beta時、UML還在0.8時、XML還在draft時,我都已經(jīng)透過網(wǎng)絡下載技術(shù)文件回來每天抱著猛讀了。而在Java、UML、XML當紅之后,我已經(jīng)差不多把這些技術(shù)都摸熟了。

至于該學什么技術(shù),我的判斷方式是以技術(shù)的優(yōu)劣來決定。優(yōu)秀而有獨到之處的技術(shù)是我的最愛,雖然這類的技術(shù)不見得會在市場上勝出,但學習這些技術(shù)所得到的啟發(fā),對于技術(shù)能量的累積與能力的提升會有相當大的助益。至于技術(shù)差,但市場需求甚殷者,我還是懶得碰。(好吧!我承認我曾因為市場需求的緣故而學過MFC。越清楚MFC的技術(shù)細節(jié),越是討厭它,這真是個不堪回首的經(jīng)驗。)

我通常只看英文技術(shù)資料,畢竟大部分第一手的技術(shù)信息都是以英文來傳播。所以我很早就開始閱讀英文技術(shù)資料。讀英文技術(shù)資料的好處是,就算沒有學到書中的專業(yè)知識,至少也累積培養(yǎng)了英文閱讀能力,我一直都是抱著這樣的態(tài)度。一開始是正襟危坐的看英文技術(shù)書籍,字典、翻譯機隨侍在側(cè);幾年下來,現(xiàn)在是躺著看、趴著看、很隨性地看英文技術(shù)書籍,因為看英文技術(shù)書籍變成一種習慣了,F(xiàn)在,我可以用很快的速度吸收英文技術(shù)書籍的知識(有人叫我「吃書的機器」,我把這稱號當作是一種恭維)。
近年來,我花在寫程序的時間不多,因為時間對我來說很寶貴,而寫程序很浪費時間。對初學者來說,大量地寫程序是必要的,但過了某個階段之后,寫程序所帶來的技術(shù)能力成長已經(jīng)到了極限,還不如多花一點時間看書,學新技術(shù)和新觀念。
我從國小時期開始學習寫程序,迄今已有近十八年的時間;采取上述的方式密集學習,迄今也有近十年的光景。邇來數(shù)年,我接觸的領(lǐng)域越來越廣,而且學習速度正在加快,我認為是以前那些努力植下的根苗開始成長了?纯船F(xiàn)在的我,或許你會覺得羨慕,但回顧這段學習的歲月,何嘗不是一條漫長的道路。