∪∩deniable Design

个人JAVA版GAE(google app engine),struts2+jpa+jQuery开发,互相交流 http://iunbug.appspot.com/
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

     摘要: 3000 Most Commonly Used Words in the English Language (USA) Discussion of the 3000 Words List This is a list of the 3000 most commonly used words in American newspapers and popular mag...  阅读全文

posted @ 2008-08-22 22:42 ∪∩BUG 阅读(7604) | 评论 (9)编辑 收藏

作者:刘 艺


        干程序员是一项很辛苦的工作,要成为一个高水平的程序员尤为艰难。这是因为计算机软件技术更新的速度越来越快,而这些技术大多来源于英语国家,我们在引进这些技术时往往受到语言障碍的制约,严重影响到对新技术的理解和消化。首先编程本身就依赖于英语,虽然现在技术的发展,可以使得某些开发工具在变量名和字段名中支持中文,但还未发现能够完全使用中文的编程语句。其次,软件开发中的技术文档和资料大都是来自英文,即使有翻译好的,不是晦涩难懂,就是译法混乱,比如:roll back就有“回滚”、“回退”、“返回”、“重算”等多种译法,又如我们遇到翻译后的术语“域”,往往不清楚译者是根据“field”、“region”还是“domain”所译(如果阅读原文则不存在这些问题)。还有更重要的一点,这就是等待译文会严重影响我们掌握新技术的时间。通常,一本外版计算机图书从获得版权到翻译出版要一年的时间。就算原作者消化新技术和写作的时间最短为一年,那么加起来这已经超过通常软件版本的更新周期(软件版本的更新周期一般是1年至2年),这意味着当你通过阅读翻译资料掌握这一版本的软件时,可能该版本已经淘汰至少是面临淘汰。当然,这并不是说国内没有好的译者和译文,也不是说不能通过阅读译文来进行学习。而是说通过别人翻译的间接阅读风险较大,如果能掌握计算机英语,利用第一手原文资料进行学习,除了效率之外,被误导的风险较小。比如:国内引进的一部外版好书《Java编程思想》(原书名《Think in Java》),第一版翻译水平较差,就严重影响了阅读和学习,不少读者深有体会(注:《Java编程思想》第2版和第3版的翻译水平较高)。如果读着有着过硬的计算机英语水平就可以按照书上提供的作者网址下载原文阅读,不但可以获得原汁原味的感受,还可以免费下载该书最新版。

        因此,我们可以得出这样的结论,干程序员这行实在是离不开英语。实际上,可以毫不夸张地说英语是IT的行业语言。由于英语的优势,印度、爱尔兰等国的软件业在国际上比我们更有竞争力,这并不是说我们的程序员在编程和开发能力上不如别人,而是在使用计算机英语水平上差距太大。不久前在南京举办的一次高规格的软件开发交流会上,就遇到过印度专家讲课,英文翻译译不下去的情景,因为太多的IT专用术语和缩略语以及很强的专业知识使得没有计算机背景的英语专业翻译无能为力,而在场的开发人员因为语言障碍又无法和印度专家直接沟通,错过了一次极好的交流学习机会。现在,已经有越来越多的程序员意识到计算机英语的重要性了,这种压力一方面来自进一步向高级程序员或资深IT开发人员发展的需要,一方面来自于后起之秀不断竞争的威胁。对于前者,没有较好的计算机英语,能难进一步发展,晋升到更高的技术职位;对于后者,不少大学已经开始使用原版教科书进行专业授课,毕业生的计算机英语水平实在是后生可畏,挑战是不言而喻的。

        那么,一个程序员应该怎样去学习和掌握计算机英语呢?是立即开始背英汉计算机字典还是先考完6级再考“托”考“G”?其实,在下定决心之后最关键的是要搞清6个W,即:为什么学(why)、学什么(what)、怎样学(how)、何时学(when)、何处学(where)、跟谁学(who)。下面我们就谈一谈这6个W。

        首先是为什么要学计算机英语。几乎所有的程序员都知道学习计算机英语的重要性,但并不是所有人都具有学习的主动性。这个问题的提出就是要让我们从自身的需求出发,掌握学习的主动性。一旦你有强烈的学习动机,任何学习上的困难都不会认你屈服,而你的每一点进步都将给你带来无比自豪的感觉。

        学什么,是死背单词?还是猛抠语法?其实都不是。计算机英语的学习是一项系统工程,需要找到一个适合自己的学习目标,并从词汇、语法、阅读、写作多方面去融汇贯通。用程序员的术语讲,“学什么”的问题本质上是一个“确定系统边界”的问题。应为学习计算机英语是一个很宽泛的概念,若不根据个人的具体情况进行定义,恐怕难以有一个可以管理学习目标。无目标的或边界不清的项目往往是失败的项目,在学计算机英语的问题上也是一样。因此,我们先要根据自己的实际英语水平和工作需要界定计算机英语学习的系统边界。关于实际英语水平,我们可以简单地以大学非英语专业的英语教育作为参考,以通过大学英语四级考试(CET4)作为基线,即如果你通过了CET4,则表明你的英语水平为中高级,词汇量接近5千,不存在基本的语法问题,有一定的读写能力;如果你没有通过CET4,则表明你的英语水平为初中级,词汇量不足4千,可能存在一些语法问题,读写能力较弱。关于工作需要,我们可以将计算机英语学习对象划分成计算机研发人员、泛IT人员。其中计算机研发人员是指从事计算机研究和开发的专业人员,他们又划分为软件研发和硬件研发,显然程序员是属于前者。计算机研发人员要掌握的计算机英语最专业,要求最高,但软件硬件各有侧重。泛IT人员是指在IT行业从业的或与IT行业有密切联系的那些非研发人员,包括操作使用人员、技术管理人员、支持服务人员等等。不难看出,泛IT人员对计算机英语的要求不是太高,也不太专业,一般能够使用英文界面的软件,能够阅读原版的操作手册和说明书即可。针对以上的划分,我在下表中大致给出了计算机英语的学习目标:




