内容


理论和实践方面的图书

Comments

Illustration “嗨,我的名字叫Gary,我是一个藏书家。”在此,我已经说过能够脱离开书架让我感觉非常好。也许,现在我可以开始恢复过程。

当涉及到书籍的时候,我立刻变得毫无力量。当我去书店时,我不能控制自己不去购买新的书籍,并且我不能够忍受放弃我所拥有的书籍。我们管理大楼的检查员已经警告过我,如果我再在阁楼上放入更多的书籍,天花板也许会崩塌下来。在伍斯特工学院不到两年的时间内,我几乎已经填满了我办公室的书架。无疑地,我已经沉溺其中。但是在我们的业界,藏书癖是我们需要面对的一个很好的难题。

作为软件开发专业人员,我们在从事一个知识密集型的产业-书籍是一个使我们可以持续提高知识水平及生存能力的方法。这个世界在飞快的变化,但是几乎没有什么领域像我们所选择的这个工作变化得如此之快。为了能够跟上这个变化,我们不仅需要阅读书籍,还要包括杂志、期刊以及互联网上的文章。技术出版物产业正在急速发展中,并且这个市场中充满了能够吸引不同口味的商品。在所有这些选择中进行选择的工作是几乎不可完成的,并且要浪费大量的时间;因此,能够对最适合你的需要以及学习风格的资源进行导向目标追踪是极其重要的。

为了帮助你完成这项工作,我将在下面描述我对一些面向不同读者的系列丛书的印象。这个列表决不是完备的,我对那些也许被我遗漏的出版商表示道歉。

从哪里开始

当你需要针对任何主题寻找一本书的时候,你从哪里开始呢?在电子产业革命以前,我们中的大多数人会去图书馆(还记得你曾经上过的那些关于如何使用图书馆卡片目录作检索的课程么?)而在今天,也许你首先去访问的地方会是互联网。类似于Amazon.com以及BarnesandNoble.com的站点可以让你快速查看大批的书籍。然后,通过鼠标的点击,你可以查看你所感兴趣书籍的详细资料,包括作者、发行人、系列丛书(如果有的话)、出版年份以及读者反馈。对于我的情况,我还会查看书籍的价格,以看看我是不是能够不带太多犯罪感地让我的学生购买这本书。

我也会寻找某些特定作者的书籍。我们都有自己的兴趣爱好,并且,如同对流行小说类以及非小说类的看法一样,对于技术性材料也确实是这样的。一些作者看起来好像是在专门为我写作一样。其他一些是被广泛尊敬的,并且在产业界建立了这样一种几乎是强制性的要将他们的书籍作为引文的地位。我们以前计算机科学专业的学生谁没有购买过至少一册Donald Knuth的 Art of Computer Programming,即使我们并不真正理解所有的内容?幸运的是,一些已确立地位的专家同时也是出色的作者。我最喜欢的两个是Grady Booch与Martin Fowler。我会去阅读他们所写的任何东西,因为我知道它会与我以及我的令人愉快的阅读经历有关。

我也会关注出版年代,这在我们产业界也是很重要的。任何超过3年以前的都是值得怀疑的,特别是描述特定工具或技术的书籍。如果你像我一样,你一定曾经购买过至少两三本Java的手册或指南,因为他们的生命期是如此之短。很少技术性的计算机书籍能够经受住时间的考验;上面提到过的 Art of Computer Programming 是极少的例外之一。我的大学数学书籍也一样。虽然在数学领域也有一些新的进展,例如对著名的四色定理的证明,1 但是基本的材料却保持不变。

我还会注意出版商。某些出版商擅长于特定的市场。作为一个教授,我工作内容的一部分就是找到那些最适合我所教课程的书籍。这需要研究不同的书籍以及出版商,包括与访问校园的出版商销售代表合作。我经常关注以寻找教科书的出版商及发行者是 Addison-Wesley, Prentice Hall, Benjamin Cummings, John Wiley & Sons 和 Morgan Kaufman。 高技术产业不是唯一正在巩固的市场。在这个列表上头三个名字现在是处于美国培生教育出版集团之下的。2 我也会寻找其它那些较少有人知道的,但是对我所教授的特定课程有着适合教科书的出版社。例如,我在一门关于经验式软件工程的研究生课程上所使用的教科书 -- Software Metrics: A Rigorous & Practical Approach Second Edition 由by Fenton 和 Pfleeger 所著 -- 就是从PWS出版社而来的。

