《Java编程思想》阅读指南_Thinking in Java书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 科技 > Thinking in Java > 《Java编程思想》阅读指南
Yuguo Thinking in Java 的书评 发表时间:2008-09-23 21:09:48

《Java编程思想》阅读指南

文:@yuguo
//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包里面,比如生成器。有时候这些程序很实用,但是有时候花费大量篇幅做一个生成器显得不太有性价比,甚至有可能造成读者的懒惰和理解上的误区(例如图形界面那一章的在一个新建的线程里面放置组件的方法,就容易让读者忽略他们已经新建了一个线程)。

展开全文
有用 223 无用 8

您对该书评有什么想说的?

发 表

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

对“《Java编程思想》阅读指南”的回应

蒋帅 2016-10-11 22:25:17

java学了一年多 也做过一些项目 如今鼓起勇气看这本书 还是觉得收获很多 需要静下心来细细理解

浮生若朦 2016-08-11 19:29:31

书的内容确实挺好,但是翻译得好?这点实在不敢恭维

哎呀 2016-08-02 16:01:23

这本书的翻译已经差到影响阅读的地步了,楼主居然说「非常不错」。此外,我不知道楼主从哪里看出 Bruce Eckel 的行文风格「诙谐幽默」的。

idioteque 2016-04-27 23:55:03

0基础第二章开始看不懂了。。。自学不易

糖蚊子 2016-04-11 12:04:03

翻译问题,不说其他,field翻译成“字段”没有问题,可是你前后要统一啊,突然来个类中域,然后都是域了,这不坑爹吗?

中原 2016-03-10 02:16:30

在看本书之前,最好还是要对基础知识有大概的了解,不然真的很难理解。技术书籍是需要反复咀嚼的,每一次都会有新发现。新手一枚,加油↖(^ω^)↗

想吃葱油饼 2016-02-18 03:56:53

很多人说先看core java,再看本书,然而作者自己都在书里写过,看完本书想深造的再看core java。

wmlhust 2016-01-19 11:53:39

第一章确实有点看不下去。。耐心是美德,但是还是先从第二章开始了。

ting 2015-12-27 16:05:39

At compile-time, this is enforced only by your own self-imposed
rules, but at run-time the cast ensures it (P410)
在编译期间,我们肯定的依据是我们自己的规则;而在编译期间,却是通过造型来肯定这一点。(P335)
run-time ,这翻译没问题?

白虹李李 2015-12-21 00:20:13

为了你的这篇文章,专门注册了来说一下:翻译不是不好,是和其他人都不一样。会导致很多人看不懂。当然第一本书就是这个的就没问题了。
比如第10页写:以及涉及造型、升迁以及优先次序的问题。
真心不懂什么叫:造型,什么叫升迁。
他用的语言完全是自己思考出来的,不顾及业界已有的惯例说法。当然可能是因为他很牛,不愿意使用别人用过的词。

人间失格 2015-12-09 18:28:17

这本书无疑是本好书,如果想要以JAVA为主要编程语言,这本书肯定要买并且投入时间深入学习。 只是对没有什么代码积累的新手来说,作为入门书确实太高了。

Lyon 2015-08-25 07:51:38

七年前的书评啊,太经典了,新学java,看了第一章就深深爱上了,有python,ruby等动态语言经验,冲着java的强制异常处理和单元测试而来,不过现在看来完全可以期望更多的惊喜~

Joker 2015-08-04 10:08:06

虽然没看完,但是想说,很多词,确实翻译的不怎么准确,对于初学者看得够呛

orpheus 2015-07-25 17:35:58

我就稍举两个例子证明翻译的是不是有问题,说翻译有问题的人是不是在炫耀自己的英文水平。
Java编程思想第四版中文版228页"addFirst()与add()和addLast()相同,它们都将某个元素插入到列表的尾部“,英文版441页"addFirst() inserts an element at the beginning of of the list. offer() is the same as add() and addLast(). They all add an element to the tail of a list"。
随后下一段,中文版"它重复地执行ListFeatures.java中所示的行为“,英文版“It doesn't repeat the behavior that was shown in ListFeatures.java"。

7天不洗澡 2014-11-14 09:50:04

今年3月份刚上班那会儿,经同事介绍买了这本书 ,不过一直没有去看,现在项目忙完了 感觉没啥事 所以就想阅读一下 但是又不知道从哪里开始看起 不管怎样还是觉得这本书高上大 应该能学到不少东西 我去看书咯

awalkz 2014-04-17 20:08:06