计算机英语的学习目标

  

  初中级 中高级 
泛IT行业人员 掌握计算机英语的基本术语;
了解计算机英语中常用的语法和惯用法;
能借助字典阅读英文界面和在线帮助以及简单的操作手册,阅读熟读在70-90词/分钟。
 掌握计算机英语的常用术语和缩略语;
掌握计算机英语中语法和惯用法的表达方式和功能;
能借助字典阅读英文文档和技术资料,阅读熟读在100词/分钟以上;
能使用英文编写简单的文档。
 
计算机研发人员 掌握计算机英语的常用术语和缩略语;
熟悉计算机英语中的语法和惯用法;
能阅读英文界面和在线帮助以及简单的操作手册,阅读熟读在80-100词/分钟。 
 掌握大量的计算机英语术语和缩略语;
熟练掌握计算机英语中语法和惯用法的表达方式和功能;
能阅读英文文档和技术资料,阅读熟读在100词/分钟以上;能借助字典翻译专业技术图书。
能使用英文编写简单的技术文档和程序注释。
 


知己知彼,百战不殆。在了解了学习计算机英语的一般要求之后,接下来就需要对自己的具体情况进行具体分析,制定一个学习计划或简单地定一个学习方向。作为程序员学习计算机英语的根本目的是为了提高自己在英语环境中掌握计算机技术的能力,所以学习的内容应该是围绕本专业的领域展开。对于没有上过计算机专业英语课程的程序员来说,学习的重点应该是掌握专业词汇和术语,了解计算机英语的一些规范译法和习惯用法。对于有一定计算机英语基础的程序员则应该把重点放在提高阅读速度和阅读质量上,并逐渐习惯使用英语注释程序撰写文档。

        在明确学习目的和学习方向之后,还必须有一个好的学习方法,“怎样学”就是一个学习方法问题。这其中还包含了何时学、何处学、跟谁学等一系列问题。

        在这里我建议把短期的系统学习和长期的日常学习结合起来,这样做的效果最好,也最科学。所谓短期的系统学习是指集中一段时间系统地学习计算机英语,这对于没有参加过大学计算机英语课程学习程序员尤为重要。而日常的学习则是指在日常工作用有意识地多接触和多使用计算机英语,边用边学,持续不断地积累提高。下面我就从这两个方面来具体谈一谈。

        要系统地学习计算机英语,最好是参加专门的计算机英语课程培训班。培训班的选择非常重要,好的老师、成功的办学经验和系统的课程设置都是选择的重要依据。然而大多数程序员工作繁忙,可能采取的方式多是自学了。如果不能选择一位好老师,那就只能选择一本好教材了。一本好的计算机英语教材对系统地学习计算机英语帮助极大。目前市面上的计算机英语教材多达30种,在选择教材时不少程序员往往无从下手,大家不妨从以下几方面进行考虑:

         * 教材的难易程度——对于不同学历层次有不同的教材,选择教材是一定要看清该教材的培训对象是中专、大专、本科还是研究生。选择难易程度适合自己的教材,太简单则不利于提高、太难则容易使学习受挫。

         * 教材的专业侧重——有的计算机英语教材偏重于硬件,有的偏重于软件,还有的教材是信息电子类的计算机英语,侧重于通信电子方面,比如:汇编语言、单片机等。另外有的教材侧重于理论,如:数据结构、离散数学;而有的则侧重于应用,如:软件工程、数据库开发。所以程序员在选择计算机英语教材时,应仔细察看书中的内容,以免偏离软件开发的实际工作需要。

         * 教材的体系结构——目前计算机英语教材主要分为按语法体系组织和按计算机体系组织的两种结构。如果你是初中级的英语水平建议使用前者,如果你是中高级的英语水平建议使用后者。

         * 教材的易用性——教材的易用性是指教材的编排是否符合人们的学习习惯。虽然计算机英语是专业课程教材,但如果编排活泼、图文并茂、注解查阅方便肯定能调动学习的兴趣,降低阅读的难度。这方面国内的教材应该多向国外的教材学习。

         然而国内许多大学的计算机英语课程作为专业英语教学起步较晚,而早期出版的计算机英语教材大多出自于任课老师收集的计算机英文资料,教材规划不够系统,编排也比较简单。这些教材虽然使用的学校较多,为早期的计算机英语教学做出过不可磨灭的贡献,但致命的弱点是内容陈旧、与时代脱节,不考虑读者的学习方便(如:生词没有音标)。最典型的代表是某出版社的《计算机英语》,出版年份较早,里面充斥着陈旧内容。互动出版网(www.china-pub.com)有一位读者的书评写道:“这本书所涉及的计算机知识不够新鲜,某些文章要作为历史读。另外此书没有音标,有时候真不方便。”

         有些老师苦于没有新颖实用的计算机英语教材,于是选用一些国外的计算机入门读物,如《Computing Essentials》(McGraw-Hill出版公司)就曾被许多大学选用为计算机英语教材,效果极佳。这些国外计算机入门教材的特点是:时效性强(版本更新快),新颖实用,编排活泼。但对于中高级英语水平的专业开发人员未免有点太浅。

         我们在分析和研究了市面上大量计算机英语教材的基础上,又结合计算机英语教学和学习经验,编写了一本非常适合于软件开发人员的《计算机英语》,该书已经由机械工业出版社出版,并修订至第2版。需要说明的是该书最适合的读者对象为英语达到CET4的程序员,因为该书的选材直接来自国外计算机教材和出版物、技术文档和专业论文、IT精英的言论以及计算机方面的大百科全书,这样的选材在保持原汁原味的同时使学习者更能接触到计算机英语的真实语境和主流思想,虽然有一定的难度,但非常实用和专业。

         第2版又充实和加强了课本的内容,该书选材重点考虑以下4方面:
