作为一名程序员,可以说每天都要和英语打交道,特别是浏览一些国外的技术网站的时候,许多人就感觉英语水平跟不上了,那么,程序员怎么学英语?现在请看程序员英语学习三步曲。
一、读文档不能只读代码
读 文档只读代码,是很多程序员的习惯,也是导致程序员虽然读了很多英文资料,英文水平却没有相应提高的原因之一。以前曾在《程序员》上看到介绍阅读 技术图书方法的文章,提出过“先代码后文字”的方法,也就是“先看代码,看不明白再看文字”。这种阅读法能极大提高阅读效率,但如果技术图书只看代码就足 够,还要文字干什么呢?很多时候,代码只是冰山一角,代码背后的思维和逻辑才是真正的重头戏,只有写成文字才能解释,也只有阅读文字才能理解。
比 如,代码都是“x = 5;”,有时的说明是x should be not more than five,有时的说明是x should be no more than five。不查词典,你能弄清楚两种说法的区别吗—前者是“x必须小于等于5”,后者是“x应当只有5”,意思不同,应用的方法与场合也不相同。
这 些年来经常有希望翻译技术文档的程序员来找我讨论翻译问题,希望了解一些句子应该如何表达。一开始,我也认为这是中文表达的问题,但后来逐渐发 现,其实更多的问题出在英文阅读上,所以我的回答经常是:你觉得作者这里说的是什么意思?引导对方把原文的意思逐步表达出来,其实这时候,真正的译文已经 浮出水面了。
最近的例子来自这句话:“But as with any web-based system, atom-based solutions trade scalability for latency, making atom often inappropriate for very low-latency notifications”。这句话之所以难翻译,问题似乎在于,除去句子的主干,之前有一个But as…,之后又有一个making…。然而我最后发现,对这个句子有疑问的程序员其实根本没搞懂trade…for…的用法(翻译为“基于atom的解决 方案需要权衡延迟和性扩展性”),如果明白它是“牺牲xx换取xx”之后,整个句子就相当好理解,也非常容易翻译了:与所有基于web的系统一样,基于 atom的解决方案为追求可扩展性,增大了延迟,所以atom通常并不适用要求极低延迟的提示。
要解决这个问题,首先要做的是改变“只看代码不看文字”的习惯,至少要做到“阅读文字之后,认识到它的意思与代码是一致的”;其次是通过阅读纯文字的英文资料来学习某些新的知识(比如关于深入原理的细致讲解),这个方法我推荐给许多朋友,非常有效。
二、注意读音
以前总听人说,中国人学了很多年英语,其实是哑巴英语。不知道现在的情况有多少改观,但就我所见,不少程序员虽然阅读了大量英文资料,也会加入英文的讨论组,也敢开口说,但还会在读音上出现许多问题。这里说的“读音”,并不是字正腔圆的口音,而是一些术语的读音。
众所周知,计算机科学的术语来源非常广泛。例如设计模式里,有一种模式叫Facade,许多人往往直接读作,其实这个词来自法文,正确的读音其实是;再比如伪代码的“伪”pseudo,正确的读音是,但我很少遇到程序员能把它读对,许多人干脆不会发这个音。
也许有人说,这些问题不重要,大家“将错就错”,约定俗成就得了,但事情没有这么简单。最近我参加某个技术聚会,有一位嘉宾(技术高手)把框架名 chameleon(变色龙)读成了,而正确的读音是,因为没有文字资料,许多人听了半天才知道他说的是 什么,一些不熟悉chameleon的听众更是到结束也没明白。中国人聚会尚且如此,如果有机会参加中外技术交流,读错造成的问题就更大了。
要 解决这个问题,有一个非常好的办法,就是学习美国大学的公开课,耶鲁、斯坦福等学校的计算机系都放出了许多高质量的公开课,学习其中的一些精品课 程,不但能夯实基础,还能顺带学会许多每天都要遇到但不会或者读错的术语。比如我就从中学到,数据类型char的读音是[kɑ:],而不是[t∫ɑ:]。
三、锻炼英文表达
如果你背过单词,大概听到过“被动单词”和“主动单词”的说法,前者是指“看到了能认出来”的单词,后者指“表达时能主动应用”的单词。据我观察,许多程序员掌握的大多数英语,都属于“被动英语”——看到了能认识,但要表达同样的意思,未必说得出来。
平 时这样似乎没有问题,但如果要查阅资料,不会表达就造成了大的障碍。相比中文技术资料世界中“无责任/不负责转贴”泛滥的情况,英文技术资料的质 量要高得多,Google搜索资料的准确性也远高于百度;但要能够顺利应用英文资料,需要“主动”输入信息,描述问题,这时候“被动英语”就成了大问题。
我 遇到过很多次这样的情况:即便答案近在咫尺,输入正确的关键词,Google的第一条结果就是答案,但程序员就是一筹莫展——因为他不知道计算机 的“嘟嘟”声是beep,不知道搜“多线程”资料应该用concurrency,也不知道“死机”是system halt,“黑屏”是blank screen……
要解决这个问题,最好的办法是在阅读资料时多用心,记住这些说法;另一方 面,没事的时 候多浏览stackoverflow之类的网站,不要因为问题与自己无关而忽略,要多留心这些问题到底是什么,是如何表达的。这样,在自己遇到问题时,才 能迅速找到可能的解决方案,节省时间。
推荐阅读:
相关推荐
英语学习中的语法分析,介绍,分类总结成相关的文档
【程序员英语学习方法】 在快速发展的信息技术领域,程序员掌握计算机英语变得至关重要。编程语言本身就是基于英语的,即使现代工具允许部分使用中文,但核心的编程语句和逻辑仍然依赖于英文。此外,大部分的技术...
《程序员修炼三部曲之单元测试》是一本深入探讨软件开发中单元测试技术的重要书籍,尤其对于.NET、AJAX、C#、Java和VB.NET等技术领域的开发者来说,更是不可多得的参考资料。单元测试是软件开发过程中的一个重要环节...
《程序员英语单词册》是一本专为程序员设计的英语词汇手册,旨在帮助程序员在日常工作和学习中提升英语水平,特别是与计算机科学和技术相关的专业词汇。这本单词册涵盖了程序员日常遇到的各种技术术语,使得程序员在...
### 知识点一:程序员为何需要学习英语 在当今全球化的信息技术环境中,英语作为国际通用语言,在IT行业中扮演着至关重要的角色。对于程序员来说,掌握一定的英语水平不仅能够提高工作效率,还能拓宽职业发展的道路...
程序员英语词汇1700 词修改版
《Python-专为程序员编写的英语学习指南v10》是一部专门为编程人员设计的英语学习资源,旨在帮助程序员提升在编程领域中所需的英语技能。这个版本是v1.0,可能意味着它是初次发布,或者相较于之前的版本有显著的改进...
做程序员一定要懂得的英语 掌握好英语,对自身的帮助不言而喻吧
【程序员英语单词 带音标】这个主题是专门为编程领域的学习者设计的英语词汇资料,旨在帮助程序员提升他们在工作中所需的英语能力。在信息技术日益全球化的今天,掌握一定的专业英语词汇对于程序员来说至关重要,它...
程序员书籍 学习资料搜集 包括基础 中级 技巧方面的书籍
有很多的JAVA程序员,在初期学习时,通常会对如何学习而感到迷茫。下面笔者就将转发一篇一位网友的精品帖,这位作者对于JAVA程序的学习分析的很到位,相信能帮助那些正在处于迷茫状态的初学者...
英语单词表--程序员学习英语必用 本资源摘要信息旨在帮助程序员学习英语,提供了50个常用的英语单词,涵盖了日常生活、工作、学习等多个方面。这些单词包括私人的、私聊、剧场、游戏、熊、商业、博物馆、决定、中心...
程序员的英语进阶指南
### 程序员学习能力提升三要素 随着信息技术的快速发展和不断迭代,软件开发人员面临着前所未有的挑战:如何在海量的信息中筛选出有价值的知识,如何有效地吸收并转化为自己的技能,以及如何保持持续学习的动力。...
“程序员”和“英语学习者”标签则表明这个工具适合这两类人群,程序员可以借此增强他们的专业英语技能,而英语学习者则可以通过这个字典学习与科技相关的词汇,特别是编程领域的词汇。 压缩包内的文件“wordweb6....
java 程序员英语面试宝典 您迈向外企的敲门砖
求职不顺利、工作中困难当道、无法解决职场冲突与矛盾、不知道自己的职业目标是什么,如何有效地调整行动来向着目标前进,以上问题贯穿了研发人员职业生涯的各各阶段。本书提供了思路与方案,从找到问题的根源,到...
程序员需要掌握的单词
程序员英语词汇1700词 本资源为程序员英语词汇1700词的知识点总结,涵盖了计算机专业英语词汇和术语,共计70个关键词汇。这些词汇是程序员需要掌握的英语基础知识,涵盖了计算机科学、编程、数据库、软件开发、网络...