CatCoding

世界很大,一定要学好英语

2022-01-18

今天再分享一下自己作为程序员学习英语的一些经验,我计划分几篇写成一个系列。

首先我们谈谈作为程序员,我们为什么要学好英语。英语对程序员的重要性主要体现在以下几个方面:

更好的输入

毋庸置疑,英语已经是世界上科技和学术交流的通用语言,这是我们无法改变的事实,而且可以预见我们有生之年仍然是这样。在 IT 领域更是这样,这个世界上最新的、最全的、最好的编程学习资料大多是英文的。

比如我前几天介绍的 Crafting Interpreters 这本书,如果等到国内翻译出来说不定几年都过去了。而且国内很多技术书的翻译质量很差,因为翻译的收入并不高,有能力把技术翻译做好的人,大多不愿意投入时间到这上面。

我知道一些出版社找的是国内高校的老师,然后让一些实验室的几个研究生来翻译,这些研究生因为缺乏从业经验,翻译出来的东西质量低下。有的经典技术书籍被翻译成烂的中文版,让人痛心。

比如《人月神话》中文版里有一句话是“大拇指的规则就是 …..”,你看的时候会不会困惑不已,大拇指规则是什么?

如果你去看英文版本,其实这句是:The rule of thumb,其实是指”经验法则”。

其实不止是英文资料的问题,很多软件的中文告示也是不够准确的,甚至有的计算机术语是没有公认得中文翻译的。

比如编译器 Gcc 的一个中文警告:

提领类型双关的指针将破坏强重叠规则.

这到底写个啥?但如果你去看英文,就容易理解得多:

warning: dereferencing type-punned pointer will break strict-aliasing rules

如果我们一直用这些学习资料,容易被误导、浪费自己的时间,更是可能是达到一定瓶颈无法提高自己,所以直接看原版的英文书收益更多。比如我就基本没买计算机的书了,我用公司的 OReilly 账号,基本能看所有好的原版计算机书籍:

更广的交流

如果你在 Github 上做开源,免不了和其他国家程序员沟通。要在一个顶级的开源项目做贡献,一个 Pull Request 来来回回几十个讨论也是很正常的。

能否在英语世界中传播对于一个开源项目至关重要。

Ruby 创始人松本行弘 1995 年开始创建 Ruby,前面好几年其实 Ruby 大多是在日本圈子里用用,可以看看 Ruby 的早期版本里很多注释都是日文的。一直到 2005 年 Rails 发布,出现了很多英文的 Rails 书籍和介绍,Ruby 才开始风靡全球。

那些做出著名开源项目的国人中,英语交流肯定是没有任何问题的,例如 OpenResty 作者章亦春,Vue 创始人尤雨溪等。反观国内某些大厂的某些开源项目,例如腾讯的 polarismesh/polaris,这文档、代码注释都是只有中文,这如何能在世界范围内流行开了呢。

有的国内开发者编程中的变量名用拼音,可以想象如果一个开发者写的代码是:

def denglu(yonghu):
	...

这代码只有中国人有可能读懂,那如何让中国之外的开发者协作?

同样的原因,我认为中文编程可能为英语不好的初学者稍微拉低一下学习门槛,除此之外毫无益处。

更多机会

国内年轻人多,2021 年应届生加上海归总人数达到 900 万。而其他行业相对不好找工作、工资低,导致很多人转向 IT 行业,结果就是国内 IT 职位内卷得要命。

另一方面,现在因为疫情、贸易战等原因,世界各国的人员流动减缓,但是线上协作更多了。疫情加速了全球数字化进程,其实各个国家都很缺软件工程师。

所以如果你想做这行但又不想内卷,就别一直盯着国内大厂,多看看外面的机会,比如国内外企,远程职位,或者其他国家的职位。

德国就为工程师提供欧盟蓝卡,比如《精通正则表达式》的译者余晟就在德国生活得很舒服啊。

当然是否出国定居涉及到很多因素,如果不出国也可以试着找国内的外企,比如微软在国内大量招聘 (找我内推),还有 Paypal、AMD、NVIDIA、Amazon、Hulu 等等。有人会说外企在国内正在衰退啊,我的理解是传统外企确实岗位少了很多,而 IT 类的外企还是有很多职位在招人,只是对比 BAT 招聘名额少很多,所以显得没有多少存在感。

应聘这些职位对英语有一定要求,但这个要求其实又没有你想象的那么高,通常只要能达到日常交流水平就可以了,因为编程工作中的交流相对来说是比较简单的。


这篇已经比较长了,后一篇再接着谈作为工程师如何提高英语能力。我的经验是不用专门为了提高英语而刻意去学,更多是日常工作学习中做一些习惯上的改变,达到日渐提高英语的目的。

待续。

公号同步更新,欢迎关注👻