一次在MySQL课上,老师看见我在看thinking in java,然后就对我说就对我说,这本书出名是出在第一版和第二版上,到了第四版内容明显偏难,而且到了本书的后半部分作者甚至有点走火入魔,但偏向对象的部分确实是不错的,他还说这本书他看了两遍,不推荐我看。

SnailDove 2013-11-28 11:51:26

蛮不错的 我觉得外国的书 讲的都比较好懂 当初学c++ 花了10来天看国内教材 后来就看c++primer 不觉得难 关键是这个过程不要被还剩那么多页的心里吓倒 要积极地 我学会了什么的心态 估计就好些了 现在在看java编程思想第四版的GUI这个章节 谢谢楼主建议

ScratBai 2013-10-16 10:54:45

我干打赌这本书的翻译有问题,,有个地方把“但是”翻译成“尽管”,句子完全读不通。而把632页(英文版页码,对应中文版513页17.11)的“Note that min( ) and max( ) work with Collection objects, not with Lists,“这句翻译成”注意,min()方法和max()方法只能作用于Collection对象,而不能作用于List“,根本就是错的。这还不叫错叫什么?

风纪扣v 2013-07-17 08:14:45

这本书的翻译的确很赞,没的说

莫逆 2013-06-11 00:53:56

一直下不了决心买,就是那句“不适合新手”。原来新手的定义是懂一些基础语法就好。谢了,我可以去买了

manxisuo/ 2013-04-29 15:03:59

说的不错~

楚兰 2013-03-22 16:52:22

ok,就是这个了

蔺小好 2013-02-26 13:17:58

正在学习SE阶段,有什么好书推荐下呢,正在学java的蔺小好。

周伯通 2013-02-03 19:27:02

额。。之前也看到很多说译版翻译不好所以硬着头皮看原版,结果速度奇慢。不过坚持看完必定有所提高,这是一本好书,我光是读完了introduction就觉得作者语言很诙谐,我很喜欢。

架构师 2012-12-20 19:51:25

是用来没事的时候翻两页。真正用到框架了,这书就算能背你也做不出东西来。

bigCat 2012-12-13 22:25:08

果子.... 看到这个书评俺准备来一发

乐动 2012-11-21 20:46:32

我这本书买了也快2年了,最开始没有静下心来看,只是草草的看了看自己需要了解的地方。现在重新看的时候,看到了好多令自己惊讶叫好的地方,例如对继承和多态的分析,确实非常的到位。

Yuguo 2012-11-01 16:00:18

作者现在在搞前端开发,顺便研究下iOS开发……

风纪扣v 2012-10-22 17:31:03

这篇写于4年前的文章今天读起来依旧很棒,也不知道作者现在怎么样了,很有见地,应该很棒了吧。至于这本书是不适合初学者,我觉得这种评论是无所谓的。因为就算是初学者水平也不一样。我的建议是:如果想学就买,看不懂搁着,等水平高了再看。。。。不过话说回来这本书真是不错,思想这种东西本身就是只可意会不可言传的东西,比较难写,而且作者见多识广,综合各路人的看法,见解很成熟。

1985-在路上 2012-09-17 17:18:30

能保证对作者写的内容基本上都理解了?

澈黑 2012-06-11 23:20:57

1000页其实,每天18页也差不多了吧,1小时9页?....大概5分钟一页吧

重樓の愛冪 2012-05-26 22:16:17

我晕,这个书你想2个月每天二小时读完,我不知道你是怎么读的,但是在我的手里是绝对不可能的。

Kiddkai 2012-03-24 08:21:06

@Yuguo js的确是有提供面向对象机制,不过js的面向对象是基于原型的,而常见的cpp 和 java之类的是基于模板的。而且现在js简直全能了= =

低调的火 2011-11-30 23:13:10

2h/day 60days 120小时读完,某不认同!

清风 2011-11-15 11:52:00

在看这本书,细致的教导,让你真正理解一门语言,以后学习其他语言和设计模式时都将受益匪浅。

深夜的潜行者 2011-03-12 15:45:22

初学的还是head first java 好点,不管从心理上还是内容上来说。这本书当第二本看看很不错

Prince Rain 2011-01-28 10:53:28

以前学过了java,后来学c++,现在在重读这本书,感觉有些内容写得很不错的,特别是第一章,要学过java以后重读。

行者无疆 2010-12-09 15:46:35

正在读,阅读过程中对我自身有种开天窗的感觉,建议学Java的用心读一下

Revlekt 2010-10-04 18:39:54

同意最后提到那点缺憾,有些例子实在显得繁琐了,不够直观清晰。