1、英美知名的百科全书——百科全书相关条目观点权威,语言平实,字斟句酌、言简意骇,帮助学生把握计算机科学的outline。
2、国际流行计算机专业教材——教材术语规范、文风严谨,语言地道,概念表达透彻,与双语教学接轨:例如《Foundations of Computer Science 》、《System Analysis and Design Methods》等再版多次的热门经典教材。
3、国际专业计算机网站——网站词汇丰富,语言时尚,大量使用最新术语,可以感受最新技术潮流:例如关于Longhorn的报道
4、经典计算机专业著作——专著反映主流学术思想和业界发展趋势,术语正统,论述严密,语言生动有感染力,是培养文献阅读能力的首选。例如《Design Pattern》

         因为一本好的《计算机英语》教材应该做到:文章专业、语言地道、术语权威、内容时新、版式新颖。为了保证语言地道,我们不选用非英语国家(或作者)的英文文章或著作,或翻译成英文的文章。

         同时为便于学习,我们为超出CET4的词汇和一些专业术语都进行了注释,而且音标和注释就在课文旁边,免去了翻查生词表的麻烦。这本书适合于程序员的另一条重要原因是全书侧重于软件和应用,没有枯燥繁琐的理论。计算机英语是用来学习专业英语的,而不是用来学习计算机理论的。我们没有像其他的计算机英语教材那样,充斥了大量难懂的计算机理论文章,而这些理论本身就非常难学。这本教材与其它计算机英语教材不同的地方还在于它更关注计算机素养、计算机应用以及IT对社会和生活的深刻影响。在这里我们可以聆听到IT精英比尔?盖茨和IBM公司CEO郭士纳的精彩演讲,也能拜读到英特尔公司前总裁葛洛夫的惊世之作《只有偏执狂才能生存》的序言。

         系统学习计算机英语,这里的系统性包括了计算机体系的系统性和英语语言的系统性,我们在学习时必须时刻牢记。除了借助计算机英语教材系统地了解计算机硬件软件、操作系统、软件工程、编程语言、网络通信、信息安全、应用系统等诸方面的英语表达和专业词汇外,还要对英语语言本身从听、说、读、写四个方面下功夫,以免出现偏废。有些程序员就是因为在听和说方面偏废,以至于影响到出国发展。如何加强听和说的训练,这是关于英语学习的话题,我自己的一个经验是多看原版电影(VCD/DVD)以提高听力(当然不能看字幕),多参加英语聊天(英语角)以提高口语。

         计算机英语的学习不同于考“托”考“G”,无法靠短期的突击来完成。长期的日常学习尤为重要。所谓的日常学习并不需要你抛开工作,安排专门的时间,而是边用边学。比如,你为了解决编程上的一个问题,查阅英文的帮助或技术资料。然而,不少程序员不太喜欢看英文,他们喜欢使用中文版的软件,喜欢汉化的帮助,喜欢读翻译好的书。这实际上就错过了许多日常学习计算机英语的机会。不可否认,读中文肯定比读英文方便,节省时间,但从长期的发展来看,弊大于利。这种对翻译的依赖使许多程序员失去了获取一手资料的宝贵机会。

         其实,既然你已经通过对计算机英语的系统学习掌握了一定数量的专业词汇,就完全可以借助字典去使用那些原文资料和在线帮助,加上有金山词霸这样的工具,阅读原文并不很困难,关键是一个习惯问题。我有一个朋友,在自己的电脑里从不装任何中文版或汉化软件,连上网聊天也坚持用英文。几年下来英语突飞猛进,效果甚佳,有志者不妨一试。

         在日常工作中大量阅读英文书籍和资料是提高计算机英语水平的最佳途径。目前市场上大量的计算机原版影印图书为我们提供了绝好的机会。阅读英文计算机图书一开始是“啃”的感觉,比较费时费力,对于不太好读的地方,不妨拿起笔来逐行逐字翻译出来,这样对提高英语水平很有帮助。对于有经验的程序员可以利用自己的专业背景知识和上下文(Context)进行大胆推测,这样有利于提高阅读速度。即使是不求甚解,也不要紧,你可以通过多读同类书来弥补。原版计算机书读多了,你会发现一些很有规律的东西和一些常用的词汇,这些来自实践的经验非常宝贵,并让你终生受益。一般在完整阅读2-3本原版书以后,你就能发现读原版书的乐趣。值得一提的是读原版书的真正乐趣并非只是在于提高英语水平,而更是在于获得一种和西方人一致的思维方式,这种思维方式对学习计算机技术极为有益,因为计算机技术甚至现代科学体系都是建立在这种思维方式的基础之上的。坚持阅读英文计算机图书可以达到“品”的感觉,这种感觉是指在阅读时无需将英文转换为中文,而是直接用英文和作者在同一个水平线上进行思考和交流。至此,我们获得的不仅是英语水平的突破,更是计算机水平的突破。这也是许多计算机高手成功的秘密。

         如果你有一定的英语基础,并希望突破计算机英语的障碍并成为高手,从现在起就养成一个学用计算机英语的良好习惯吧。下面是你可以立即选择的努力方式:
