2008-09-23 21:10:48
来自: Mr. Yu
(永远不要相信你骗过的人)
Java编程思想(第4版)的评论



文:余小果
//08年9月26日更新
终于决定为这本心目中五星的书籍写一篇评论,因为目前的普遍舆论对这本书有一些误读,这些误读可能会误导初学者。我只想尽量客观的提出自己的观点,也许这不太可能,因为我认为这本书是五星的,那么多少我会作者持有偏好。那么请花一些时间阅读本书,也许你也会喜欢上Bruce Eckle。
一.误读
误读1:本书的翻译质量不太好,最好是阅读原版。
Bruce知识渊博,诙谐幽默,原版当然有过人的地方。但是我想说,此书的翻译质量绝对非常不错,我还没有发现可能会引起误读的地方,也没有其它原版书籍译本常出现的语法错误,可以看出译者很用心。不妨做一下恶意的揣测,一些人宣称此书译版不好是以此炫耀自己的见识或者英文能力(我也有很多阅读译版书籍让人痛恨的经历,比如《洛丽塔》《现代操作系统》)。
误读2:本书不适合初学者
我不知道有人认为本书不适合初学者是不是因为本书有将近900页的可能让人沮丧的篇幅。
如果是这样,我想说这种忧虑完全是想当然,Bruce没有对读者已有的知识经验作过多的假设,他在前言里表明读者需要知道基本的程序语句(比如C里面的if和for),并且本书虽然假设读者已经熟悉C语法,还是用了单独一章讲述简单的语法,非常贴心。我读完全书之后的感觉就是他成功地由浅入深地让一个 Java新手明白了Java编程思想。当然,这得是一个用心用时的新手。
或者另一种指控是本书讲述的内容太繁多,事无巨细不适合新手。
我想说这也是想当然。想当然地假设初学者是没有耐心和时间的,就难度和章节设置的合理程度来说,本书完全适合任何肯付出时间的人。
二.面向读者
本书适合那些有简单程序编写经验的人:你已经知道程序是一些语句的集合,知道子程序/函数/宏的概念,知道像if这样的控制语句和像while这样的循环语句,等等。那么你就能顺利阅读本书。
本书篇幅教长,较一般的程序书籍深入了不少,不适合想在一个星期“速成”的人阅读。
三.阅读指南
1.多花时间阅读本书,根据本人经验,一个了解C++的读者每天阅读2小时,应该可以在2个月内读完本书。
2.下载完整的中文JDK文档到本地计算机中,并在浏览器的书签栏添加几个常用组件的链接方便随时查找。
3.顺序阅读本书,后面的例子可能会用到前面定义的包、类,或者设计模式。
4.第一遍阅读的时候,可能会有不明白的地方,在书页两侧的留白处标记上“??”以便下次看的时候明白。相信我,你会需要看很多遍,并且每次都会有“Aha”的感觉。
5.如果你觉得第1章晦涩难懂,跳过它。阅读到泛型的时候再回头看看。
四.后续学习
强烈建议sun官方的学习文档:http://java.sun.com/ doc/books/tutorial
五.本书的缺憾
1.命名太合乎规范,而且用的是标准的“驼峰命名法”,有几次我跳跃式阅读的时候,发现奇怪的方法还试图查阅JDK文档,结果竟然是他自己命名的方法……
2. 图形化界面这一章,没有出现任何图片,很难让人直观地理解Swing,不过作者也说了“如果读者觉得自己必须掌握它的复杂细节,我推荐读者参考专门的 Swing书作为起点”。我推荐sun官方的uiswing教程(http://java.sun.com/ docs/books/tutorial/ uiswing)。
3.Bruce喜欢创建一些小程序放在net.mindview包里面,比如生成器。有时候这些程序很实用,但是有时候花费大量篇幅做一个生成器显得不太有性价比,甚至有可能造成读者的懒惰和理解上的误区(例如图形界面那一章的在一个新建的线程里面放置组件的方法,就容易让读者忽略他们已经新建了一个线程)。
Java编程思想(第4版)的评论




文:余小果
//08年9月26日更新
终于决定为这本心目中五星的书籍写一篇评论,因为目前的普遍舆论对这本书有一些误读,这些误读可能会误导初学者。我只想尽量客观的提出自己的观点,也许这不太可能,因为我认为这本书是五星的,那么多少我会作者持有偏好。那么请花一些时间阅读本书,也许你也会喜欢上Bruce Eckle。
一.误读
误读1:本书的翻译质量不太好,最好是阅读原版。
Bruce知识渊博,诙谐幽默,原版当然有过人的地方。但是我想说,此书的翻译质量绝对非常不错,我还没有发现可能会引起误读的地方,也没有其它原版书籍译本常出现的语法错误,可以看出译者很用心。不妨做一下恶意的揣测,一些人宣称此书译版不好是以此炫耀自己的见识或者英文能力(我也有很多阅读译版书籍让人痛恨的经历,比如《洛丽塔》《现代操作系统》)。
误读2:本书不适合初学者
我不知道有人认为本书不适合初学者是不是因为本书有将近900页的可能让人沮丧的篇幅。
如果是这样,我想说这种忧虑完全是想当然,Bruce没有对读者已有的知识经验作过多的假设,他在前言里表明读者需要知道基本的程序语句(比如C里面的if和for),并且本书虽然假设读者已经熟悉C语法,还是用了单独一章讲述简单的语法,非常贴心。我读完全书之后的感觉就是他成功地由浅入深地让一个 Java新手明白了Java编程思想。当然,这得是一个用心用时的新手。
或者另一种指控是本书讲述的内容太繁多,事无巨细不适合新手。
我想说这也是想当然。想当然地假设初学者是没有耐心和时间的,就难度和章节设置的合理程度来说,本书完全适合任何肯付出时间的人。
二.面向读者
本书适合那些有简单程序编写经验的人:你已经知道程序是一些语句的集合,知道子程序/函数/宏的概念,知道像if这样的控制语句和像while这样的循环语句,等等。那么你就能顺利阅读本书。
本书篇幅教长,较一般的程序书籍深入了不少,不适合想在一个星期“速成”的人阅读。
三.阅读指南
1.多花时间阅读本书,根据本人经验,一个了解C++的读者每天阅读2小时,应该可以在2个月内读完本书。
2.下载完整的中文JDK文档到本地计算机中,并在浏览器的书签栏添加几个常用组件的链接方便随时查找。
3.顺序阅读本书,后面的例子可能会用到前面定义的包、类,或者设计模式。
4.第一遍阅读的时候,可能会有不明白的地方,在书页两侧的留白处标记上“??”以便下次看的时候明白。相信我,你会需要看很多遍,并且每次都会有“Aha”的感觉。
5.如果你觉得第1章晦涩难懂,跳过它。阅读到泛型的时候再回头看看。
四.后续学习
强烈建议sun官方的学习文档:http://java.sun.com/
五.本书的缺憾
1.命名太合乎规范,而且用的是标准的“驼峰命名法”,有几次我跳跃式阅读的时候,发现奇怪的方法还试图查阅JDK文档,结果竟然是他自己命名的方法……
2. 图形化界面这一章,没有出现任何图片,很难让人直观地理解Swing,不过作者也说了“如果读者觉得自己必须掌握它的复杂细节,我推荐读者参考专门的 Swing书作为起点”。我推荐sun官方的uiswing教程(http://java.sun.com/
3.Bruce喜欢创建一些小程序放在net.mindview包里面,比如生成器。有时候这些程序很实用,但是有时候花费大量篇幅做一个生成器显得不太有性价比,甚至有可能造成读者的懒惰和理解上的误区(例如图形界面那一章的在一个新建的线程里面放置组件的方法,就容易让读者忽略他们已经新建了一个线程)。
本评论版权属于作者Mr. Yu,并受法律保护。除非评论正文中另有声明,没有作者本人的书面许可任何人不得转载或使用整体或任何部分的内容。
在哪儿买这本书? · · · · · ·
作者: (美)埃克尔
isbn: 7111213823
书名: Java编程思想(第4版)
页数: 880
定价: 108.0
出版社: 机械工业出版社
译者: 陈昊鹏
装帧: 平装
出版年: 2007-06-01
又名: Thinking in Java (4th Edition)
2008-09-26 14:34:44 doudou
我初学,买了这本书,还没读,现在正在读java编程笔记,多谢你的建议。2008-10-02 20:17:38 泽|这是一个痒痒的季节
好 我要看看~2008-10-08 21:11:44 黑色猫咪
谢谢~2008-10-31 23:27:03 淪落婲瓣
这本,我一直在努力的想看进去,结果只是用来催眠~我是一个很没有耐心的人,需要有人讲给我才可以.
所以,买来很久,却一直闲置...
2008-11-01 01:33:03 Mr. Yu
循序渐进地看 不要操之过急可能会让没有耐心的你也觉得兴趣盎然~
2008-12-05 12:04:49 小东
对于从未接触过java的人来说,先找一本大学教材啃一遍后再来读这本书比较好。2008-12-08 10:15:24 忘.惑
我也这么觉得,很多东西,对初学者还是有点难的2008-12-08 10:44:00 Mr. Yu
今年之内准备重读一遍2008-12-17 13:28:00 Chrish_long
这本书写的太好了,我读它时,几乎舍不得读快,怕读完了。绝对是经典中的经典。2009-04-30 18:49:44 夏一一。
这书其实很适合初学者,我就是读这个了解JAVA的,最初是读的第三版,读了两遍,几乎所有程序都有自己实践,现在买了第四版,决定,好好再继续的研究!读这书需要的绝对是耐心和毅力。
2009-07-28 21:39:14 menie
谢谢您的建议!我第一章刚晦涩地读完。。
2009-11-10 08:28:00 Yupad
之前没有接触过JAVA的,建议第一章先跳过书相当不错,但是不适合入门用
2009-11-19 09:18:49 menie
嗯,我现在觉得,如果学了JS,了解这种基于对象的语言,再学JAVA这种面向对象的效果会更好~我就是这么玩的。。2009-11-19 11:38:39 Mr. Yu
@menie JS语言特性并没有提供面向对象的机制,我觉得还是从C++或者Java这种面向对象的入手,然后学习JS,能写出更好的代码。而且,程序员学JS,难道是想做前端?
2009-11-21 15:44:17 menie
@Mr. Yu 嗯。。对我来说的话,是先弄明白了JS再略微看懂了thinking in java感觉以后好多东西也就基于web了嘛,就顺便学了JS
> 我来回应