系列的方法

当然,大学中或专业录领域内的大部分知识传递是通过专业书籍,而不是传统教科书进行的。着重于最新技术进展的书籍是很多的。例如,当我在Amazon.com上查找题名带有”XML”的书籍时,我找到了823个结果!查找题名带有”UML”的书籍时,共有293个匹配项。

你该如何决定这些书中的那一本才值得你去花时间阅读那?我倾向于依靠出版社所出版的不同系列。一旦我找到了一个拥有能让我引起兴趣的书籍的出版社,我通常发现我不必再去过多的寻找。我只需在我觉得最有用的那些系列丛书中简短地浏览一下就可以了。

对象技术系列丛书

作为 Rational Edge 的读者, 你也许非常熟悉来自Addision-Wesley,3 由 Grady Booch、Ivar Jacobson 和 James Rumbaugh 这三个好朋友所编辑的系列丛书。 如果你从事UML的工作,你也许曾经阅读过这个系列中最流行的一些书――关于UML及统一过程方面的详细介绍及描述。

当今,这个系列包括与软件工程相关的66个标题。其中一些非常适合作为大学课程教科书,但是大部分,在我的观点来看,更适合于那些对特定对象技术领域需要不仅仅是粗略理解的专业人员。

这个系列丛书的许多作者现在都是IBM Rational的雇员,其中一些书目讨论了特定的Rational产品。我立刻想起了两个例子:Philippe Kruchten 的 Rational Unified Process: An Introduction4 以及Eric Naiburg和Robert Maksimchuk所写的 UML for Database Design。如果你不是正在寻找特定的关于Rational的信息,你将需要钻研这本书的内容目录以看看是不是这本书的内容能够涵盖你的需要。

专业计算系列

Addison-Wesley的另一系列对我来说讲述了更多核心的东西。专业计算系列中的38本书籍充满了着重于计算机科学领域中的技术细节问题。如果你是一个软件开发专业人员或者是计算机科学专业的学生,你也许会发现这种级别的技术细节非常适合你的口味。

在这个系列中我最喜欢的是W. Richard Stevens 所著的 Advanced Programming in the UNIX Environment 。从这本书里,我学到了如何对UNIX系统编程,并且,一旦我需要编写依赖于UNIX系统性能的程序时,我就需要不断地参考这本书。

这个系列还包括也许是近二十年来在面向对象技术领域最有影响力的一本书:由Gamma 、Helm、Johnson以及Vlisside -- 也被称作四人组, 或者GoF所著的 Design Patterns: Elements of Reusable Object-Oriented Software 如果你是一个技术方面的读者,我相信你一定非常熟悉这本书的全部或部分内容。

软件模式系列

因为GoF书籍是如此成功,所以Addision-Wesley决定创建一系列专注于软件模式方面的书籍。模式非常热门,实际上它们已经成为建立软件以及通信系统的 事实 解决方案。在这个系列中,现在共有15本书,我希望能出现更多。我最喜欢的两个是Alan Shalloway与James Trott所写的 Design Patterns Explained 以及 Steven John Metsker所写的 Design Patterns in Java Workbook 。这两本书都曾帮助我理解模式,并且在我面向对象的分析与设计课程上,我使用了从中摘录的例子。

这个系列还包括1990年出版的 Pattern Languages of Program Design 第3卷, 那时,组织正在致力于确定对模式主题的定义及解决方案。

Head First 系列

去年我收到了来自O’Reilly 出版社的由Bert Bates及Kathy sierra所著的 Head First Java赠阅版。起初,我对其完全没有印象。我已经知道了如何用Java书写程序,我的学生也一样,因此这本书不能给我们提供什么东西。因此,我认为这个系列其余的书籍也会给我一样的感觉。我错了!

今年,我收到了 Head First Design Patterns一书,由 Elisabeth Freeman 等人所著。我比较了解设计模式,但是,我已经开始意识到要讲授好这个概念是多么困难。当我阅读这本书时,我真正地意识到Head First系列的价值。