yuzihan 2010-09-07 18:36:07

老实说,我觉得这本书确实不大适合初学者,做参考书很合适,初学者我推荐戴特尔的《JAVA大学教程》

risun 2010-07-26 16:31:10

刚买,准备看,谢谢

kuku 2010-06-27 18:12:56

听过很多人说起经典书籍Java编程思想,对于Java我已经学习且应用三年了。这次拿起这本书,感觉太简单,好像没有什么好看。有没有人指点我一下。

seven 2010-05-23 09:36:18

翻译在某些地方确实有点恼火。比如,全书本来应该翻译成“继承”或者“子类”最为合适的地方,全部翻译成“导出”;这要遇到一个初学者,他不发疯才怪。实在搞不懂,它要“导出”什么? 呵呵。

Chris 2010-04-28 02:29:09

 一.误读
  误读1:本书的翻译质量不太好,最好是阅读原版。
   Bruce知识渊博,诙谐幽默,原版当然有过人的地方。但是我想说,此书的翻译质量绝对非常不错,我还没有发现可能会引起误读的地方,也没有其它原版书籍译本常出现的语法错误,可以看出译者很用心。不妨做一下恶意的揣测,一些人宣称此书译版不好是以此炫耀自己的见识或者英文能力(我也有很多阅读译版书籍让人痛恨的经历,比如《洛丽塔》《现代操作系统》)。


============================

我想说的是,这书有些地方的翻译还是很影响阅读的(也许你所处的水平阶段不影响你的理解)。。。

当然,英文水平不好的人,此书也只能是最好的选择了。

idiot 2010-04-13 20:20:19

在看第三版,细节方面讲的比较清楚,在书中也涉及了其他oop语言的内容,一本学习java的好书

lightinglei 2010-03-23 21:47:09

留个脚印

低调的火 2010-03-14 20:03:42

09年1月22日买的此书,到现在(2010.3.14)还没看完!
是本很好的书。要用心看,否则,跟没看一样。每看一遍都会有不同的体会吧!绝对的经典才具有的魅力!

Simon.emacs 2010-01-09 18:39:07

我觉得满好的。。

S. 2010-01-09 18:31:36

@bobo 第一本呐?那感觉如何。。

Simon.emacs 2010-01-09 17:16:41

我当初学java的第一本书。。。。

S. 2009-11-21 15:44:17

@Mr. Yu 嗯。。对我来说的话,是先弄明白了JS再略微看懂了thinking in java
感觉以后好多东西也就基于web了嘛,就顺便学了JS

Yuguo 2009-11-19 11:38:39

@menie JS语言特性并没有提供面向对象的机制,我觉得还是从C++或者Java这种面向对象的入手,然后学习JS,能写出更好的代码。
而且,程序员学JS,难道是想做前端?

S. 2009-11-19 09:18:49

嗯,我现在觉得,如果学了JS,了解这种基于对象的语言,再学JAVA这种面向对象的效果会更好~我就是这么玩的。。

BangQ 2009-11-10 08:28:00

之前没有接触过JAVA的,建议第一章先跳过
书相当不错,但是不适合入门用

S. 2009-07-28 21:39:14

谢谢您的建议!
我第一章刚晦涩地读完。。

2009-04-30 18:49:44

这书其实很适合初学者,我就是读这个了解JAVA的,最初是读的第三版,读了两遍,几乎所有程序都有自己实践,现在买了第四版,决定,好好再继续的研究!


读这书需要的绝对是耐心和毅力。

Chrish_long 2008-12-17 13:28:00

这本书写的太好了,我读它时,几乎舍不得读快,怕读完了。绝对是经典中的经典。

Yuguo 2008-12-08 10:44:00

今年之内准备重读一遍

忘.惑 2008-12-08 10:15:24

我也这么觉得,很多东西,对初学者还是有点难的

小东 2008-12-05 12:04:49

对于从未接触过java的人来说,先找一本大学教材啃一遍后再来读这本书比较好。

Yuguo 2008-11-01 01:33:03

循序渐进地看 不要操之过急
可能会让没有耐心的你也觉得兴趣盎然~

[淪落婲瓣] 2008-10-31 23:27:03

这本,我一直在努力的想看进去,结果只是用来催眠~

我是一个很没有耐心的人,需要有人讲给我才可以.

所以,买来很久,却一直闲置...

Hanzongze 2008-10-02 20:17:38

好 我要看看~

trillion 2008-09-26 14:34:44

我初学,买了这本书,还没读,现在正在读java编程笔记,多谢你的建议。