amobbs.com 阿莫电子技术论坛

标题: 程序员英语学习三部曲 [打印本页]

作者: tanek    时间: 2015-5-28 14:08
标题: 程序员英语学习三部曲
本帖最后由 tanek 于 2015-5-29 09:39 编辑


读文档不能只读代码

        读文档只读代码,是很多程序员的习惯,也是导致程序员虽然读了很多英文资料,英文水平却没有相应提高的原因之一。以前曾在《程序员》
上看到介绍阅读 技术图书方法的文章,提出过“先代码后文字”的方法,也就是“先看代码,看不明白再看文字”。这种阅读法能极大提高阅读效率,
但如果技术图书只看代码就足 够,还要文字干什么呢?很多时候,代码只是冰山一角,代码背后的思维和逻辑才是真正的重头戏,只有写成文字才
能解释,也只有阅读文字才能理解。

        比如,代码都是“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,许多人往往直接读作blob.png,其实这个词来自法 文,
正确的读音其实是blob.png;再比如伪代码的“伪”pseudo,正确的读音是blob.pngblob.pngblob.png,但我很少遇到程序员能把它读对,许多人干脆
不会发这个音。

        也许有人说,这些问题不重要,大家“将错就错”,约定俗成就得了,但事情没有这么简单。最近我参加某个技术聚会,有一位嘉宾(技术高手)
把框架名 chameleon(变色龙)读成了blob.png,而正确的读音是blob.png,因为没有文字资料,许多人听了半天才知道他说的是 什么,一些不熟悉
chameleon的听众更是到结束也没明白。中国人聚会尚且如此,如果有机会参加中外技术交流,读错造成的问题就更大了。

        要解决这个问题,有一个非常好的办法,就是学习美国大学的公开课,耶鲁、斯坦福等学校的计算机系都放出了许多高质量的公开课,学习其中
的一些精品课 程,不但能夯实基础,还能顺带学会许多每天都要遇到但不会或者读错的术语。比如我就从中学到,数据类型char的读音是[kɑ:],而不
是[t∫ɑ:]。

锻炼英文表达

        如果你背过单词,大概听到过“被动单词”和“主动单词”的说法,前者是指“看到了能认出来”的单词,后者指“表达时能主动应用”的单词。据我观察,
许多程序员掌握的大多数英语,都属于“被动英语”——看到了能认识,但要表达同样的意思,未必说得出来。

        平时这样似乎没有问题,但如果要查阅资料,不会表达就造成了大的障碍。相比中文技术资料世界中“无责任/不负责转贴”泛滥的情况,英文技术
资料的质 量要高得多,Google搜索资料的准确性也远高于百度;但要能够顺利应用英文资料,需要“主动”输入信息,描述问题,这时候“被动英语”就成
了大问题。

        我遇到过很多次这样的情况:即便答案近在咫尺,输入正确的关键词,Google的第一条结果就是答案,但程序员就是一筹莫展——因为他不知道
计算机 的“嘟嘟”声是beep,不知道搜“多线程”资料应该用concurrency,也不知道“死机”是system halt,“黑屏”是blank screen……

        要解决这个问题,最好的办法是在阅读资料时多用心,记住这些说法;另一方面,没事的时 候多浏览stackoverflow之类的网站,不要因为问题
与自己无关而忽略,要多留心这些问题到底是什么,是如何表达的。这样,在自己遇到问题时,才 能迅速找到可能的解决方案,节省时间





【转】http://www.cocoachina.com/programmer/20150430/11727.html
作者: qq开始学单片机    时间: 2015-5-28 14:52
不错,顶!                 
作者: zhq0571    时间: 2015-5-28 16:43
好                    
作者: Robin_King    时间: 2015-5-28 17:00
tanek?
which tanek?
istarchip's tanek?
作者: TCMCU    时间: 2015-5-28 17:12
关键是一些数据手册都看不完整,还要借助一些翻译软件,国内学习英语实在是太难了,没有环境,大部分人学了都是很难用得上的
作者: Excellence    时间: 2015-5-28 17:14
好文章。
重在坚持。
作者: Xplain    时间: 2015-5-28 17:19
数据类型char的读音是[kɑ:],而不是[t∫ɑ:],不是吧,有这种说法
作者: chales    时间: 2015-5-28 21:03
char, 应该是character的缩写, 发K是对的.
无它,就是多朗读, 读多了(开口),对眼睛阅读也大有好处
作者: gaoxinjun2001    时间: 2015-5-29 06:25
very good!!!
作者: fengyunyu    时间: 2015-5-29 06:38
开卷有益!
作者: guaiguaima    时间: 2015-5-29 09:10
非常好!
作者: tanek    时间: 2015-5-29 09:38
Robin_King 发表于 2015-5-28 17:00
tanek?
which tanek?
istarchip's tanek?

大师兄。。。。
作者: Robin_King    时间: 2015-5-29 09:44
tanek 发表于 2015-5-29 09:38
大师兄。。。。

