程序员提高英语

今天逛了论坛,发现自己一个莫大的错误。到现在为止才发现英语对程序员是多么的重要,。看了一些介绍,觉得最好学习英语的方法就是阅读计算机原著。
在这里,我转载搜狐博客博艺斋的博文,原文链接为http://dream4u.blog.sohu.com/57945005.html

程序员必读10大原版计算机图书,但是这里只有其中的6本



1. 《Foundations of Computer Science》(《计算机科学导论》)

首推的是计算机教育专家和网络权威Behrouz A. Forouzan编写的《Foundations of Computer Science》(《计算机科学导论》),这本书是欧美许多大学计算机专业低年级学生的必读教材。我2003年应机械工业出版社之邀,翻译了该书,对这部书最为了解。该书出自名家手笔,行文流畅,浅显易懂,结构清晰,知识全面,相当于一部计算机科学的百科全书。一方面,该书篇幅不长,内容不难,没有阅读压力;另一方面,该书涉猎的计算机领域较广,术语丰富,有利于掌握计算机英语的词汇和风格。作为程序员原版书阅读的入门之选,这本书当之无愧。

Forouzan毕业于加州大学,现在是迪安那大学教授,从事计算机信息系统专业的课程设置。此外,他还是多家公司的系统开发咨询顾问。Forouzan是一位国内外闻名的计算机作家,他写的《Computer Science: A Structured Approach Using C++》(《计算机科学——C++软件工程方法》)、《TCP/IP Protocol Suite》(《TCP/IP协议族》)等著作早被介绍到国内,其中清华大学出版社引进的《TCP/IP Protocol Suite》,不仅有谢希仁院士翻译的中文版,还有影印版。该书也是值得推荐的原版经典计算机图书之一。

2.《Art of Computer Programming》(《计算机程序设计艺术》)

第2部推荐的是学术泰斗Donald E.Knuth(中文名高德纳)的鸿篇巨著《Art of Computer Programming》(《计算机程序设计艺术》)。该书被业界视为计算机领域的圣经,并获得过计算机科学领域的最高奖项——图灵奖。1999年该书被American Scientist列为20世纪最佳12部学术专著之一,与狄拉克的量子力学、爱因斯坦的相对论、曼德布罗特的分形论、鲍林的化学键、罗素和怀特海德的数学基础、冯诺意曼和摩根斯坦的博弈论、维纳的控制论、伍德沃和霍夫曼的轨道对称性、费曼的量子电动力学等科学史上的经典著作齐名。

《Art of Computer Programming》内容博大精深,通过对不同应用领域中各种算法的分析,探讨具体算法适用的问题和各种具体问题宜用的算法。其关于算法分析被公认为经典计算机科学的定义性描述。

作者高德纳几十年来对此书倾注的心血难以计量,他力求随着有关领域的最新进展不断更新内容,他为了能够满意地随时修订自己的著作,甚至发明了计算机排版系统TEX和字形设计系统METAFONT。经过多次修订,其最新印次已很难找到错误。阅读该书,不仅可以领略作者严谨的治学风格,精微的科学语言,还可窥探到大师毕生追求的完美学术境地。

该书已被翻译为几十种文字在世界各地出版。机械工业出版社2006年引进该书最新版本,出版了《计算机程序设计艺术》双语版(4卷本),并由著名计算机科学专家、暨南大学教授苏运霖翻译,中英文对照,方便了国内读者学习。这在我国IT出版界尚不多见。

实际上原版《Art of Computer Programming》并不易于阅读,除了要求读者有一定学术和语言功底之外,最关键的是需要有较大毅力,发宏愿,竭心力而为之。类似于古卷青灯之中研经读史,苦寂之中悟得真谛,煌煌钜著成就高手。好在有双语版问世,在鉴赏大师原文原著的同时,能受益于国内专家的中文辅助,对于向往原版书阅读的读者也是一大福音。

 

《计算机程序设计艺术(双语版)》机械工业出版社机械2006年出版

