好久沒有打網誌了!最近壓力真的超級大阿,所以網誌就比較沒時間來維護啦!今天花了大概兩小時的時間把朱仲傑前輩所著的『Java SE 6全方位學習』給看完了,因為JAVA也用了很久了,雖然不算厲害但也算是自己熟悉的語言,因此大部分的知識都已經會了所以看的速度很快。也許有人會問如果都會了為什麼還要看呢?我只能說施主學無止盡阿!主要是因為自己對於程式語言的教學還蠻有興趣的,一方面想多學學別人是怎麼編寫教材的,另一方面是在一次檢視自己的觀念是不是有謬誤的地方。
今天看完了這本Java 6的書,不過結論是不推,中間夾了一些心路歷程,有興趣的同胞就繼續看下去吧!
之前去台北面試的空檔我都在博漢區(就是博愛路漢口街交叉的攝影器材集散地)還有重慶南路附近閒晃。身為一個專業的電腦人大概都知道重慶南路的天瓏書局吧!?天瓏書局大概是全台灣電腦資訊類圖書最齊全的一個書店,除了台灣有代理商的圖書外,他們自己還會進口美國剛剛出版的新書,算是台灣資訊類圖書最齊全的一家。上次去台北的時候去逛天瓏書局剛好看到朱仲傑前輩的JAVA6新書堆了一堆,還有海報呢!於是回學校後就馬上去圖書館的圖書推薦系統推薦購買。
JAVA的書我看了大概四、五本左右(自滿中)而JAVA5從2004年釋出以後,JAVA5的中文專書其實不多(當然也可能是我孤陋寡聞),大多數數的書都是出個補強版(將新功能放在附錄中或補充在文中),其中像是Head First Java 2e,算是很早就將JAVA5內容整合入書中的一本。時空轉換物換星移,Sun很快的就又發行了Java SE 6,回頭看看Java 1.5版以後的中文專書還是就那幾本,像是朱仲傑前輩的書的標題仍是『J2SE』。
今年年初,奉老師諭令開辦給專題升上的Java課程,對於程式語言的教學其實我是很有興趣的,不過那的確是很難很難的工作,因為程式本身就是非常抽像的概念(特別是物件導向程式),因此要把抽像的知識用語言用文字去傳達真的很困難。也因為這次的任務我Survey的近期的Java新書,也因此多讀了兩本Java 5的基礎書,分別是Oreilly出的『Java 技術手冊 第五版』及林信良前輩所著的『Java SE6 技術手冊』,這兩本書寫的都不錯,不過歐萊禮這本書對新手來說會顯得生澀些,比較像是有其他程式基礎的人的快速入門手冊,而林信良前輩所著的就屬於比較引導的方式,我記得前三章好像都還在教安裝,不過後面的內容鋪陳的算很清楚,算是新手自學的好教材,順便一提,林信良又稱良葛格,他有把他的Java教材放在網路上,所以不買書也可以看到內容,不過我感覺網路上的資料是比較簡略的,書寫的比較詳細,所以還是很推薦各位去買的。
學校算是很肯花錢在圖書館上的因此只要是新書館內又沒有的去推薦幾乎都會買,想當然爾這本Java6的新書學校是會買的,我也如預期的在一個月後借到新書。只是家族裡面的工作蠻多的,一直沒有時間好好去閱讀這本書。其實朱仲傑的Java書在Java2時代算是不錯的,當時我也有借來翻閱過,之後也有出Java 5的增補版也大概的把Java 5的新功能介紹了!因此這次朱仲傑的Java新書出了其實我算是蠻開心的,而且這次的書名就寫明了『Java 6』給人大改版的感覺。今天下午終於抽空把書給看完了!By the way, 為什麼今天會特別想到要看呢?因為這裡拜就要還了,所以再拖著不看,就要自己買來看了唷!
不過整本看完後其實蠻失望的,書的結構跟以前的J2SE那本差不多(不好意思另一本我沒有所以沒辦法直接對照),本書快都翻完的時候突然驚覺,書都快翻完了竟然沒有教Collection?Collection算是Java裡面很重要的概念,因為有了它我們處理大量的物件資料就會方便很多!還有其他Java5的新功能像是Autoboxing, Genetic type, Enum, Annotation, For-each, varargs等等都沒有說!?
原來是都放在『附錄』裡面了!所以如果你只想看新功能的話請直接翻閱附錄!我不太推的原因之一就是這些很重要的功能與觀念竟然沒有在課文內說明清楚,而且在附錄中提到也沒有說明得很仔細(反觀良葛格的書就寫的很清楚,甚至有很多觀念是我不會的),再來問題還是在編排上,在談Collection與Genetic type的地方竟然差了好幾章(一個在Appendix一個在課文內),如果是新手的話看到這邊就開始暈頭了,拿著課文的程式用Java 6的Compiler跑竟然出現奇異的錯誤訊息?!這不是很奇怪的地方嗎?然後後面才補刀了Genetic type,我其實不太相信有哪個新手可以理解這兩段的關聯,還在Genetic type一開始的地方寫『之前有提到Collection已經非常熟悉且可以運用自如』個人覺得只是讓初學者更混亂而已!然後Wrapping class也跟Autoboxing相隔了十萬八千里,For-each也應該跟Collection及Iterator一併講清楚…。
總之我覺得這本書的書名沒有取的很好,應該取為JAVA 2全方位學習(Java 1.6增修版),因為Java5後新增的東西都在後面幾章看到,前面與Java 2一樣,且課文內的程式不見得程式可以在Java 6的平台上跑(註:像是Collection那邊的程式全部都會有type uncheked的warning)。整本書的內容來說其實不太適合新手,因為有些很重要的觀念沒有在一開始帶出來,像String會用到的Regex、好用的for-each、新版的printf功能…等觀念都沒有在課文中出現(而是出現在附錄甚至沒有)。
新手要看書的話,個人還是推薦Head First Java或是林信良(良葛格)Java SE 6 技術手冊。Head First的話算是生動有趣,但內容更淺一些,而且還要去理解課文情境的內容,因此要花比較多的時間去理解觀念。良葛格的算是比較適中,但比較多程式碼,也許比較艱澀一點。不過這兩本都是推薦新手可以閱讀的書!至於我今天看完的這本嘛!我個人是不太推薦啦…。
By the way, 以下是剛買得玩具…有時間在po一下心得文哈?有興趣大家一起來阿…
另誠徵小貓阿??孤單寂寞覺得冷??嗚嗚…
您好,我想請教一個問題:
我是一個學習java的新手,想請問J2SE 1.5跟1.6差別在哪?
因為我打算買1.5的書來看就好,不知你認為適當嗎?
Java 1.5~1.6算是小改版,差異並不大,所以原則上不會差太多的。
如果不是上課沒有指定用書的話,推薦買這本 Java SE6技術手冊