标签:
原文链接:http://lucida.me/blog/english-for-programmers/
这篇文章面向程序员,简要的介绍了一些学习计算机专业英语的步骤和经验。
之前不少人曾站内我如何学习英语,我也曾试图写一篇如何学习英语的博文,但我现在的实力着实无法写出令人信服的文章:
所以这篇文章并不是一篇通用的(General)英语学习教程——而是一篇面向国内开发者的计算机专业(为了简便,接下来的“专业”均指“计算机专业”)英语学习指引,本文集中于如下问题:
此外,我把简短的问答放在杂项之中,以便阅读 :–)
这个问题很多人问过,也有很多人回答过,此外如果你在阅读这篇文章那么你应该已经意识到了学习英语的重要性。所以我不打算花太多篇幅在它上面,这里简略的总结下学习英语的好处:
注意这里的零基础指的是专业英文书籍阅读零基础——而不是英语零基础,英语零基础就没啥好说的了 –_–#
刚开始阅读专业英文书籍时要记住一点:你的目标是提升计算机专业词汇量,而不是学习计算机专业知识。所以你要阅读的是计算机“通俗”读物或“科普”读物,我的计算机英文入门书籍是计算机文化(New Perspectives on Computer Concepts),这本书每年一版,现在已经出到第15版:
这本书的好处在于它极其浅显易懂,并且包含大量计算机专业领域名词,所以读者可以专注于提升计算机专业词汇量,而不是一边查单词一边学新技术——同时搞两件事是很困难的。
顺便提一下那篇老码农教你学英语和那个老码农推荐的书目,姑且不论他把Mythical Man-month拼写成Man Month Myth,我非常惊讶他居然称人月神话原版为白话书并且推荐初学者阅读,直到看到这里:
这句“另外两本也很不错,我很久以前看的翻译版,一直也想找原版的来看看,可惜总是没空,这次你们就算替我看了吧”着实让我很无语,没看过的书也可以随便推荐么 –_–# 难怪那么多人推荐计算机程序设计艺术呢。
我在读研时从头至尾阅读了Frederick Brooks的人月神话以及他的几篇论文(No Silver Bullets和the Computer Scientist as Toolsmith),所以对Brooks的文风有一定了解——Brooks绝对是一位多才多艺的计算机科学大师——他的文字不仅涉及到计算机,还涉及到管理、人文、艺术、建筑和神学等学科。读他的书和文章,我查单词直接查到手抽,推荐初学者读这种书,你是要玩死初学者么 –_–#
阅读New Perspectives on Computer Concepts之后,你应该掌握了大量的计算机专业英文词汇,这时你可以尝试阅读一些语言浅显但主题相对深入的计算机科学基础书籍,个人力荐Brian Kernighan和Andrew S Tanenbaum的作品,他们的著作不但本本经典,而且语言朴实:
这些书读完之后,你应该可以做到脱离字典阅读绝大多数的计算机书籍——是的,可能还会有一些生词,但不会影响阅读。
除了读书,阅读专业博客也是非常好的提升专业英语水平的途径。个人推荐下面几个网站:
程序员学习英语不是为了写小说——而主要是如下场景:
1和2需要Nonfiction Writing——言简意赅,层次分明。这方面的写作书籍我推荐:
the Elements Of Style(这本书我应该推荐了无数次-_–#:既是最畅销的英语写作书籍,也是计算机书籍中引用最多的非计算机书籍。它用极其简练的语言讲述了如何进行严肃,精确,清楚的英语写作。从这本书中,你不仅可以学到英语写作,更可以学到一种严谨至简的处事态度,而这正是专业开发所必需的。这本书的中译版:风格的要素。
On Writing Well是一本详尽的非虚构(Non-Fiction)写作指南,无论你要写地方,技术,商务,运动,艺术,还是自传,你都可以从这本书中找到珍贵的建议,这本书也有中译版:写作法宝:非虚构写作指南(30周年纪念版)。
此外也少不了中式英语之鉴,中式英语说说还成,写到纸面上就丢大发了。中式英语之鉴系统的探讨了中式英语以及其成因,然后根据成因对中式英语进行归类,并对每个类别给出了大量的实际案例以及修改建议。如果你想摆脱中式英语,那么这本书是绝好的起点。
关于3的书籍很多,我个人推荐代码大全中关于命名(Naming)的一章,章名好像是变量名字的力量;以及Effective Java的Item44——如何编写代码注释及文档。
阅读量达到一定程度听力也不会差,个人推荐Channel 9、Google Tech Talk和Coursera,多看多听,此外务必不要中文字幕。
这里包含一些简短的问题,如果你有疑问也可以留言,我会把答案添加到这里。
除非你阅读原版书籍和中文书籍一样顺畅,或者翻译书籍信息损失量太大,否则不需要刻意阅读原版。
没有标准答案。作为开发者,大词汇量不是必需,但一定要把词用对——尤其是动词。
以方法/函数名中经常出现的get
为例:我们需要知道何时应该使用get
,以及何时使用fetch
、build
、retrieve
、compute
、calculate
和receive
这些get
的同类词汇。
目前我还没有发现一个好用的词典应用,所以依然在使用6年前的CASIO V2800H电子辞典。(略土 –_–#
以上。
标签:
原文地址:http://www.cnblogs.com/wangjiachen/p/4511185.html