这个系列具有独特的方法;它展示了如此多的、各不相同的能够将读者的全部大脑都调动起来的方法。如果你能够放开你所预想的关于一本优秀的技术书籍组成的概念,阅读是很令人愉快的。

这个系列中当前的五个主题,除去我已经提到过的两个,还包括关于Servlets和JSP,EJB的书和Java书籍第二版。我已经等不下去更多的主题出现。

开发人员笔记

这是来自O’Reilly的另一系列。5 它的任务是为使你能够更快速地开始使用某些技术或工具而提供一些基本指导。这些书展示了一名开发人员在学习如何使用某个工具或技术时也许会保留在笔记本中的信息种类。页面上甚至还会有你在开发人员笔记本上能够看到的同样的兰色小网格。

当你阅读一些新的、并且不太确定你需要对其了解多少的内容时,这些是很好的书籍。它们能够让你来到水边,让水浸到你的脚踝,然后使你能够了解你是不是真的想要跳进去。

在这系列中我所读到的第一本书是James Elliot所著的 Hibernate: A Developer's Notebook,然后我又得到了Niel M. Bornstein和Edd Dumbill所著的 Mono: A Developer's Notebook。对我来说,它们都是适合的水平,使得我能够得到这两种技术的应用知识。唯一的问题是作为每部分标题的重复性疑问。我对看到“发生了什么”以及“我该怎么办”等等感到厌烦。我所知道的开发人员没有一个会在笔记本上留下这样的标题。不过这仅仅是小烦恼而已。

如果你处于一个技术职位上,并且需要快速地对新技术达到熟悉的程度,我建议考虑这一系列中的任意一本。

Eclipse系列

Eclipse看起来像是席卷这个世界的风暴。幸运的,还有很多可用的书籍以帮助你学习这个平台,并且Addision-Wesley也有很好的关注于Eclipse的一个系列。这些书籍具有我认为非常有用的一致性的方法和质量,以帮助我们从开发人员角度理解这个复杂的、功能强大的Eclipse平台。在WPI,在我们的软件工具技术组图书馆内我们有其中的几卷。学生可以借阅它们,并且可以学习他们所需要的使用和建立产品插件的技能。

在Eclipse系列中的书籍是面向不同等级的技术人员。如果你是Eclipse的新手,我建议你使用一本类似于 JavaDeveloper's Guide to Eclipse第二版, 由 Jim D'Anjou et al所著。这能给你一个很好的关于Eclipse的基本知识,并使你能够很好的利用这个系列中其余的部分(例如来自Manning Publications,David Gallardo所著的 Eclipse in Action )。与David Carlson所著的 Eclipse Distilled,与Eclipse系列中的入门级书籍相比,这是一个更好的对于这项技术的的全面介绍。

当你对Eclipse平台感到非常舒适的时候,这一系列书籍确实早晚能派上用场。如果你将编写你自己的插件,Eric Clayberg 和Dan Rubel所写的, Eclipse: Building Commercial-Quality Plug-Ins 与 Erich Gamma and Kent Beck 所写的 Contributing to Eclipse 一样,都能够帮助你快速开始你的工作。 在我的观点中,第一本书是当前所有的Eclipse插件书籍中最好的一本。另外两本我在这一系列中要高度推荐的是 Steve Northover 和 Mike Wilson 所著的 SWT: The Standard Widget Toolkit以及 Eclipse AspectJ, 由 Adrian Colver et al所著。如果你正在编写使用SWT的程序,包括独立的应用、Eclipse插件或是关于Eclipse提供的多用户平台(RCP)的应用,前一个标题将非常有帮助。第二个标题是我所读过的关于AspectJ及面向方面程序设计(AOP)方面的最好的介绍。

In Action 系列

我想要提及来自Manning 出版社的最后一个系列,包括前面提到过的David Gallardo所著的 Eclipse in Action,Ramnivas Laddad所著的 AspectJ in Action ,Christian Bauer和Gavin King所著的 Hibernate in Action ,等等。与O’Reilly开发人员笔记一样,这些书由关于如何快速获得工具以及技术能力的信息构成,抛弃了直至掌握了基础知识时你也许都不会在意的细节问题。

超越系列

