程序员学英语三部曲

程序员这样学英语,少走很多弯路 单词和语法搞定之后,可以把英文技术文档和原版书作为学习材料,在实战中提升英语能力。 阅读详情

文 / 余晟

作者在IT业从业多年,翻译过多本技术图书,对英语的学习方法也有颇多积累。在本文中,他更是敞开心扉,分享了自己压箱底的三大绝技。

总的来说,程序员算是英语水平比较好的群体,因为在这个行业,英文资料是最全面、最及时、需求也最迫切的。因此,据我观察,即便刚入门不久的程序员,面对陌生的问题,一般也能查阅英文文档,找到需要的信息。但同时,我也发现,经常阅读英文文档的程序员,英语水平许多时候却并不像“经常阅读英文”的样子。下面我列几点自己的学习心得,供大家参考。

读文档不能只读代码

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

比如,代码都是“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əu],但我很少遇到程序员能把它读对,许多人干脆不会发这个音。

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

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

锻炼英文表达

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

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

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

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

结束语

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

作者余晟,曾任盛大创新院高级研究员,现任广州某电商和物流公司技术负责人。关注技术如何解决实际的问题。业余翻译、审校过若干本技术书籍,并撰写了一本讲解正则表达式的书。

本文选自《程序员》杂志2012年03期,更多精彩内容敬请关注03期杂志

OpenGL直升机模拟器:刚体动力学与实时渲染闭环实现 刚体动力学是三维物理仿真的核心基础,其本质是通过牛顿-欧拉方程描述物体平动与转动的耦合演化;在计算机图形学中,需将连续微分方程离散化为固定时间步长的数值积分,并与OpenGL实时渲染管线严格同步。该技术路径兼顾物理真实性与工程可实现性,广泛应用于飞行控制律验证、嵌入式算法原型开发及合成数据生成。典型实践包括四元数姿态更新避免万向节死锁、旋翼升力公式到顶点位移的直接映射,以及轨迹线可视化辅助PID调参——这些正是本项目所实现的最小可行闭环:用C++/OpenGL从零构建可交互的三维刚体仿真系统。 阅读详情

相关推荐

OKCC呼叫中心部署实战指南:从零搭建高效外呼系统

本文提供OKCC呼叫中心系统的完整部署实战指南,从服务器选型、操作系统准备到详细安装步骤和性能优化,帮助企业从零搭建高效外呼系统。重点介绍FreeSWITCH核心组件的安装配置技巧,以及常见问题排查方法,助力企业提升客户服务效率。

weixin_29275257的博客 162

程序员如何轻松又愉快的学好英语

程序员内功主要有数学和英语,有了英语这杆枪,平时写代码排错,不仅可以做百度工程师还可以做谷歌工程师,有经验的小伙伴应该经常能在Stack Overflow上找到答案吧。不过从学校到社会学了好多年英语,。,为什么在英语这一关过去,这是有原因的,本人也是走了很多弯路(当然现在还期待成功),跟大伙分享下自己学习过程中的经验,特别是目前最流行的英语神器挑战原版书阅读、无字幕看美剧!这边举一些场景,但不否定确实有很多依靠自学、应试教育和校外培训自学成才的高手,例子如下:素质教育与实用英语的冲突 学校里面学了很多年的英

输出是最好的学习 1931

数字设计实验:自动售货机

本文旨在介绍数字设计实验:自动售货机的设计思路和实现代码

2401_83740084的博客 2227

程序猿如何高效的学习英语

大家好我是林志强,一个不安分的程序猿。作为一个英语四级都没过的英语智障,被逼无奈又开始再一次的英语学习之旅了。之前学习英语都是下个百词斩啊、英语流利说之类的APP,然后开始狂背单词,然后就没然后了。我相信很多童靴也有跟我一样的经历,觉得自己英语不好,然后就天天背单词,背着背着就放弃了,很少有人能坚持到最后。 至于我为什么会一遍又一遍的学习英语,道理很简单也很现实,我们平时用到的开发语言就是歪国人发明出来的。主流的框架和官网资料也都是英语,就连程序报错也是英文,如果不会英语就非常尴尬,得先翻译一下,理解

林老师带你学编程 2819

每周技巧tc 问题处理技巧Teamcenter

(内部)Dataset和Tool相关之2.1——Tool轮询Contents Type和Type Name-赖良顺.docx。(内部)Dataset和Tool相关之3.2——编写Batch和Perl为客户端自动注册相关内容-赖良顺.docx。(内部)Dataset和Tool相关之1.1——Tools和Datasets参数定义-赖良顺.docx。(内部)Dataset和Tool相关之1.2——相关首选项定义及修改-赖良顺.docx。(内部)Dataset和Tool相关之0——概述-赖良顺.docx。

