关于程序员学英语的经验

还记得雷军在印度发布会上的英语首秀吗?或被调侃发音不准,但总的来说,程序员可算是英语水平比较好的群体,因为在这个行业,英文资料是最全面、最及时,对英文资料的需求也最迫切的。因此,就我的观察,即便刚入门不久的程序员,面对陌生的问题,一般也能查阅英文文档,找到需要的信息。但是另一方面,我也发现,经常阅读英文文档的程序员,英语水平许多时候却不像“经常阅读英文”的样子。我在这里列几点自己的学习心得,供大家参考。

第一,读文档不能只读代码。

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

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

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

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

第三,锻炼英文表达。

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

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

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

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

有人说,以汉语为母语的程序员,学习英语已经是迫不得已,不但要会阅读,还要会读、会表达,真是难上加难。这种说法有一定道理,但是在目前并没有更好的解决方案,学会阅读、认准读音、锻炼表达,确实可以给自己带来好处。长远来看,要改变这种情况,需要中文技术圈的所有人员努力贡献高质量的资料(原创和翻译都可以),如果只是“无责任转贴”,既不亲自验证,也不整理格式,中文技术资料的整体质量只会持续恶化,反向逼迫更多的人把英语学好。

来自devstore

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-10 19:14:21

关于程序员学英语的经验的相关文章

程序员的价值观——经验是无价之宝(转)

英文原文:Change your value proposition – your experience is valuable 当我第一次深入考虑我的职业生涯时,我一度认为我要做的就是集中精力做技术向导.我想知道成为公司的技术专家能让我走多远.我觉得团队领导和管理人员的角色并不适合我.我甚至都无法想像自己有一天不能编码是什么样子……更不要说几个星期不能接触代码了.在过去的年月中,我一直秉持着这个信念,坚决反对那些看似是职业生涯发展的自然结果. 但是,我周围的人告诉我,我是一个好领导,我擅长于架

总结过去10年的程序员生涯 (经验)---大神的建议

个人觉得不错,推荐给大家.来自网页:[链接描述][1]展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的10年的路程,有些心得体会你可以借鉴一下,觉得说得有道理的你就接纳,觉得说得没道理的,你就抛弃,以下是我发自内心的,给大家的忠告,特别是针对那些小弟弟妹妹们. 不要轻易换笔记本电脑,不要跟潮流,不要买过多的电子产品,不要过于频繁的更换手机.这方面我的

Java程序员的日常——经验贴(纯干货)

工作当中遇到的事情比较杂,因此涉及的知识点也很多.这里暂且记录一下,今天遇到的知识点,纯干货~ 关于文件的解压和压缩 如果你的系统不支持tar -z命令 如果是古老的Unix系统,可能并不认识tar -z命令,因此如果你想要压缩或者解压tar.gz的文件,就需要使用gzip或者gunzip以及tar命令了. 关于tar.gz可以这么理解,tar结尾的压缩包,其实只负责把文件打包,并没有进行压缩:而gz结尾的包,则是进行压缩操作. 因此,tar.gz的文件可以理解为,先进行打包,再进行压缩. 那么

程序员学英语--毕业后的第一个月

俗话说,三天打鱼两天晒网,学习英语需要坚持,可是没有如果没有理由,没有乐趣,你怎么坚持!虽说良药苦口,但怎么着也对治病有好处.所以我们的英语最重要就是找个兴趣!学习英语快三年了.怎么就没有兴趣呢.其实我们一直在强迫着自己学习.后来我们一次师徒会上,我的师傅说,学好英语,以后工作就多了一条路,可以到外企中工作,IT方面,外企有很多值得我们学习的东西.不光是技术,而且各种待遇和环境都好.想想这些,心里顿时就感觉高兴,喜欢学英语,还想把英语学好的种种想法和冲动! 很多事情坚持下去不是很难,可是没有一个

当程序员的一些经验和体会

原文发布时间为:2009-08-26 -- 来源于本人的百度文章 [由搬家工具导入] 一些经验和体会 1、真正的程序员用C++;(一位专家说的) 2、动手去编程序; 3、动脑去思考; 4、要有良好的编程风格; 5、读书,读好书,尽量读原版书!(我反复强调这一点,读书要有选择,坚持读好书,名家出的经典书,不要浪费实践在一些粗制滥造的书上面;坚持博览群书) 6、有自己的学习计划; 7、总结自己的经验教训;(准备一个笔记本,记录错误和心得) 8、不要怕学新东西; 9、要有软件工程的思想; 10、善于发

程序员学英语——In November the English learning summary

这个月的英语学习又恢复了学习的激情.之前一段时间确实是有点儿懈怠了,虽然每天依旧到机房最先学习的是 英语,但有时候基本上算是无效输入,电脑视频虽然开着,但没有集中注意力去听.时间长了,自己也没有太注意, 总以为自己一直在学习英语,殊不知自己的效率大大的不如从前了. 幸好这个问题被及时发现了.于是开始了英语的激情学习. 按照计划第三次对SB文档进行了注释,重新找到了自己的定位.之后开始了YY和ShareTalk之旅.刚开始在YY 上,发现好多都是自我们的集体TGB,大家聊的不亦乐乎,有时候直接由E

程序员学英语—In August the English learning summary

时间真快,总结的7月份英语学习总结刚刚结束,转眼间又该对8月份的英语学习进行小节了. 进入8月初,下发了一个文档,用一个星期的时间学音标,纠音.在王美的带领下我组也发起了纠音运动.刚开 始纠音的时候,我就感觉自己读的对,就是这么读的,而且跟赖老师读的一模一样,怎么他们听的就不一样呢?纠的 多了,听的多了,其实最后发现,还是听力不到位,还没"分辨是非"的能力啊.一周的纠音活动结束后,再次进行 了一次朗读a kiss比赛,这次和第一次相比,给我的明显的感觉就是大家读的更有味道了.活动结束后

程序员学英语——In September the English learning summary

转眼间9月份又过去了,又该好好总结一下这个月的英语学习情况了. 在暑假快结束的时候,9期师姐给我们测了英语快照.当初测的时候就发现一个问题:当测自己听过尤其是读过的东 西的时候,自己都能听出来.测自己不熟悉的材料的时候,听出来的也勉强才能及格.所以提高自己的听力是迫在眉睫 的,因为只有听懂了才能会说,只有听的准才能说的准. 开学了,英语学习由暑假的四个小时减少到了现在的每天两个小时.每天上午我都是听一个小时<新走遍美国>,一个 小时听音标.暑假的时候每天都是会读会儿<新走遍美国>的

现代程序员该如何学英语?

你可能会问程序员学英语干嘛?是啊.一个小的普普通通的程序员可能真的不用学习英语,甚至可以说学习英语就是浪费他的时间,还不如利用这些时间去敲一些代码,看看计算机的书,或者出去跟朋友喝喝酒,都会比这个有用的多! 话说回来,如果你想做的不仅仅是一个程序员,而是要做一个工程师,一个架构师--那么学习英语就会非常有必要了. 大家都知道计算机室外国佬发明的,编程语言也是外国佬创造的,很多的软件例如各种操作系统,桌面软件基本上都是由外国人发明的.所以如果你想梦想成真,那么学习英语将是你通过成功路上必不可少的一