说来丢人,来美一年半英语依旧很挫,除了熟练掌握在句子中任意部位插入“kind of”以外毫无长进。原因多种多样,社交圈太小、没当过TA,以及过于信奉“闷声发大财”,当然最主要的还是自己懒,没有主动去提高英语水平。前几天被导师训斥“You really should improve your communication skills!”,再加上最近一些大形势上的变化,让我愈发感受到提升英语的迫切性,不能再像 Ph.D. 申请时一样被英语挡住上升通道了。
我的主要问题还是在词汇量,托福词汇我就没怎么背熟,GRE更别提了,而且到现在都忘得差不多了。“熟读唐诗三百首,不会作诗也会吟。”先不管语法、口音的问题,要是能熟练掌握两万的英语单词量,肯定不会在表达自己的想法上有太大问题了吧。于是我开始琢磨该怎样真正有效地提升我的词汇量。
回忆一下过去对着单词书背单词,主要有以下问题:
- 首先就是枯燥,无法集中精神;
- 对于一个新列表,我不能有效地找出那些单词是我熟悉的、哪些单词是需要我认真记忆的;
- 对于背过的单词,我也无法有效地找出那些需要重点复习的单词;
- 在背的时候,怎样判定自己已经记熟了的标准很模糊,稍微走一下神,就会发现自己一直在念叨“abandon”
- 平时看美剧的时候我也会注意把不认识的词记下来,然而过一会就不知道记录的纸去哪里了。
2和3都可以归结为一个优先级的问题,即怎样把我的精力按需分配给不同熟悉度、不同难度的单词。我以前也用过一些背单词软件,比如扇贝,是比较好地解决了这个问题的,合理安排了每天的新单词和需要复习的单词。然而扇贝没有解决第4个问题:扇贝会给每个单词放出四个意思选项让我选择,三次选对就判定为记住了。这样做的后果是,即使我完全不知道这个单词的意思,我也能在三四秒内选出单词的意思。换句话说,我只记住了答案长什么样,而没有真正理解答案是什么,也没有记住这个单词的拼写。此外三四秒选择答案,记忆时间太短了。
为了解决以上问题,我决定自己造轮子。2、3、5都说明我需要一个集中的、数字化的单词库,首先保证从各个渠道积累的新单词不会丢掉,其次要个性化地记录每个单词我背了多少遍了、熟练度有多高。针对4,我觉得判定标准需要是“给出释意正确拼写出单词”。怎么解决1,最后再说。
于是我用 Python 写了两个脚本。mew_gen.py 用于搜集单词,修改word_text
变量,每一行代表一个单词和其解释,空格分隔。运行以后生成yaml格式的文本并打印到屏幕上,复制粘贴出来保存到自己的单词库里面。mew.py 用于浏览和自我测试。一个单词有h
和f
两个属性,每次用 mew.py 自我测试时,只有正确地针对一个单词的每个释义都拼写出了这个单词时,f
值才会减1,否则加1。f
最多降到0。而只要某个单词测试时出一次错,其h
值都加1,永远不减少。所以f
值代表了短期的熟练度,h
值是长期熟练度。每次背单词时,优先放出高f
值的词,先去背那些从未记住过的单词。f
相同时,h
高的优先。这样就算我通过测试把每个单词的f
都降低到了0,h
永远在那里,我总是可以很快找到那些我背错了无数遍的单词,而这些单词就是最容易忘记的单词。
f
是个人的奋斗(fight),h
是历史(history)的进程。
最后,解决第一个问题。方法很简单,既然自己花这么大精力设计了这么一套背单词的策略还用 Python 实现出来了,总得投入使用几天吧。要是自己都不用自己的产品,岂不是显得我很失败?于是每次都能兴致勃勃地打开脚本背单词了。
一个月以后我来报告我坚持了几天。2018年3月4日。