TypingLearn解决了我在学习英语中的一大痛点
上一次在博客园发贴还是在上一次(2021年),那个时候博客园就遇到了危机(被罚款)。彼时在疫情期间,我个人生活也受到了影响,先后去了多个城市,最终在上海找到了 .NET Web开发的岗位,还是比较幸运的,因为这就是我感兴趣的。
TypingLearn解决了我在学习英语中的一大痛点
一些背景
我是一个开发者(俗称码农),在一系列的机缘巧合下,我开发了一个在线学习英语的网站,以此来提升自己的英语能力,在此分享给大家,希望跟大家共同进步。
英语是非常通用的技能,对于我个人来说,它至少有几个方面的作用:
- 获取更多原始有效的信息
- 提升在职业上的优势
- 提供更多的机会(职业和人脉)
在我工作两三年后,我就把英语学习作为一个主要的目标之一,当然我对自己的规划一共有三个方面:身体/英语/职业技能。
在将近十年的从业生涯中,我发现只有职业技能我得到了增强,身体几乎是越来越差,英语几乎是原地踏步。要说分个优先级的话,那一定是 身体>英语>职业技能。
我不再把提升职业技能当成目标,因为对于编程,我从小就开始接触,本身就是喜爱,有足够的内驱力去了解和学习新的知识。
开发的契机
现在,我把提升英语能力作为主要的实现目标。
我曾经尝试过很多种方式去进一步提升英语能力,包括使用各种APP,甚至是付费一对一的外教课程。最后我得出一个结论:
对于大部分人来说,学习英语最大的痛点不是使用什么工具,而是坚持。或者我们可以用以下公式来表示:
基数(学习时间) * 系数(学习效率)=成果
尽管不同的方式方法有差异,但这只是其中一个因素,也就是学习效率。如果不投入足够的时间来积累基数,那么一切都是徒劳的。
很多事情 ,本身并不难,但坚持很难。这同样适用于身体锻炼。所以在这样的需求和背景的驱动下,我经过很多观察和总结,动手实现了Typinglearn.cn 这个英语学习的网站(通过自定义词典也可以学习其他语言)。
我首先要解决的是坚持的问题,这是最大的痛点。我发现对于我个人来说,使用APP学习,或单纯的听音频、看视频 ,很快就失去了注意力和兴趣,难以坚持。但是通过键盘录入的方式,我可以在比较专注的状态,坚持超过1个小时去学习英语。
动手开发
作为一个有丰富开发经验的码农,有了实际的需求,又找不到现成可用的工具,为什么不自己开发呢?
大概经过三个月的时间,我开发出第一个可上线的版本,同时处理一些关于网站备案和支付认证相关的事宜。
我使用的开发技术是.NET和Angular,目前也已经升级到最新的NET8和Angular17。关于UI,是花钱找人设计的。
从需求到产品原型,然后制定开发规划,到实施前后端开发和上线,几乎都是我一个人完成的(还有一个做前端的小伙伴,但由于工作过于忙碌,很少参与)。
用户使用和反馈
现在网站已经上线和运行超过一个月了,我只是在很小范围内的目标用户进行试用,同时也在思考学习效率上的问题。这里分享几个案例:
- 目前我个人主要使用的网站功能是目标管理,我设定要学习的词典和日期,系统会生成每天学习和复习的单词,我照着这个进度来就可以了。同时我添加了类似于“记忆卡片”的方式,正面英文,反面翻译,我发现,在我学习新单词之前看一遍,以及在学习之后,再看上三遍,确实有不错的效果。
- 我遇到一个用户,他的需求是学习法语,为此我还专门为该用户对法语键盘(加拿大)进行了录入优化;通过自定义词典功能,用户可以自己构建学习内容。
- 还有一个用户把网站功能作为一个辅助记忆词汇的工具,他也是使用自定义词典功能,他的场景是对上百个单词进行默写背诵,并能够反复练习错误的词汇。跟该用户的互动和反馈,我优化了平板和移动设备相关的支持,以及很多其他体验上的细节。
后续计划
当我把网站定位成以英语学习为目标的时候,这就决定了走入深水区。但总的来说就是两个方面,一个是能够让用户坚持,或者说让坚持变得有趣,这是解决基数问题。另一个是不断的发掘和完善更有效的方式,这个是解决效率上的问题。
目前网站的主要功能是单词记忆,这还是处于基础阶段,还有听力和阅读以及写作,之后我会通过跟行业内的人交流以及跟用户的反馈,再经过自身的实践,推出一些方式来加强这三部分的练习。
在其他方面,我还会加强用户之间的互动性,让大家能够共同学习,共同进步!
TypingLearn解决了我在学习英语中的一大痛点的更多相关文章
- Android学习开发中如何保持API的兼容
Android学习开发中如何保持API的兼容: 1,采用良好的设计思路 在设计过程中,如果能按照下面的方式来进行设计,会让这个API生命更长久 面向用例的设计,收集用户建议,把自己模拟成用户,保证AP ...
- 学习Spring中遇到关于BeanFactory及测试类的问题
最近在学习Spring,使用的是Spring 5.0.1 学习书本中使用的是4.0 学习书本中使用以下来加载配置文件及设置 Resource resource = new ClassPathResou ...
- Flink 从0到1学习 —— Flink 中如何管理配置?
前言 如果你了解 Apache Flink 的话,那么你应该熟悉该如何像 Flink 发送数据或者如何从 Flink 获取数据.但是在某些情况下,我们需要将配置数据发送到 Flink 集群并从中接收一 ...
- Zookeeper学习笔记(中)
Zookeeper学习笔记(中) Zookeeper的基本原理和基本实现 深入了解ZK的基本原理 ZK的一致性: ZAB 协议: Zookeeper 原子消息广播协议 ZK通过选举保证 leader ...
- 深入学习PHP中的JSON相关函数
在我们当年刚刚上班的那个年代,还全是 XML 的天下,但现在 JSON 数据格式已经是各种应用传输的事实标准了.最近几年开始学习编程开发的同学可能都完全没有接触过使用 XML 来进行数据传输.当然,时 ...
- 学习PHP中的国际化日期格式化操作
对于国际化功能来说,日期相关的格式化操作也是一块重头戏,毕竟不同的时区,不同的国家对于日期的表示方式都会有些不同.今天我们主要来学习的就是国际化地表示日期相关的信息内容. 日期格式化 首先就是最直接的 ...
- 学习PHP中Fileinfo扩展的使用
今天来学习的这个扩展其实现在也已经是标配的一个扩展了,为什么呢?因为 Laravel 框架在安装的时候它就是必须的一个扩展,没有打开它的话,连 Laravel 框架都是无法使用的. Fileinfo ...
- 学习PHP中的国际化功能来查看货币及日期信息
做为一门在世界范围内广泛使用的编程语言,国际化能力往往是衡量一个编程语言是否能够大范围流行的重要内容.特别是对于 PHP 这种以 Web 页面编程为主战场的语言来说,国际化能力更是重中之重.在 PHP ...
- 编写Java程序,模拟教练员和运动员出国比赛场景,其中运动员包括乒乓球运动员和篮球运动员。教练员包括乒乓球教练和篮球教练。为了方便出国交流,根乒乓球相关的人员都需要学习英语。
需求说明: 模拟教练员和运动员出国比赛场景,其中运动员包括乒乓球运动员和篮球运动员.教练员包括乒乓球教练和篮球教练.为了方便出国交流,根乒乓球相关的人员都需要学习英语.具体分析如下: (1)共同的属性 ...
- 学习sql中的排列组合,在园子里搜着看于是。。。
学习sql中的排列组合,在园子里搜着看,看到篇文章,于是自己(新手)用了最最原始的sql去写出来: --需求----B, C, F, M and S住在一座房子的不同楼层.--B 不住顶层.C 不住底 ...
随机推荐
- SQL ALTER TABLE 语句- 灵活修改表结构和数据类型
SQL ALTER TABLE 语句 SQL ALTER TABLE 语句用于在现有表中添加.删除或修改列,也可用于添加和删除各种约束. ALTER TABLE - 添加列 要在表中添加列,请使用以下 ...
- C#中十进制转与二进制相互转换
将十进制转换为二进制 将二进制转换为十进制
- 6本值得推荐的MySQL学习书籍(有赠书福利)
前言 在DotNetGuide技术社区交流群和微信公众号后台经常收到小伙伴们的留言,让我出一期MySQL相关学习书籍的推荐文章.因此,今天我特意为大家精选了 6 本值得推荐的 MySQL 学习书籍,希 ...
- Centos调整分区存储大小
将/home下900G转移到/目录下 1.查看分区大小:df -hl 2.备份home文件:tar cvf /run/home.tar /home 3.终止home文件进程(切换到非home路径下执行 ...
- UML 哲学之道——概况篇[二]
前言 简单介绍一下uml的概况篇. 正文 UML 概述: url 包括: 事物 关系 图 扩展机制 事物: 结构: 类.接口.构件.节点等等 行为:交互.状态等等 分组:包.子系统等等 注释:注释 关 ...
- 重新点亮linux 命令树————守护进程[二十三]
前言 简单整理一下守护进程. 正文 守护进程一般是开机启动的. 使用nohup 与 & 符号配合运行一个命令 nohup命令使进程忽略hangup(挂起)信号 使用tail 查看log文件. ...
- vue项目如何部署?有遇到布署服务器后刷新404问题吗?
一.如何部署 前后端分离开发模式下,前后端是独立布署的,前端只需要将最后的构建物上传至目标服务器的web容器指定的静态目录下即可 我们知道vue项目在构建后,是生成一系列的静态文件 常规布署我们只需要 ...
- Borůvka MST算法
当我认为最MST(最小生成树)已经没有什么学的了,才发现世界上还有个这个kruskal和prim结合的玩意 Borůvka 运用并查集的思想,先将每一个初始点集初始化为有且只有自己的点集,然后每一次合 ...
- K8s控制器---Replicaset(7)
一.Replicaset(目前少用了) 1.1 控制器管理pod 什么是控制器?前面我们学习了 Pod,那我们在定义 pod 资源时,可以直接创建一个 kind:Pod 类型的自主式 pod,但是这存 ...
- 理解FPGA内部的同步信号、异步信号和亚稳态
FPGA(Field-Programmable Gate Array),即现场可编程门阵列.主要是利用内部的可编程逻辑实现设计者想要的功能.FPGA属于数字逻辑芯片,其中也有可能会集成一部分模拟电路的 ...