聊聊程序员如何学习英语单词:写了一个记单词的小程序

背景:

关于英文对程序员的重要性,就不多说了!

英语的学习,有很多,今天也不聊多,只聊英语单词!

关于单词的记忆,找过很多方法,下载过很多软件。

如图(其它不好用的都卸载了):

上图算是我以前用过软件,注意,是以前哦~~~

意思就是没有坚持下来~~~~

随时间的推移,最后它们还是被我遗忘了~~~

为什么???不能:坚持!坚持!坚持!

学习思考:

一直在找方法:

1:下载过联想记忆法、背文章记单词,词根,各种视频~~~

2:连单词的数据库都网上下载了一份了,期望从数据库的直接记忆单词快些~~~

通过各种查询语句,整理相似度的来记,才1天,就没后文了~~~

每天都在占用时间的事情:

可能写框架,可能写博文,可能其它事,一天一天过的很快~~~

于是,就在反反复复中~~~忘了背背了忘~~~~~

经过重新的思考之后,我觉方向错了!

我应该找一个如何坚持的方法,而不是继续找一个如何更快速学习的方法。

像产品经理一样思考(做个小程序(网页版))

我思考着,怎么利用下载的单词数据库来做点什么让自己能更好的坚持。

一开始思考,每天抓取CodeProject上的英文文章1篇;

然后分析单词频率,把频率最高的10个单词做为学习的方向。

后来又被自己否了:

1:出现的频道高的一定是那些the that this is a apple之类的,没有意义,要做过滤的话,工作量又大。

2:读一篇文章,学几个单词,估计很难坚持(毕竟从小到大都是这种学习模式,已经无数次验证了没用)。

3:纯记忆的短期记忆学习,和浪费时间没差别,又不是应付短期的考试。

于是,光单词的展示不行,必须要有思考和交互在里面!

目前的暂时效果是这样的:

最终思路:

1:One Day Two Words,一天2个单词(一开始是10个,后来觉的多了,毕竟有互动,要打字,怕10个容易坚持不来)

2:单词印象:每个人都会对单词进行评论(人玩多了,就会产生很多有意思有评论,前提是看大伙会不会玩)

3:造句:小时候学中文字的时候,老师都叫我们造句的,为什么长大后学英文就没强制这个要求了?

4:我的记录:可以查学过的词~~~~

5:单词库有3万多个,我挑了雅思共4034个词,随机出!

总体而已,主要是降低学习难度,这样容易坚持~~~

整体完成后,感觉还不够,内心隐隐都觉的还缺少什么,后续看看网友有什么建议~~~

技术思路(时间,给自己半天时间完成任务):

 1:要支持手机浏览:

一开始还想着弄个前端的框架,或者弄个JQ Mobile之类的,搞个html+api请求。

后来光找框架和看Demo就花了不少时间,感觉做个简单的东西这么费时间,然后直接给我毕了。

于是,用Table,最好的兼容,最容易的布局!

用WebForm的ASPX,最省时的处理手段。

2:性能与并发的考虑:

网站要部署在原有的VPS上,1共就1G内存,已经跑了六七个网站了。

因此站用资源要少,性能要好,要经得起人民的考验。

数据库:

一开始是计划用文本数据库的;

但原有的单词数据已经在sql2005上了,顺手用sql2000了。

性能和并发:

页面要简单,能省多少是多少,于是一个JS都木有了;

对单词做了缓存,对单词的评论提交做了队列写;

考虑到访问量并不大,展示是直接读的数据库,有自动缓存。

安全:

考虑到并不是人人都很友善,会不会有人故意提交大量的一堆垃圾数据过来呢?

于是在后端做了简单的安全的验证。

前端的验证也很简单验证了一下长度。

3:音标采集:

自带的词库,有些单词的音标可能缺少,因此需要有一个采集的过程。

于是要找一个可以采集的点,一开始定位去百度里找:

写了代码采了一下,发现单词都在js里混淆输出。

想用百度API,发现要Money~~~~

时间很紧张,因为只给自己一个下午的时间~~~~

后来又找了几个,最后发现还是微软家的亲切:

图片框起来的,但是,是采不到的,因为也是JS里混淆的,然而:

标题描述里竟然有音标~~~这都被我发现了,写一段这样的代码就可以拿到了:

 private string GetWordPronunciation(string word)
        {
            string pronunciation = string.Empty;
            WebClient wc = new WebClient();
            wc.Encoding = Encoding.UTF8;
            string result = wc.DownloadString("http://cn.bing.com/dict/search?q=" + word);
            string key = "英[";
            int index = result.IndexOf(key, StringComparison.Ordinal);
            if (index == -1)
            {
                key = "美[";
                index = result.IndexOf(key, StringComparison.Ordinal);
            }
            if (index > -1)
            {
                int end = result.IndexOf(']', index);
                pronunciation = result.Substring(index + key.Length, end - index - 2);
            }
            return pronunciation;
        }

