作为一名程序员,深刻的体会到结构化及面向对象思维的重要性。这种思考方式可以有效的帮助你学习生活中的方方面面,以及形成体系化的事物分析方法。对于结构化的编程思想主要还是用于流程化或操作型的事物,而针对英语学习,我觉得面向对象学习方法就很适合。
其实,对于学习语言,我们程序员应该是最擅长的。像C、C++、Java、JavaScript、Python等编程语言,一两个月就能够开始熟练应用。但为何同样是语言,英语怎就一个难字了得。据我对两者的考察,英语相比于编程语言无非在两点上有量的差别:
1、英语的词汇量大,而编程语言需要用到的就那几个关键字,而且很多关键字在编程语言间都是通用的;
2、英语的语法较繁杂且灵活多变,而编程语言的语法规则是很明确的,数量也相对较少;
面对以上两点差别,你可能会说:“量变导致质变,学起来当然就不是一个难度级别了”。当然,英语的学得是不可能速成的,但我认为所有语言的组织框架都是高度一致的。而我们学习英语就是需要先构建起这一套抽象的逻辑框架,相当于在你的头脑中分配好不同数据结构的内存,以及建立模块间的关联。只有先形成理念和体系,后续才能逐步顺畅的往里添加东西,而不会是搞得数据来来回回,最后自己都不知所措,迷惑不已。想必很多朋友面对此情此景,大腿一拍,喝道:“老子就不是这个料,不干了”。如此不了了之,当初的决心到现在化为泡沫,吾甚是惋惜,望三思!
那么究竟该如何用面向对象(或软件开发流程)的思维方式来构建英语的学习流程呢?介绍以下几点,供大家参考和进一步发展。
1、“封装”的思想
最简单的就是将英语中26个字母封装在一个静态类中,当然这个类也可有一些方法用来表达26个字母相关的东西,如字母歌或字母的发音等公共接口;
其次是那些音标的发音可以作为一个类捆绑在一起,方便以后学习单词时使用之;
语法也应该作为类,但这应该是由许多相关联的类构成的一个系统,这里还涉及抽象和继承以及组合,需要根据个人的情况去逐步地组织整个语法类系统;
至于单词和词组的记忆,其实市场上有很多不同的分类记忆书籍,这其实也是利用了类的封装完成的;
最后,我提出另一种封装的思想:以话题(topic)作为类,一个话题会关联一些主要的词汇以及一些句式;这样就可以在我们需要与某人交谈某个话题的时候,能够迅速找到这个话题的类,并使用这个类提供的接口来与他人交流。同时,小的话题类可以通过继承或组合构建大的话题类。
2、“继承”和“组合”的思想
3、“抽象”和“多态”的思想
为了建立不同类的关联,有时我们需要从这些类中找出共性,然后以共性来组织抽象类。同时在不同的话题场景下,当面对同样的外部语言请求时,要求能够做出不同的回复。
4、“迭代”的思想
学习英语必然是一个长久的过程,为了在开始培养对学习英语的兴趣和成就感,我们需要先构建一些小东西拿出来用用,而不是想着一定要能记住几万词汇量,我才敢去和别人交流。这就跟我们学习编程一样,都是从"Hello World"开始的。一个脚印一个脚印逐步的迭代,只有看到自己一点一滴的成功输出,你才能有勇气、有信心继续走下去。
5、“单元测试”的思想
所谓单元测试,就是我构建了这个类,就要去检查一下我的掌握程度。比如某个语法你学过之后,就得通过不同的途径来使用它,检测自己是否还有漏洞,并及时弥补。同时切记不要只是一味的加快学习速度,只有将基础巩固,才能避免未来的拆掉重来。
6、“线上反馈”的思想
当你真正的已能够日常交流的时候,这时就可以暂时不用系统性有规律的来学习英语了,就跟我们说普通话一样。但是在日常交流时也要经常有意识的反馈,修正一些以前可能忽略掉的错误。
后记:
固然学习方法很重要,但专注与坚持是一切学习方法的必备前提。请铭记没有什么是理所当然的,一切都是需要付出的,祝君成才!