《计算机程序设计艺术(英文影印版》清华大学出版社机械2002年出版


3.《Design Patterns: Elements of Reusable Object-Oriented Software》(《设计模式:可复用面向对象软件的基础》)

四人帮(文献上常用GoF)Erich Gamma、Ralph Johnson、Richard Helm和John M. Vlissides合著的《Design Patterns: Elements of Reusable Object-Oriented Software》(《设计模式:可复用面向对象软件的基础》)可以说大名鼎鼎,无人不晓。但是真正通读过该书的人并不多,这是因为该书源自一篇博士论文,篇幅不厚,却字字珠玑,博大精深,体现了作者言简意骇,惜字如金写作风格。因此,该书非细嚼慢咽而不能读也。

2004年我为了写作《Delphi模式编程》而重新研读了该书原版,发现该书与中国古代建筑学经典著作《营造法式》有异工同曲之妙。十分有趣的是GoF在《设计模式》一书中归纳出模式的四个基本要素为:pattern name(模式名称)、problem(问题)、solution(解决方案)、consequences(效果);而李诫的《营造法式》则分为释名、各作制度、功限、料例和图样5部分。通过对比我们不难发现,其中释名相当于“pattern name”,给出模式的定义,便于交流和记忆。各作制度相当于“problem”,描述了应该在何时使用模式。它解释了设计问题和问题存在的前因后果,它可能描述了特定的设计问题。功限相当于“consequences”,描述了模式应用的功效及使用模式应权衡的问题。料例和图样相当于“solution”,是解决所阐述问题的一个构造或配置。

品读英文原版,在优雅的行文之间,你会有一种阅读先秦诸子散文感觉,简约的文辞蕴藏着穿透字面的真知灼见,让你不得不进行深入的思考,否则你将陷入晦涩之中难以续读。

该书作者认为类比和联想可以帮助读者谙悉模式的奥秘。书中写到:“An analogy will help illustrate the point. Novelists and playwrights rarely design their plots from scratch. Instead, they follow patterns like ‘Tragically Flawed Hero’[2] (Macbeth[3], Hamlet[4], etc.) or ‘The Romantic Novel’ (countless romance novels). In the same way, object-oriented designers follow patterns like ‘represent states with objects’ and ‘decorate objects so you can easily add/remove features.’Once you know the pattern, a lot of design decisions follow automatically.”(以下类比可以帮助说明这一点。小说家和剧本作家很少从头开始设计剧情。他们总是沿袭一些业已存在的模式,像“悲剧性英雄”模式(《麦克白》、《哈姆雷特》等)或“浪漫小说”模式(存在着无数浪漫小说)。同样地,面向对象设计员也沿袭一些模式,像“用对象表示状态”和“修饰对象以便于你能容易地添加 /删除属性”等。一旦懂得了模式,许多设计决策自然而然就产生了。)实际上,这也正是作者写作最成功的地方。

我在外国网站看到很多读者用尽赞誉之词力荐该书,例如:“this beautifully-written book is something quite different, a book of design patterns which prescribe simple solutions to the problems programmers face in object-oriented software design.”“This is the OO programmer's Bible, don't miss it.”使用的竟是beautifully-written book、programmer's Bible这样的词汇。如果要让我来用中文来评价该书,那么我会用“文辞渊懿”四个字。由于对该书的偏爱,我专门节选片断作为拙作《计算机英语(第2版)》中的课文,以便更多立志掌握计算机英语的读者鉴赏。

在这里我也不想多谈设计模式对于面向对象编程的重要性,关于设计模式现在已有太多的作品问世。但我想,面对这样一本好书应该像读经书那些去研读,除了手头常备一本牛津(Oxford)或朗文(Longman)字典外,还要准备其他解说设计模式的参考书,甚至莎士比亚戏剧集。

《设计模式:可复用面向对象软件的基础(英文影印版)》机械工业出版社机械2002年3月出版

4.《The Unified Modeling Language User Guide》(《UML用户指南》)

除了模式四人帮外,UML三剑客的巨著也是程序员必读的经典。 Grady Booch、James Rumbaugh和 Ivar Jacobson合著的《The Unified Modeling Language User Guide》奠定了UML在业界的重要地位,是UML用户的权威指南。

Grady Booch 、IvarJacotson和JamesRumbaugh是世界公认的UML创始人。这三个人对开发对象技术做出了许多重大的贡献,包括对象工厂(OOSE)过程、Booch方法和对象建模技术(OMT)等。《The Unified Modeling Language User Guide》倾注UML三巨头的毕生心血,尽管他们分分合合,但对UML的贡献始终如一。历经十载,UML已经成为软件业首肯的重要标准之一。UML作为事实上的标准建模语言,有力地促进了项目相关人员之间的沟通,大大降低了沟通中出现混乱的几率。而UML 2.0规范更进一步扩展了UML这门语言的适用范围和生命力,其内在的丰富表现力使得用户可以为任何应用建模,从企业信息系统、基于Web的分布式应用,直到实时嵌入式系统。阅读英文原版,不仅有助于了解最新的UML基础知识,还可以掌握大量UML的术语、规则和语言特点,以及如何运用该语言去解决各种应用领域中的复杂建模问题。事实上,我们在使用UML建模中英语才是工作语言,一些术语很难对应于中文,也没有必要翻译成中文。以前在网上曾经发生case 是应该翻译成“用况”还是“用例”的争论[5],其实完全没有必要,在国内IT术语中译难以统一的情况下,看原版才最为明白!

令人高兴的是三剑客能聚首再出该书第2版,新版中不仅保持了第1版论述全面深入、实例丰富的特点,更彻底更新了内容以符合UML 2.0规范。


5.《System Analysis and Design Methods》(《系统分析与设计方法》)

《System Analysis and Design Methods》是我最早读到的国内英文影印版图书之一。当时2001年高等教育出版社出版了一套原版影印丛书,名为“国外优秀信息科学与技术系列教学用书”,给我留下很深影响。《System Analysis and Design Methods》是其中的一本。

 

这本书吸引我的是别具一格的案例教学。全书采用一个完整的案例研究,以整个信息系统构件(基于Zachman框架)和信息系统开发生命周期(FAST方法学)为主线,详细探讨了系统开发生命周期以及跨生命周期的活动。另外,书中每一章都提供了大量的练习题、讨论题、研究题和小型案例,以加深读者对书中所述理论的实际应用和掌握。特别是该书既能结合传统方法(如结构化分析和信息工程),也能推介最新方法(如面向对象分析、敏捷开发和快速应用开发)来指导系统分析与设计,有利于开拓视野,全面了解信息系统分析和设计原理、方法、技术、工具和应用。这也是为什么该书自问世以来能够广受欢迎,以至于一版再版,延续至今的奥秘。

即使是阅读英文原版,书中每一章中大量的情景案例,也都生动翔实,引人入胜,绝无一般教科书的乏味。该书的内容组织和写作手法对于我国目前高校中教材僵化,课堂沉闷,教学与实践脱节的教学模式无疑是最好的借鉴。

这本书的英文并不是很难,大约CET4级水平就可以流利阅读80%内容。一些案例教学的情景对话很口语化,并有大量图解。该书适合双语教学,对于有志成为系统分析师和设计师的程序员,则更值得一读。  

   

《系统分析与设计方法(英文影印版·第5版)》高等教育出版社2001年5月出版

《系统分析与设计方法(第6版)》中文版 机械工业出版社机械2004年8月出版


6. 《Agile Software Development》(《敏捷软件开发》)

 设计模式的作者之一John Vlissides 评论《Agile Software Development》时说过:“这大概是第一本将敏捷方法、模式和当代软件开发基础糅合在一起的书。当Bob Martin[6]发言的时候,我们最好洗耳恭听。”  

是的,我很早以前就在洗耳恭听Bob 大叔的发言。我最早是在Object Mentor公司的网站(http://www.objectmentor.com/ )上下载他的文章,后来读到原版的《Agile Software Development》,发现这本书正是他那些文章的汇总和升华。

那个Bob 大叔就是敏捷开发创始人之一的Robert C.Martin。他创建了Object Mentor公司,领导这一支经验丰富的软件咨询团队,其本人也是享誉全球的软件开发专家和软件工程大师。

《Agile Software Development》汇集了顶级高手敏捷软件开发的宝贵经验,当之无愧地荣获了2003Jolt大奖。这本书的中译版在国内也很畅销。不过我还是强烈建议阅读原版,在原汁原味中才能够真正体会到这本书的精妙之处。

本书的核心价值在于以创建美的软件为最高享受。作者在书中针对每个案例,都会和你一起思索、 一起探讨、一起权衡、一起验证。展示的是为追求软件设计之美而反复思索、权衡、折中、选择的一个个完整的设计活动过程。这里面包含着Agile方法、面向对象设计原则、各种设计模式以及UML的应用。

追求软件之美应该是每个软件开发人员遵循的首要原则和努力目标,正如Robert C. Martin在该书中文版给中国读者的序言中写道的那样:

There is a secret that the best software developers know. Beauty is cheaper than ugliness. Beauty is faster than ugliness. A beautiful software system can be built and maintained in less time, and for less money, than an ugly one. Novice software developers don't understand this. They think that they have to do everything fast and quick. They think that beauty is impractical. No! By doing things fast and quick, they make messes that make the software stiff, and hard to understand. Beautiful systems are flexible and easy to understand. Building them and maintaining them is a joy. It is ugliness that is impractical. Ugliness will slow you down and make your software expensive and brittle. Beautiful systems cost the least to build and maintain, and are delivered soonest.(最好的软件开发人员都知道一个秘密:美的东西比丑的东西创建起来更廉价,也更快捷。构建、维护一个美的软件系统所花费的时间、金钱都要少于丑的系统。软件开发新手往往不理解这一点。他们认为做每件事情都必须要快,他们认为美是不实用的。错!由于事情做得过快,他们造成的混乱致使软件僵化,难以理解。美的系统是灵活、易于理解的,构建、维护它们就是一种快乐。丑陋的系统才是不实用的。丑陋会降低你的开发速度,使你的软件昂贵而又脆弱。构建、维护美的系统所花 费的代价最少,交付起来也最快。)

感谢Robert Martin为我们写了一本如此优秀的著作,通过阅读原文我们是不是更能进入软件之美的境地呢?

 

《敏捷软件开发(英文影印版)》中国电力出版社2003年5月出版





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值