TC技术专栏 1228

DeerFlow 系列教程 第十四篇 | IM 渠道集成——让 DeerFlow 接入飞书、企微、Slack、Telegram

DeerFlow 系列教程 第十四篇本篇教程继续,全面剖析 DeerFlow 的 IM 渠道集成方案。我们将深入理解 Channel 抽象层设计、MessageBus 消息总线机制、ChannelManager 调度循环、四大 IM 平台(飞书、企业微信、Slack、Telegram)的适配实现,以及从 IM 消息到 Agent 响应再到 IM 回复的完整消息流转过程。

weixin_43674738的博客 414

程序员学好英语有多重要

IT高频词汇,欢迎收藏。

weixin_43790276的博客 2560

EMB电子机械制动系统冗余备份方案介绍

随着汽车智能化技术的快速发展,自动驾驶技术的不断升级,对车辆制动系统的可靠性和安全性提出了更高要求。根据国际汽车安全法规(如UN R13-H)的最新修订,L3级及以上自动驾驶车辆必须配备具有冗余功能的制动系统,以确保在任何单一故障发生时仍能维持部分或全部制动能力。本文重点讨论最具前瞻性的EMB(电子机械制动)系统的冗余备份设计方案

m0_59012156的博客 853

33 | 聊一聊程序员学英语

又到了相对轻松的特别放送时间,这一次,我想聊一聊程序员对于英语的学习。在专栏最开始的 [学习路径] 中就提到了工程师的一些“基础”能力,比如数据结构和算法,当然也包括英语。当时我说,,而且英文是所有进阶的软件工程师应当强化的能力,对全栈工程师来说更甚。但是我在当时并没有展开论述,为什么在中文技术材料如此丰富的今天,在工作环境是以中文为主的情况下,英语的学习依然那么重要。

qq_37756660的博客 1778

UDS19 03 和19 04服务--答疑

UDS 1903服务(reportDTCSnapshotIdentification)用于获取ECU中存储的故障码快照标识信息。该服务返回DTC编号及对应的快照记录编号,为后续使用1904服务读取详细快照数据提供依据。请求报文为"1903",响应报文格式为"5903"后接DTC编号和记录编号列表。该服务需在非默认会话模式下执行,且清除诊断信息会删除相关快照记录。1903服务是读取DTC快照数据的基础步骤,可帮助确定ECU中存储的故障快照情况。

汽车软件开发 452

图机器学习(2)——图的可视化

图结构可通过图形化方式直观呈现。节点通常用圆形表示,边则用连接线表示。然而当节点和边数量增加时,绘制清晰的图形表示可能会变得相当困难,这主要源于节点在二维坐标系中的布局问题。对于包含数百个节点的图,手动指定每个节点的坐标显然不切实际。在本节中,我们将介绍如何在不指定每个节点坐标的情况下绘制图形。我们将利用两种不同的解决方案:networkx 和 Gephi。

盼小辉丶的博客 8677

[余晟] 程序员学英语三部曲

作者:余晟 点击打开链接 作者在IT业从业多年,翻译过多本技术图书,对英语的学习方法也有颇多积累。在本文中,他更是敞开心扉,分享了自己压箱底的三大绝技。 总的来说,程序员算是英语水平比较好的群体,因为在这个行业,英文资料是最全面、最及时、需求也最迫切的。因此,据我观察,即便刚入门不久的程序员,面对陌生的问题,一般也能查阅英文文档,找到需要的信息。但同时,我也发现,经常阅读英文文档

flex4的专栏 1446

【ComfyUI】FluxKontext 身形调优与体态增强

AI身形调优与体态增强解决方案 该工作流通过Flux系列模型实现人物体态的智能化增强,主要特点包括: 采用UNet主体模型+双文本编码器+身形增强LoRA的架构组合 通过ReferenceLatent保持原始姿态的同时强化胸腰臀比例 完整工作流包含图像加载、文本编码、潜空间映射等8个核心节点 支持自动化的前后效果对比展示 应用优势: 保持人物自然姿态的前提下实现局部强化 支持通过Prompt精确控制增强方向 适用于摄影后期、角色美化等创作场景 输出效果稳定且风格统一 使用方

Mr数据杨 1292
上一篇: 如何让自己写的代码易维护?
下一篇: JSP九大内置对象详解
MemRay
博客等级 码龄18年 447粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值