1、 给自己起一个英文名字。并用作网名和登录名。
2、 立即将自己电脑中的所有中文版或汉化软件换成英文版。连Windows也用英文的。
3、 选一本适合自己的计算机英语教材。
4、 保证一年至少读1-2本原版影印的计算机书,并坚持读完。
5、 上网尽量多访问英文的技术论坛和网站。不使用汉化的帮助。
6、 在程序中使用英文注释。坚决不用中文或汉语拼音作变量名、字段名、文件和文件夹名。
7、 每月至少看1-2部原版电影(VCD/DVD),尽量不看字幕,提高语感和听力。
8、 不看中英文对照读物,但可以看注释读物。多使用英英字典,少使用英汉字典。
9、 每天坚持记录和复习遇到的生词。对于缩略语,一定搞清每个字母的英文含义。

         如果你还有什么更好的方法不妨也提出来和我们交流,以便使更多的程序员收益。
 

posted @ 2008-08-22 22:33 ∪∩BUG 阅读(860) | 评论 (3)编辑 收藏

     摘要: Struts 2.0 笔记 2008 08 21 一.标准Action的编写     1.将action描述为ActionSupport的子类,用于实现execut的缺省方法     2.自定义Action的返回值(默认仍使用的返回值是:SUCCESS,ERROR,INPUT,LOGIN...  阅读全文

posted @ 2008-08-22 22:05 ∪∩BUG 阅读(1268) | 评论 (5)编辑 收藏

     摘要: index.jsp   1<%@page contentType="text/html; charset=GBK"%>   2<%@taglib prefix="s" uri="/struts-tags"%>   3   4<!-- ...  阅读全文

posted @ 2008-08-20 12:33 ∪∩BUG 阅读(1738) | 评论 (1)编辑 收藏

     摘要: 《数据结构》实训报告 文章编辑器 NoteLite   姓名: ∪∩BUG                       &...  阅读全文

posted @ 2008-08-19 17:44 ∪∩BUG 阅读(2051) | 评论 (1)编辑 收藏

     摘要: 图   实验目的 熟悉图的两种常用的存储结构,以及在这两种存储结构上的两种遍历图的方法,即深 度优先遍历和广度优先遍历。进一步掌握递归算法的设计方法。 关于各种典型著名的复杂算法,在上机实习方面不做基本要求。更适合于安排大型课 程设计。 二.需求分析    ...  阅读全文

posted @ 2008-08-19 17:37 ∪∩BUG 阅读(1225) | 评论 (0)编辑 收藏

     摘要: 树和二叉树 实验目的 1.熟悉二叉树的二叉链表存储结构; 2.掌握构造二叉树的方法; 3.加深对二叉树的遍历的理解。 二.需求分析     本程序演示用C++编写,完成按先序遍历生成二叉树,先序遍历打印输出二叉树, 后序遍历打印输出二叉树, 中序遍历打印输出二叉树, 层序遍历打印输出二叉树, 先...  阅读全文

posted @ 2008-08-19 17:30 ∪∩BUG 阅读(1839) | 评论 (2)编辑 收藏

     摘要:     使用说明     程序名为 NO3.exe.运行环境为DOS,执行后显示: 在"请输入你的选择后(1.2.3.4.5.6)"后输入数字选择执行的功能. 测试结果: 选择1.后输入:123456789 选择2后输入分别输入1,3. ...  阅读全文

posted @ 2008-08-19 17:12 ∪∩BUG 阅读(2014) | 评论 (0)编辑 收藏

     摘要: Visual C++ 6.0调试功能 这是我自己在学习时整理的,希望对大家有用.其中有几个部分的内容,如下: ※My Note 全部由我截图并参考资料进行说明,这其中有大量的内容是调试过程中体会总结才写的.有不当之处请大家更正. ※From 《Visual C++ Debugger》 这本书写得非常的不错,从里面截了一些有用的图,主要是强烈推荐大家阅读这本书. ...  阅读全文

posted @ 2008-08-19 16:42 ∪∩BUG 阅读(20645) | 评论 (7)编辑 收藏

                自己是计算机网络方向的,又自学了些美工,对Blog的主题还是有点挑,说句心理话,这里还真没有自己喜欢的主题,不是因为色彩搭配不合理,就是不适合做JavaBlog,主要是因为不能正常的显示代码,文章显示区不够宽,找来找去只觉得这个主题不错,但一点也不适合显示代码,不利于阅读,这是大忌.今天有些时间就自己Dreamweaver + PS把她改成合理的了.不过,由于能改的地方有限,右边栏不能正常显示,我已经把右边栏给屏蔽了,所以凡在必须显示在右边栏的栏目都不能正常显示.
好了,大家只要在Blog设置的通过CSS定制页面那粘贴就能有如我Blog现在的效果啦.如果效果不出来,可能是图片的URL问题,已经经过PS的图片在我的相册里,把你看到的URL拿去修改相应的CSS就可以了.(或先上传到自己Blog)

 1/*文章区*/
 2#content{
 3    float: left;
 4    padding: 0;
 5    background-image: url(Images/back_content.jpg);
 6    background-repeat: no-repeat;
 7    font-family: Tahoma, Geneva, Arial, Helvetica, sans-serif;
 8    font-size: 13px;
 9    text-align: left;
10    margin: 0px 5px 5px 5px;
11    width: 955px;
12}