我去,搞个小妹妹的头像,不是你的风格呀。。。
作者: tanek    时间: 2015-5-29 09:46
Robin_King 发表于 2015-5-29 09:44
我去,搞个小妹妹的头像,不是你的风格呀。。。

小妹妹挺可爱的啊
作者: dxzky    时间: 2015-5-29 09:54
看一些高质量的公开课的资料还是十分有益的,这个深有感触~
作者: Gorgon_Meducer    时间: 2015-5-29 13:14
好的习惯,希望不要虎头蛇尾。
作者: tanek    时间: 2015-5-29 13:23
Gorgon_Meducer 发表于 2015-5-29 13:14
好的习惯,希望不要虎头蛇尾。

这个不是我写的,觉得不错就转过来了!
作者: tanek    时间: 2015-5-29 13:31
Robin_King 发表于 2015-5-29 09:44
我去,搞个小妹妹的头像,不是你的风格呀。。。

这个只是Y的号而已。哈哈
作者: haven9396    时间: 2015-5-29 13:45
论坛里是否也能上一些公开课视频呢
作者: destiny、    时间: 2015-5-29 13:54
四级没过
作者: tangqh    时间: 2015-6-1 14:08
很好,能坚持不?
作者: sjx000000    时间: 2015-6-15 12:35
很好的方法。
作者: 钛50    时间: 2015-6-15 12:52
听和说是最大的障碍,环境对这两项影响很大,刚出去的时候,说3Q,老外都听不懂,回来的时候,不需要翻译,几乎能流畅的与老外沟通了。
作者: dellric    时间: 2015-6-15 17:02
这篇文章简直就是文科生写来忽悠工科生的,我就是程序员,一直都是,以后还会是
程序员学习英语的第一步,永远都是 hello world ,如果这个都不知道,还是去外语系泡妹妹吧,只能说你和程序无缘!
程序员学习英语的第二步,关键词 if while for else break continue……是必须的,如果有妹妹让你说love XX for ever ,看到这三个单词,你如果把焦点放在love上,说明你还不成熟,如果你放在ever上,说明你胆怯,如果你放在for上,呵呵,恭喜你,如果你第一时间觉得这个love的循环条件是ever,说明你和真正的程序员已经很近了!
程序员学习英语的第三步,流利地说出 shit fuck 等关键词,这些不是拿来骂人的,否则很不文明,那是用来解闷的,传说中用“尤里卡”的家伙,肯定是没有受过debug的折磨。真正的大师级程序员在看到自己的程序正常跑起来后往往会说“shit, holy shit!”或者"fucking fuck!",然而程序没有跑起来的时候,他们心中已经把这两个单词默默念了很多遍了。
作者: bmagui    时间: 2015-7-2 14:08
楼上英语出神入化,程序宛如游龙,是不可多得人才呀!
作者: 甲骨文    时间: 2015-7-3 09:10
说的不错,不过最重要的是要坚持。
作者: 魏道志    时间: 2015-7-3 10:38
看了半天,没怎么看懂
作者: 留声而过    时间: 2015-7-17 07:04
顶!hello world
作者: gaoxinjun2001    时间: 2015-7-17 07:57
好文,赞一个哈
作者: liwei_jlu    时间: 2015-7-17 09:18
dellric 发表于 2015-6-15 17:02
这篇文章简直就是文科生写来忽悠工科生的,我就是程序员,一直都是,以后还会是
程序员学习英语的第一步, ...

同感,这个作者可能是软件工程项目级别的翻译,但绝不是程序员级别的翻译,
作者: 甲骨文    时间: 2015-7-22 06:00
一个好的习惯,终身受益。
作者: sandman    时间: 2015-7-22 14:00
转的好,多年一直断断续续学习英语,但进步很慢
作者: pcx5114    时间: 2015-7-22 14:36
多谢楼主!
作者: 只是代号    时间: 2015-7-22 14:53
我是来看神评论的
作者: thepresent    时间: 2015-12-21 11:27
学英语就是一道窗户纸,入门了就好了
作者: yanzhiwei    时间: 2015-12-26 15:33
看英文资料看不进去,不得不看的时候只能借助翻译软件慢慢来
作者: bg3mo    时间: 2015-12-26 16:05
好文章,学习了
作者: mvpgpz    时间: 2016-6-15 17:31
dellric 发表于 2015-6-15 17:02
这篇文章简直就是文科生写来忽悠工科生的,我就是程序员,一直都是,以后还会是
程序员学习英语的第一步, ...

表达的太到位了,哈哈
作者: hdl    时间: 2016-6-15 18:27
。。。。。。。。
作者: 贪吃的蚂蚁    时间: 2016-6-21 10:37
dellric 发表于 2015-6-15 17:02
这篇文章简直就是文科生写来忽悠工科生的,我就是程序员,一直都是,以后还会是
程序员学习英语的第一步, ...

赞一个,24楼
作者: cairudu    时间: 2016-9-21 22:59
很好的建议,非常感谢!
作者: cairudu    时间: 2016-9-22 00:04
很好的建议,非常感谢!
作者: lujianfeng2001    时间: 2016-12-27 08:31
学习!谢谢  




欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/) Powered by Discuz! X3.4