程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java學習,是一條漫長的道路

Java學習,是一條漫長的道路

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

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

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

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

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

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

  在技術上,我一直都是一個喜新厭舊的人,很少有軟件技術能讓我持續研究半年以上,我幾乎每隔幾個月就要換一次領域。Java 能讓我持續這麼久,也正是因為Java的領域廣。透過Java,我的技術視野變開闊了。這些年來,我換過的 Java 相關領域包括了:虛擬機器、數據庫、企業運算、多媒體、2D/3D圖學、網絡.…..等。

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

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

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

  我通常只看英文技術資料,畢竟大部分第一手的技術信息都是以英文來傳播。所以我很早就開始閱讀英文技術資料。讀英文技術資料的好處是,就算沒有學到書中的專業知識,至少也累積培養了英文閱讀能力,我一直都是抱著這樣的態度。一開始是正襟危坐的看英文技術書籍,字典、翻譯機隨侍在側;幾年下來,現在是躺著看、趴著看、很隨性地看英文技術書籍,因為看英文技術書籍變成一種習慣了。現在,我可以用很快的速度吸收英文技術書籍的知識(有人叫我「吃書的機器」,我把這稱號當作是一種恭維)。

  近年來,我花在寫程序的時間不多,因為時間對我來說很寶貴,而寫程序很浪費時間。對初學者來說,大量地寫程序是必要的,但過了某個階段之後,寫程序所帶來的技術能力成長已經到了極限,還不如多花一點時間看書,學新技術和新觀念。

  我從國小時期開始學習寫程序,迄今已有近十八年的時間;采取上述的方式密集學習,迄今也有近十年的光景。迩來數年,我接觸的領域越來越廣,而且學習速度正在加快,我認為是以前那些努力植下的根苗開始成長了。看看現在的我,或許你會覺得羨慕,但回顧這段學習的歲月,何嘗不是一條漫長的道路。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved