Thinking in Java 附录之推荐书籍

陈昊鹏等翻译自Thinking in Java 第三版

书籍
Thinking in Java, 2nd Edition。本书所附光碟里就有此书,这是一个包含了完整索引并以颜色突出语法的HTML版本。你也可以从www.BruceEckel.com 免费下载。它还包含了一些没有收录到第三版的内容;详细情况请参考书中的目录。
Thinking in Java, 1st Edition
。本书所附光碟里就有此书,这是一个包含了完整索引并以颜色突出语法的HTML版本。你也可以从www.BruceEckel.com 免费下载。它还包含了一些比较旧的、不适合被放进第二版的内容。
Just Java 2, 5th edition by Peter van der Linden (Prentice Hall, 2002)
。这本书不仅实用而且非常生动。作者的方法常常与我不谋而合,坚持通过问题来发现完整的细节,所以它常常能给你一些在别处找不到的答案。
Core Java 2, Volume I—Fundamentals (Prentice-Hall, 1999)
Volume II—Advanced Features (2000), by Horstmann & Cornell. 巨大并且全面。每当我需要寻找某些答案时,就会想到它们。当你读完《Thinking in Java》,需要更进一步时,我推荐这两本书。
The Java Class Libraries: An Annotated Reference, by Patrick Chan and Rosanna Lee (Addison-Wesley, 1997)
。尽管内容有些过时,但这是你应该拥有的JDK参考书:详细的说明令其使用起来非常方便。《Thinking in Java》的一位技术评审曾经这么说:如果我只能有一本Java 书,那就是它了(哦,当然,除了你那本之外)。我并不像这位评审那样兴奋。这本书很庞大且昂贵,其中提供的示例品质并不能令我满意。不过你要是遇到某个疑难问题,这本书能提供比其它可供选择的书籍更深入(也更厚)的解答。
Java Network Programming, 2nd Edition, by Elliotte Rusty Harold (O’Reilly, 2000)
。直到阅读了这本书,我才开始理解Java的网络机制。我发现了作者的网站Café au Lait,它为Java开发提供了令人兴奋、有主见、最新潮的观点,而且没有任何厂商色彩。作者会定期更新网站内容,以跟上Java快速变化的各种新闻。请参考www.cafeaulait.org
Design Patterns, by Gamma, Helm, Johnson and Vlissides (Addison-Wesley, 1995)
。在程序设计领域发起设计模式运动的开山之作。
Practical Algorithms for Programmers, by Binstock & Rex (Addison-Wesley, 1995)
。书中算法以C实现,也很容易转换成Java。每个算法都有详细说明。

分析与设计
Extreme Programming Explained, by Kent Beck (Addison-Wesley, 2000)。我爱这本书。是的,我倾向于采用激进的方法来解决问题,但我总觉得应该会有与众不同、更好的软件开发过程,我认为XP已经很接近这个标准了。另一本对我有同样震撼的书是《PeopleWare》(后面介绍),它主要探讨环境和团队文化中的协作。《Extreme Programming Explained》探讨的是程序设计,它要推翻为人所知的绝大多数方法,甚至是最新的研究发现。他们甚至非常激进,声称任何有关项目的全景描述只要没有花费你太多的时间,而且你愿意将它们丢掉,那么它们就是好的选择。(你会注意到这本书的封面上没有“UML认证标志)。我会以某家公司是否采用XP来决定是否为他们工作。这本书短小精悍,章节很短,读起来很轻松,而且能够激励思考。你可以开始想象自己工作在这样的环境中,它会带给你全新的视野。
UML Distilled, 2nd Edition, by Martin Fowler (Addison-Wesley, 2000)
。初次接触UML时,你大概会有畏难情绪。因为里面充满了各种图和细节。根据Fowler的说法,其实大部份内容都非必要,所以他直接讨论本质内容。对大多数项目来说,你只要把少数几种图作为工具就够了。Fowler关注的是拿出一份好的设计,而不是要得到这一份好设计所需要的全部制品。这是一本优秀、短小精悍、易于阅读的书籍;如果你需要理解UML,这本书是首选。
The Unified Software Development Process, by Ivar Jacobsen, Grady Booch, and James Rumbaugh (Addison-Wesley, 1999)
。我原本做好了不喜欢这本书的打算。此书似乎具有烦人的大学教科书才有的所有特征。但是我惊喜地发现,全书不仅脉络清晰,而且令人愉快。尽管书中有几个概念似乎作者也不甚明了。其中最好的一点是,整个过程非常具有实用价值。这不仅是XP,也是UML 的强大力量之一。即使你无法接受XP,但在大多数人已经搭上“UML 就是好的顺风车(且不论他们实际经验如何)的情况下,你也许会接受本书。我认为此书应当是推广UML的旗舰。当你读完Fowler的《UML Distilled》,还准备深入学习的话,可以选择这本书。
在选择任何方法之前,先听听立场中立人士的看法,会很有帮助。人们往往在尚未真正了解自己的需要,或尚未知道某种方法能为你做什么之前,就轻率地作出选择。别人正在使用,听起来似乎很有道理。不过,人们常有一种奇怪心理:如果他们想要相信某种方法真能解决问题,他们就会去尝试(这种实验态度很好),但如果不能解决问题,他们便可能加倍努力并开始大声宣称,他们发现了很伟大的东西(这种拒绝承认的态度不好)。这里的假设是,如果有一些人和你在同一艘船上,你就不会感到孤单,哪怕那艘船正驶向未知的地方(甚至正在下沉)。
我并不是在说所有方法学都没有前途,而是提醒你应该用某种理念来武装自己,这种理念能够帮助你坚持实验模式(这种方法不可行,让我们试试其它方法),并摆脱否认模式(不,这其实不是问题。一切都是那么美好,我们不需要改变)。我认为在你选择某种方法之前,应该先阅读下列几本书,它们会带给你这种理念。
Software Creativity, by Robert Glass (Prentice Hall, 1995)
。在完整地从方法论角度进行讨论的书籍中,这是我见过最好的一本。本书集合了Glass 所撰写或获得(P.J. Plauger是其中一位作者)的许多小品文和论文,这些文章反映出他多年来对这个课题的思考和研究。这些文章十分有趣,而且长度适中;既非漫无目的,也不会让你感到无聊。作者也不是毫无根据,其中引用了数以百计的其它论文和研究报告。所有程序员和管理者在陷入方法论的泥沼前,都应该好好阅读这本书。
Software Runaways: Monumental Software Disasters, by Robert Glass (Prentice Hall, 1997)
。这本书最出色的地方是,它直接把我们带到以前从未讨论过的软件开发的最前沿:有多少项目不仅失败了,而且是一败涂地。我发现大多数人仍然认为这不可能发生在我身上,或是这不会重演,这种侥幸心理会使我们处于劣势。要把任何事都可能出错牢记在心,这样才能以更好的心态使事情向正确的方向发展。
Peopleware, 2nd Edition, by Tom Demarco and Timothy Lister (Dorset House, 1999)
。这是必读书目。它不仅有趣,而且会动摇你的世界观,摧毁你不切实际的假设。虽然书中的背景是软件开发,但其讨论的内容适用于一般项目和团队。其重点放在人及人的需求,而不是技术和技术的需求上。作者所讨论的是如何建立一个让人们能够快乐工作并且有高生产率的环境,而不是讨论这些人应该遵守哪些规则才能成为称职的机器零件。我认为正是后一种态度,造成了程序员在采用某种方法的时候先拍手叫好,然后并不作出任何改变。
Secrets of Consulting: A Guide to Giving & Getting Advice Successfully, by Gerald M. Weinberg (Dorset House, 1985)
。一本很棒的书,我最喜欢的书籍之一。如果你准备当一名顾问,或者想与顾问合作愉快,请选择本书。书中的章节很短,里面有很多故事和轶闻来引导你如何付出最小的代价来看清问题的实质。也可以参考《More Secrets of Consulting》,2002年出版,或其它Weinberg的作品。
Complexity, by M. Mitchell Waldrop (Simon & Schuster, 1992)
。这本书记录了一群来自不同领域的科学家,聚集于新墨西哥州圣达菲(Santa Fe),一起讨论他们各自学科领域无法解决的现实问题(经济学里的股市问题、生物学里的生命起源问题、社会学里的人类行为问题等等)。凭借跨越物理、经济、化学、数学、计算机科学、社会学、以及其它学科的方式,针对这些问题发展出一套学科交叉的解决方案。更重要的是,思考这类极复杂问题的另一种方式正在成形:抛弃数学决定论以方程式预测所有行为的错误认知,迈向先观察、找出模式、试着以任何可能的手段仿真的方式。比如,书中记录了遗传算法的面世。我相信,这种思考方式对我们研究和管理日益复杂的软件项目十分有用。

Python
Learning Python, by Mark Lutz and David Ascher (O’Reilly, 1999)
。一本针对程序员的入门读物,也是我最喜欢的程序语言,和Java配合效果更好。本书还包括对Jython的介绍。使用Jython,你可以将JavaPython整合进同一个程序(Jython解释器能产生Java字节码;所以不用加入任何特殊操作就可以达到目的)。这个语言的相关组织承诺将为我们带来最大的可能性。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值