扩展的知识点IndexOf:

当我简单用WebClient的DownString拿到html存在result变量时(UTF8编码)。

result=".....英[......";

我用:result.IndexOf("英["),竟然返回-1,我纳闷了一下。

通过SubString截掉前面变成:result="英[...";

于是:result.StartWith("英["),竟然返回false,我纠结了一个。

可是:result[0]==‘英' && result[1]=='[' 即是true的。

后来搜了一下,才发现:

html.IndexOf(key, StringComparison.Ordinal)

这样就正常了,解决在于:StringComparison这个参数了。

虽然理解参数的意义,但是不解的是:

这里并木有特殊的第三方字符?

而且采集的几千个词,有1000多个出现这种情况,目前无解,只能注意!!!

成果:英文单词学习网址:

http://word.cyqdata.com/

单词数据库下载地址:

如果你需要单词的数据库,就在这里:

http://download.csdn.net/detail/cyq1162/9445894

总结:

就这样,昨天花了一个下午,半个晚上,今天又半个下午,把这个小程序给完成了。

希望能坚持~~~大伙也一起来,一群人坚持,比一个人更容易坚持!

  • 17
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
delphi源码迷你背单词源码:内涵大量词典,可以背几乎所有的单词!! CHINESE.DAT config.ini DFHGWPRN.TTF DictStar.ttf ENGLISH.DAT GMAT词汇.dst GRE 词频表字母序(zm).dst GRE 词频表词频序(zm).dst GRE必背.dst GRE词汇.dst GRE逆序.dst list.txt MBA词汇(zm).dst PP2 中的单词(zm).dst PP2 填空词汇(zm).dst PP2 类比反义词汇(zm).dst wordrain dir.txt 上教精读第一册.dst 上教精读第二册.dst 上教精读第五册.dst 上教精读第六册.dst 分类词库.dst 初中英语第一册.dst 初中英语第三册.dst 初中英语第二册.dst 初中英语第五册.dst 初中英语第六册.dst 初中英语第四册.dst 剑桥少儿英语第一级上.dst 剑桥少儿英语第一级下.dst 剑桥少儿英语第三级上.dst 剑桥少儿英语第三级下.dst 剑桥少儿英语第二级上.dst 剑桥少儿英语第二级下.dst 医学英语第一册.dst 医学英语第三册.dst 医学英语第二册.dst 商务英语词汇.dst 商务词汇.dst 外贸英语一.dst 外贸英语三.dst 外贸英语二.dst 外贸英语四.dst 大学英语5级6级常用词组.dst 大学英语六级词汇.dst 大学英语四级词汇.dst 大学英语自学教程上.dst 大学英语自学教程下.dst 大学词组.dst 太傻单词.dst 太傻单词7月精简版(zm).dst 小学英语第一册.dst 小学英语第三册.dst 小学英语第二册.dst 小学英语第四册.dst 常用前后缀.dst 懒人单词(zm修正).dst 托福词汇(zm).dst 托福词汇.dst 托福词组.dst 新概念英语第一册.dst 新概念英语第三册.dst 新概念英语第二册.dst 新概念英语第四册.dst 新编初中英语第一册.dst 新编初中英语第三册.dst 新编初中英语第二册.dst 新编小学英语第一册.dst 新编小学英语第三册.dst 新编小学英语第二册.dst 新编小学英语第五册.dst 新编小学英语第六册.dst 新编小学英语第四册.dst 新编高中英语第一册必修本下.dst 新编高中英语第三册实验本上.dst 新编高中英语第三册实验本下.dst 新编高中英语第三册必修本上.dst 新编高中英语第二册实验本上.dst 新编高中英语第二册实验本下.dst 新编高中英语第二册必修本上.dst 新编高中英语第二册必修本下.dst 李扬疯狂英语三百六十五句.dst 研究生入学词汇.dst 研究生入学词组.dst 职称英语等级考试A.dst 职称英语等级考试B.dst 职称英语等级考试C.dst 计算机词汇.dst 许国璋英语第一册.dst 许国璋英语第三册.dst 许国璋英语第二册.dst 许国璋英语第四册.dst 词根忆法.dst 金融英语(zm).dst 雅思英语(zm修正).dst 雅思英语完整版(zm).dst 高中英语第一册.dst 高中英语第三册.dst 高中英语第二册.dst 高教自学考试英语.dst

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值