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 中的 NULL 值:定义、测试和处理空数据,以及 SQL UPDATE 语句的使用
SQL NULL 值 什么是 NULL 值? NULL 值是指字段没有值的情况.如果表中的字段是可选的,那么可以插入新记录或更新记录而不向该字段添加值.此时,该字段将保存为 NULL 值.需要注意的是 ...
- 【Learning eBPF-3】一个 eBPF 程序的深入剖析
从这一章开始,我们先放下 BCC 框架,来看仅通过 C 语言如何实现一个 eBPF.如此一来,你会更加理解 BCC 所做的底层工作. 在这一章中,我们会讨论一个 eBPF 程序被执行的完整流程,如下图 ...
- VS2019快捷键
快捷键功能CTRL + SHIFT + B生成解决方案CTRL + F7 生成编译CTRL + O 打开文件CTRL + SHIFT + O打开项目CTRL + SHIFT + C显示类视图窗口F4 ...
- Java 内存分析(程序实例),学会分析内存,走遍天下都不怕!!!
相信大多数的java初学者都会有这种经历:碰到一段代码的时候,不知该从何下手分析,不知道这段代码到底是怎么运行最后得到结果的..... 等等吧,很多让人头疼的问题,作为一名合格的程序员呢,遇到问题一定 ...
- docker 应用篇————nginx 例子[六]
前言 简单整理一下nginx 例子. 正文 拉取nginx 镜像. docker pull nginx 那么会拉取nginx:latest 这个. 如果需要其他的,可以去官网查询一下. 2.docke ...
- 关于伺服刹车/急停/前后设备信号对接/PLC输入输出模块的公共端介绍
一.伺服刹车 关键词:急停,急停中间继电器.刹车中间继电器,刹车使能 正文: 通常情况不用硬件为主导而用程序来主导控制,多场景应用方便修改且安全可靠. 伺服刹车硬件,一般是24v电源给进去,就会释放刹 ...
- dojo\dart脚本编程语言
Dojo是一个用于构建高效.可扩展的Web应用程序的开源JavaScript框架.它提供了一系列功能丰富的模块和组件,包括DOM操作.事件处理.异步编程.动画效果等.Dojo还具有强大的用户界面(UI ...
- Linq大白话深入浅出从零基础到手写开源工具兵贵神速系列(一)——为啥需要Linq
所有的技术创新都是为了解决编程实践中的难点和痛点! 如果我们不懂得这项技术所要解决的难点和痛点,我们在使用这项技术的时候就很可能走偏,在细节末节上隔靴搔痒,耗费很长的时间还掌握不了这项技术的精髓! 而 ...
- 力扣537(java)-复数乘法(中等)
题目: 复数 可以用字符串表示,遵循 "实部+虚部i" 的形式,并满足下述条件: 实部 是一个整数,取值范围是 [-100, 100]虚部 也是一个整数,取值范围是 [-100, ...
- DDD as Code:如何用代码诠释领域驱动设计?
简介: 相较于常规的MVC架构,DDD更抽象.更难以理解,各个开发者对DDD的解释也不尽相同.那么哪种设计方式才更好?在学习时如何知道哪种DDD更正统,没有被别人带歪?本文尝试使用"DDD ...