还有更多的可利用的系列书籍,超出了我在这里能够描述的篇幅限制,但是它们并不是唯一的可以找到你感兴趣主题的书籍。虽然我通常首先查阅这些系列,我也会查看来自wiley和Prentice Hall的出色的技术书籍,它们并 不是 某一系列的一部分。当我浏览这些公司的网站时,我会去看特定的教科书区域,这相对容易完成并且通常值得花费努力。Wiley也在Wrox 出版社之下发行大量的关于很广泛主题的书籍。6 这些书籍具有一致的外貌和感觉,并且对于学习某些特定的技术而言,例如Java,非常适合。一些我以前的IBM Rational的同事非常信赖这些书,因为它们以一种非常容易理解的方式展示材料。他们声称这些书能够帮助他们非常快速地掌握某些技术。

超越文章

还有必要提一下正在进行中的,以电子版方式向读者提供书籍的趋势。Safari在线图书也许是最流行,最完善的站点。7 它拥有来自我已经提到过的出版商,加上更多的,例如 Sams、Microsoft Press 以 Sun 所提供的图书。一些学校,例如WPI已经向Safari做出捐赠,使得校园中的任何人都可以访问这些图书;商业领域不久也将会向着这个方向发展。

专业协会,例如 ACM 和 IEEE,向它们的成员提供数字化图书馆,包括数以百记的关于当前技术的电子图书,以及这个组织的大部分期刊。多数大学都提供对这些数字化图书馆的公共访问。

然而,不论他们具有什么样的优点-快速访问、最小化的物理存储空间需求、以及良好的检索能力-数字化图书馆并没有向一些人预想的那样占据主导地位。为什么呢?我猜也许仅仅是因为人们更喜欢真实的图书。他们喜爱图书的感觉。他们喜爱图书翻页的声音。他们发现打印出来的单词对眼睛来说比电子化呈现出的单词更容易阅读。并且,最后他们喜欢能够在书上书写标记。

我确信我们能够在未来找到方法克服这些障碍。我近来看到一个有意思的开源产品,叫做 ThoutReader,它能够使你在电子图书以及其他电子化文档上上做标记。8 虽然它还没有大量的发布,但是它有很大的潜力。

最后的思索

在我的专栏中没有足够多的空间以讨论所有的技术性图书出版商。有时,我从一个很小的出版商找到真正的珍宝,例如我前面提到过的PWS出版的metrics图书。总的来说,我发现投入大量的时间去寻找我感兴趣的图书对我来说是值得的,并且,这些图书将帮助我的学生学习并提高他们的技能。

记住,虽然图书并不仅仅是为了学术的,但是它们对于我们在IT产业的生存是极为重要的。我们中的大部分人并不是处于技术的领导边缘,但是,当一个新的技术出现时,谁能够首先应用它,谁就能够在市场取得胜利。

我以前并不总是一个流行的追逐者。实际上,有的时候我曾经被流行技术甩在身后。我还记得我对Java和XML的成功曾经是一个怀疑论者。当它们很明显的已经成为了技术的主流,我几乎不能忍受需要花费如此多的时间以能够胜任关于它们的工作。我求助于图书。现在,我处于学术界,我必须依靠图书以保持在新技术的顶峰。如果我不这样做,学生们真的会使我看起来很愚蠢。

是的,我是一个藏书者。我爱图书,因为它们帮助我,使得我能够跟上我需要了解的关于专业的知识。它们帮助我开阔眼界,学习我自己特定领域之外的知识,它们还是一个很好的放松方法。

现在,如果我能够说服我的妻子在房子上再加一两间房子作为图书储存室的话......

注释

1 See http://mathworld.wolfram.com/Four-ColorTheorem.html

2 See http://www.pearsoned.com/higher-ed/index.htm

3 Addison-Wesley 有许多系列书。索引参见http://www.awprofessional.com/series/

4 本书目前是第三版。反映了自从第一版之后对RUP所作的变化。

5 See http://devnotebooks.oreilly.com/

6 See http://www.wrox.com/WileyCDA/

7 See http://www.safaribooksonline.com

8 See http://www.osoft.com


相关主题

  • 您可以参阅本文在 developerWorks 全球站点上的 英文原文

评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=161846
ArticleTitle=理论和实践方面的图书
publish-date=05312005