虽然 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*#@&!&&*。之后我们需要将声波内容输入到一大堆分析器中进行分析,并得到比较精准的意图。
第一个可能是性别分析器,通过一定的规则识别出这是一个男性的声音还是女性的声音。因为这句话是男的说出来还是女的说出来表达的意思是不一样的。
第二个就是内容识别器,先是加载粤语匹配引擎和粤语语料库发现声波无法匹配解析,那么换成普通话引擎和语料库。此时如果你的语料库里有「你」、「是」、「一个」、「男人」、「吗」这些声音素材,那么就可以匹配解析出这句话:「你是一个男人吗?」。换言之,如果你没有粤语语料库和解析引擎,即便是给你一段粤语录音你也听不懂。如果这句话有一个生僻单词你语料库里没有,那么也是无法识别出来。
之后还有更多识别器,比如年龄、情绪识别器、重音和疑问语气识别句等,这些因素共同决定了这句话究竟想要传达什么意思。如果是一个女性的激动等感叹语气「你是一个男人吗!」,那么可以推测出这个女的跟男的有一定的关系,这个男的做出了一些伤天害理的事情导致这个女性在质问。如果是一个轻声细语的疑问句「你是一个男人吗?」,可能是一名女性想确认对方的性别。当然更准确表达这个意图的句子应该是「你是男性吗?」。
上面需求分析只是简单的介绍了 声音 -> 听力识别器 -> 意图 的过程,实际上语言交流是听说读写,其中包含两个识别器(听力识别器和视力识别器),一个核心理解器,两个表达器(口语表达器和书写表达器)。通过对应的实际场景,我们可以简单的梳理出对应需要的功能。
# 听力识别器
# 视力识别器
# 理解器
理解器可以说是最重要的部分了,也是最难的部分
# 口语表达器
当理解器思考运算并得到想要表达的意图之后,就需要开始表达传递出去。
# 书写表达器
从上面可以看出,口语听力相对于阅读写作更加困难,主要因为实时性的要求。你必须迅速反馈不经过思考,这要求你要无意识的去用英语表达,所以语言学习没有技巧,只有大量训练。
图片来自:toggl.com
英语能否速成?网上那些快速背单词的方法是否有效果?
你越早明白语言学习没有技巧,就会走越少的弯路、花越少的冤枉钱。
当然可能也有好的技巧,可以了解他们的方法,分析下是否能真正学到、练到,再决定用他们的方法。不过除非天才,速成基本上是不可能的事情,你也可以看到上面介绍,英语要学习的信息量太大,而且重点是训练成无意识的输入输出。如果你依赖一些思考和技巧,那么肯定会卡顿,导致无法正常交流。
这里举一个反例:有什么相见恨晚的背单词方法?(https://www.zhihu.com/question/48040579/answer/521694493),大概思路就是 10 个随机单词一组,先大体一看,开始编故事串联起来十个单词,通过艾宾浩斯周期回顾这组单词,回顾时遮住汉语意思开始回想,如果想不起来想想小故事,通过故事来回忆起这个单词的意思。
这其实就是联想的记忆技巧,你试一下绝对也好用。但这个过程中有很多问题:
所以知乎上找来的方法不推荐使用,因为投入的成本和收获比比较低。试想:当一个老外对你说一个单词,你会用故事去联想这个单词是什么中文意思,然后再去做出反应吗?而且这个中文意思可能并不是老外想表达的意思。其次,单词你可能说起来磕磕碰碰甚至发音是错的,因为在背的过程中,你并不知道它准确的发音,也没有训练。