作者于江水

这是一份专为程序员编写的英语学习指南

虽然 PHP 是最好的语言,但所有程序员必须学会的只有英语。面对铺天盖地的英文文档和教程,我们能做到的只有以最快的速度学会这门语言了。近日,一名程序员把自己学英语的心路历程发布在 GitHub 上,并很快获得了超过 1900 个 star。

虽然这名程序员此前并没有很好的英语基础,但却曾面临「必须学好」英语的挑战。面对这样的情况,他选择使用程序员思维来解决这个问题。让我们看看他是如何做到的。

项目链接:https://github.com/yujiangshui/An-English-Guide-for-Programmers

本指南的内容概要和目标人群

本人上一次正式英语考试大约是五年前大学四级考试,得分 442,大学每学期考试基本是 60 多分过线就好,纯属英语渣底子很差。但是由于一些特殊需求,雅思需要考到 6.5 分及以上,所以自 2018 年 6 月份开始一直在学习英语。在学习过程中,对语言学习从陌生到熟悉,从毫无头绪到了解一些实用的训练方法,从乱看经验经常换方法到总结出自己的学习方法。

经过四个月断续学习 + 接近两个月的全职突击备考,考了 PTE 考试(类似雅思的英语水平测试)并拿到 63 分,对应雅思 6.5 中上,满足大部分学校留学要求以及出国技术移民的要求。备考过程十分艰苦,个人感觉远超高考。虽然离十分流畅的跟 Native Speaker 交流还有一段距离,但是相比四级 442 的水平有了几倍的提升。故此编写教程进行阶段性总结,一来方便自己制定下一步训练计划,二来希望可以对同等水平有需求的朋友有所帮助。

