實戰Java
 Herbert Schildt and James Holmes/著,
 侯捷/譯
 上奇出版
 售價:680元


許多程式語言的初學者,在學習程式語言的語法之後,心裡往往會有一種空洞的感覺,而這空洞的感覺源自於不知如何運用所學的語法於應用程式的開發。

即使你了解了語法-也許你明白了某個程式語言的型別系統、迴圈控制或條件控制等,也許也明白了它對物件導向設計的支援方式,但對如何操控它們來建構出一個實用的應用程式,心中仍是茫茫然不知所措。這是初學程式語言-尤其是初學第一個程式語言的人們常會遭遇到的一個難關。

運用是最好的練習,實踐是檢驗力量的最佳辦法
誠如同本書的譯者侯捷先生在譯序中所言:「運用是最好的練習,實踐是檢驗力量的最佳辦法」。要學會運用某程式語言的最好途徑,就是透過實戰過程持續鍛練。在過去初學程式設計時,我會為自己設定不同的題目,例如圖形顯示、音效撥放等。在實作這些應用題目的過程當中,我得學會各種不同的應用技巧,才能完成這些題目的目標。

透過這樣子的實戰練習,除了能夠明白如何在程式語言與應用程式開發之間建立起對應的橋樑之外,同時也能回過頭去體會程式語言在語法設計上的理念-程式語言的每一項語法元素,之所以會被創造出來,其背後皆有深層的意涵。但這些更高層次的體認,多半得在持續性、不間斷的實務練習後,才會漸漸發生。

對初學者來說,缺乏的往往不是學習的熱忱或耐力,而是正確的方向。他們需要正確的導引,引領他們往正確的方向前進。並不是每個初學者都有能力為自己設定正確的實戰練習題目,而且,也不是每個初學者都有能力為這些練習題目找出正確的答案。

九大實戰領域,鍛練九大應用面向技能
而本書《實戰Java》的目的,即在提供Java的學習各種實作的方向。本書的副標題為:9個別具特色的實作經驗。作者選定了九大主題,包括:算式解析器、語言直譯器、檔案下載器、電子郵件客戶端程式、網頁爬行器、 HTML描繪器 、統計與繪圖、金融計算,以及人工智慧搜尋解法。

在各大主題中,作者不僅為Java初學者制定各式各樣的應用題目,示範如何操控Java程式語言及其程式庫,同時亦嘗試透過所編列的範例程式碼,來展現Java程式語言的威力及優雅。因此,不僅可以讓初學者明白程式語言的操控,如何與應用的解題之間建立對映,更可藉此進一步發掘Java內隱的精神。

每個主題其實都是某種應用面向技能的鍛練。舉例來說,「算式解析器」其實在鍛練字串處理的技能。在各種應用系統的開發中,我們幾乎時常都得面對處理各式各樣字串的剖析。而「檔案下載器」一章則在培養圖形化操作介面的靈活運用、檔案的讀寫操作,以及HTTP網路連線的下載應用。

在「統計與繪圖」這個主題中,不僅示範了Java提供從事數值計算所需的程式庫,同時還進一步介紹Java的圖形化處理技術。透過各個主題所揭露的技能面向,Java諸大領域的API皆能有所涉獵,並可據以入門。這也正是本書的目的-透過實戰來吸取應用的經驗。

最好的學習方式是模仿
除此之外,書中某些片段也隱藏著許多程式設計時的寶貴想法,十分值得深思。以「直譯器」一章中FOR迴圈子節為例,作者言道:「Stack-based機制解決FOR迴圈問題,這一手法可被廣泛運用」,「Stack-based解決方案也可應用到任何能夠交互套疊的語言元素裡頭,包括副常式」。初學者也許都知道Stack是一種先進後出的資料結構,但在程式設計的應用上,其實Stack很適合運用在所謂的交互套疊(nested),也就是巢狀的結構上,因為它的本質就是如此。

最好的學習方式是模仿。因為好的典範能展現許多即使歷久仍亦不衰的經典片段及模式。這些片段與模式總是在日後不斷地重現。也許自行摸索會另有額外的心得,但從典範著手,無疑是速度最快也最有效率的方法。

《作者簡介》王建興
清華大學資訊工程系的博士研究生,研究興趣包括電腦網路、點對點網路、分散式網路管理、以及行動式代理人,專長則是Internet應用系統的開發。曾參與過的開發專案性質十分廣泛而且不同,從ERP、PC GAME到P2P網路電話都在他的涉獵範圍之內。

熱門新聞

Advertisement