13
14/*右边栏*/
15#rightsidebar{
16    float: left;
17    text-align: left;
18    width: 0px;
19    color: #787878;
20    line-height: 16px;
21    margin: 0px 5px 5px 5px;
22}

23
24#rightsidebar h3{
25    margin-left: 5px;
26}

27
28/*页头*/
29#container{
30    background: url(http://www.blogjava.net/images/blogjava_net/tidelgl/33863/o_back_container.gif) repeat-y;
31    margin-right:auto;
32    margin-left:auto;
33    margin-top:10px;
34    padding:0px;
35    text-align:left;
36    width: 1200px;
37}

38
39
40#banner{
41    height: 100px;
42    background: #006B95 url(http://www.blogjava.net/images/blogjava_net/tidelgl/33863/o_back_banner.jpg) repeat;
43        
44}

45
46#nav-main{
47    margin: 10px 16px 10px 11px;
48    height: 30px;
49    width: auto;
50    background: url(http://www.blogjava.net/images/blogjava_net/tidelgl/33863/o_back_navmain.gif) #FFFFFF no-repeat;
51    text-align:center;
52}

53
54/*页底*/
55#info-site{
56    clear: both;
57    text-align: center;
58    background-image: url(http://www.blogjava.net/images/blogjava_net/tidelgl/33863/o_back_infosite.gif);
59    background-repeat: no-repeat;
60    background-position: center bottom;
61    margin: 0;
62    padding: 30px 0 15px 0;
63}

64
65
66#info-company{
67    padding: 5px;
68    background: url(http://www.blogjava.net/images/blogjava_net/tidelgl/33863/o_back_navmain.gif) center top no-repeat;
69    margin: 10px 16px 10px 10px!important;
70    min-height: 30px;
71    height: auto;
72    _height: 30px;
73    color: #FFFFFF;
74}

75

posted @ 2008-08-18 22:17 ∪∩BUG 阅读(241) | 评论 (2)编辑 收藏

仅列出标题
共14页: First 上一页 6 7 8 9 10 11 12 13 14 下一页