本教程目标人群是想要花一些时间真正掌握英语的人,尤其适合英语渣。对于英语渣来说,网上杂七杂八的英语学习技巧和经验不一定会有很多帮助,甚至会误导。比如这篇回答(https://www.zhihu.com/question/22968875/answer/529514279)就说了,如果别人问答主如何学英语,她顶多给一句「多看美剧,培养语感」,好在这篇回答详细说了答主的水平和长期的努力细节,否则会误导一大片低水平英语渣去拼命的看美剧。所以在英语学习过程中,要注意查看符合自己水平的经验和教程,否则可能会走弯路。

如果你在寻找《21 天掌握英语》、《10 天背会 1000 词》、《10 天搞定英语写作》之类的资料,这份指南并不适合你。尤其是语言学习,学习周期都是以月或者年来计的,你越早明白语言学习没有技巧,就会越少浪费时间和金钱在各种资料和经验上面,走越少的弯路。

由于网上各种英语学习技巧的效果跟学习者的水平相关,所以本指南会深挖语言学习的本质(主要用中文举例)并用程序员易于理解的方式去思考,并提供自己根据本质推演出来的训练方法和经验做参考重中之重是你要根据本质自己设计适合自己的训练方法,同时可以甄别网上看到学习方法和资料,判断是否适合自己使用。

需要补充的是,由于本人的水平有限而且也在持续学习,后续会经常完善、升级、更新本指南,强烈建议 Watch 并时而回来看看。因此如果转载本指南,请保留出处避免信息过时。如有异议或者建议,也十分欢迎在 Issue 中讨论。还需要注意的是,由于本文是文本形式,不好播放声音,所以用中文来描述一些单词的错误发音,在日常英语学习中应该使用音标而不能使用中文标注发音。

如何构建一个识别英语的程序

现在我们不讨论你如何学英语,而是让你构建一个可以识别、交流英语的程序,你会如何设计?

简单的需求分析

以中文为例,当你听到一个女人对一个男人说:「你是一个男人吗?」时,你会收集到哪些信息?你需要哪些信息来明确这个女人想表达的确切意思?

首先是听力输入,你需要确保麦克风录入了音频,然后拿到的声波内容是 U*#@&!&&*。之后我们需要将声波内容输入到一大堆分析器中进行分析,并得到比较精准的意图。

第一个可能是性别分析器,通过一定的规则识别出这是一个男性的声音还是女性的声音。因为这句话是男的说出来还是女的说出来表达的意思是不一样的。

第二个就是内容识别器,先是加载粤语匹配引擎和粤语语料库发现声波无法匹配解析,那么换成普通话引擎和语料库。此时如果你的语料库里有「你」、「是」、「一个」、「男人」、「吗」这些声音素材,那么就可以匹配解析出这句话:「你是一个男人吗?」。换言之,如果你没有粤语语料库和解析引擎,即便是给你一段粤语录音你也听不懂。如果这句话有一个生僻单词你语料库里没有,那么也是无法识别出来。

之后还有更多识别器,比如年龄、情绪识别器、重音和疑问语气识别句等,这些因素共同决定了这句话究竟想要传达什么意思。如果是一个女性的激动等感叹语气「你是一个男人吗!」,那么可以推测出这个女的跟男的有一定的关系,这个男的做出了一些伤天害理的事情导致这个女性在质问。如果是一个轻声细语的疑问句「你是一个男人吗?」,可能是一名女性想确认对方的性别。当然更准确表达这个意图的句子应该是「你是男性吗?」。

比较基础的方案设计

上面需求分析只是简单的介绍了 声音 -> 听力识别器 -> 意图 的过程,实际上语言交流是听说读写,其中包含两个识别器(听力识别器和视力识别器),一个核心理解器,两个表达器(口语表达器和书写表达器)。通过对应的实际场景,我们可以简单的梳理出对应需要的功能。

# 听力识别器

  • 听力能力

  • 说明:要求可以输入声音并转换成一种可分析的信号。

  • 训练:买个好麦克风,对应人类是保护好耳朵和听力。

  • 口音识别器

  • 说明:各类方言比如粤语,各种口音比如东北口音、广东口音、英式发音和美式发音。

  • 语言特性识别器

  • 说明:语言之间会有不同特性,比如中文没有略读,都是一个一个字念出来,而英文会为了说话省劲而略读或者连读,比如「drink it」并不是单个蹦的「准克一特」,而是类似「准 kei 特」。中文的「喝它」就是「喝它」,不会有类似「赫特」之类的变化。

  • 训练:扩充特殊语言引擎的匹配规则,扩充语料库,当听到「准 kei 特」可以识别出是「drink it」。

  • 音量调节和杂音处理器

  • 说明:可以通过算法过滤无用杂音,并将小音量调大使其清晰。人类天然进化出这种能力,无需特殊训练。

  • 语气、性别、身份、语速识别器

  • 说明:人类天然进化出这种能力,无需特殊训练。

  • 上下文缓存器

  • 说明:交流过程要有上下文内容缓存,结合输入理解器。

# 视力识别器

  • 视力能力

  • 图形识别器

  • 说明:不同字体、变形(英文大小写、中文繁简体等)都可以识别出来具体字符,同时需要识别标点符号等输入理解器。

  • 训练:识别能力、精准度和速度。比如一眼看出 message 和 massage 是不一样的。

  • 上下文缓存器

# 理解器

理解器可以说是最重要的部分了,也是最难的部分

  • 语料库

  • 说明:字母、单词、发音、多重语境含义、历史文化背景、不同形态,同义词反义词相近词。

  • 训练:需要长期积累和扩充,需要大量训练。

  • 识别引擎

  • 说明:单词拼装起来的句型句式、语法、时态含义和规则、标点符号、单复数、惯用表达。

  • 训练:单点突破,专项训练,逐步体系化积累。

  • 思考和思维能力

  • 说明:针对意图结合之前的记忆以及经验得出自己想要表达的意图。

  • 训练:结构性表达,思维能力锻炼,思考和总结能力。这个与语言无关。

  • 上下文缓存器

# 口语表达器

当理解器思考运算并得到想要表达的意图之后,就需要开始表达传递出去。

  • 意图语料组装器

  • 说明:将意图结合语料中的单词、句型句式、惯用表达进行匹配组合,挑选出最符合你意图的语句。

  • 发音器

  • 说明:根据组装出来的内容,结合特殊的连读、略读等语言特性,转换成发声信号。对应人类的话是控制舌头、声带和呼吸系统的肌肉使其变成对应形状,让气流通过声带发出对应声音。

# 书写表达器

  • 意图语料组装器

  • 书写表达器

  • 说明:将语料组装结果以视觉的方式表达,对于人类是控制手部肌肉书写出对应形状。

从上面可以看出,口语听力相对于阅读写作更加困难,主要因为实时性的要求。你必须迅速反馈不经过思考,这要求你要无意识的去用英语表达,所以语言学习没有技巧,只有大量训练。

图片来自:toggl.com

英语能否速成?网上那些快速背单词的方法是否有效果?

你越早明白语言学习没有技巧,就会走越少的弯路、花越少的冤枉钱。

当然可能也有好的技巧,可以了解他们的方法,分析下是否能真正学到、练到,再决定用他们的方法。不过除非天才,速成基本上是不可能的事情,你也可以看到上面介绍,英语要学习的信息量太大,而且重点是训练成无意识的输入输出。如果你依赖一些思考和技巧,那么肯定会卡顿,导致无法正常交流。

如何使用这份指南?

  1. 先了解语言学习的本质,即语言学习到底是要学习什么,训练什么。

  2. 了解本人的一些有效学习方法,查看我是如何通过本质推断这个方法是否有效。

  3. 按照自己的需求定制学习方法,在日后看到某些学习方法时可以有效推断该方法是否有效。

这里举一个反例:有什么相见恨晚的背单词方法?(https://www.zhihu.com/question/48040579/answer/521694493),大概思路就是 10 个随机单词一组,先大体一看,开始编故事串联起来十个单词,通过艾宾浩斯周期回顾这组单词,回顾时遮住汉语意思开始回想,如果想不起来想想小故事,通过故事来回忆起这个单词的意思。

这其实就是联想的记忆技巧,你试一下绝对也好用。但这个过程中有很多问题:

  1. 词义损失严重。一个单词几个简单的中文释义,而且还基于部分中文释义来编造离奇小故事,会导致词义理解偏差更严重。

  2. 语料库内容不正确。语料库你需要记忆的是 单词 -> 诸多释义、例句、声音等等,但这种方法你记住的是 单词 -> 几个释义,一个故事,故事关联的其他单词。

  3. 缺乏当前单词听力和发音的输入、锻炼。

所以知乎上找来的方法不推荐使用,因为投入的成本和收获比比较低。试想:当一个老外对你说一个单词,你会用故事去联想这个单词是什么中文意思,然后再去做出反应吗?而且这个中文意思可能并不是老外想表达的意思。其次,单词你可能说起来磕磕碰碰甚至发音是错的,因为在背的过程中,你并不知道它准确的发音,也没有训练。

工程语言
1
相关数据
语料库技术

语料库一词在语言学上意指大量的文本,通常经过整理,具有既定格式与标记;事实上,语料库英文 "text corpus" 的涵意即为"body of text"。

知乎机构

知乎作为中文互联网知名知识内容平台,致力于构建一个人人都可接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,高效获得可信赖的解答。 目前,知乎已经覆盖「问答」社区、一站式知识服务平台「知乎大学」、短内容分享功能「想法」等一系列产品和服务,并建立了包括音频、视频在内的多元媒介形式。截止 2018 年 8 月底,知乎用户数已突破 2 亿,回答数超过 1.2 亿。未来,知乎进一步加大对 AI 技术和应用的投入,构建一个由 AI 驱动的智能社区,让知识普惠每一个人。