上一次在博客园发贴还是在上一次(2021年),那个时候博客园就遇到了危机(被罚款)。彼时在疫情期间,我个人生活也受到了影响,先后去了多个城市,最终在上海找到了 .NET Web开发的岗位,还是比较幸运的,因为这就是我感兴趣的。

TypingLearn解决了我在学习英语中的一大痛点

一些背景

我是一个开发者(俗称码农),在一系列的机缘巧合下,我开发了一个在线学习英语的网站,以此来提升自己的英语能力,在此分享给大家,希望跟大家共同进步。

英语是非常通用的技能,对于我个人来说,它至少有几个方面的作用:

  • 获取更多原始有效的信息
  • 提升在职业上的优势
  • 提供更多的机会(职业和人脉)

在我工作两三年后,我就把英语学习作为一个主要的目标之一,当然我对自己的规划一共有三个方面:身体/英语/职业技能

在将近十年的从业生涯中,我发现只有职业技能我得到了增强,身体几乎是越来越差,英语几乎是原地踏步。要说分个优先级的话,那一定是 身体>英语>职业技能。

我不再把提升职业技能当成目标,因为对于编程,我从小就开始接触,本身就是喜爱,有足够的内驱力去了解和学习新的知识。

开发的契机

现在,我把提升英语能力作为主要的实现目标。

我曾经尝试过很多种方式去进一步提升英语能力,包括使用各种APP,甚至是付费一对一的外教课程。最后我得出一个结论:

对于大部分人来说,学习英语最大的痛点不是使用什么工具,而是坚持。或者我们可以用以下公式来表示:

基数(学习时间) * 系数(学习效率)=成果

尽管不同的方式方法有差异,但这只是其中一个因素,也就是学习效率。如果不投入足够的时间来积累基数,那么一切都是徒劳的。

很多事情 ,本身并不难,但坚持很难。这同样适用于身体锻炼。所以在这样的需求和背景的驱动下,我经过很多观察和总结,动手实现了Typinglearn.cn 这个英语学习的网站(通过自定义词典也可以学习其他语言)。

我首先要解决的是坚持的问题,这是最大的痛点。我发现对于我个人来说,使用APP学习,或单纯的听音频、看视频 ,很快就失去了注意力和兴趣,难以坚持。但是通过键盘录入的方式,我可以在比较专注的状态,坚持超过1个小时去学习英语。

动手开发

作为一个有丰富开发经验的码农,有了实际的需求,又找不到现成可用的工具,为什么不自己开发呢?

大概经过三个月的时间,我开发出第一个可上线的版本,同时处理一些关于网站备案和支付认证相关的事宜。

我使用的开发技术是.NETAngular,目前也已经升级到最新的NET8Angular17。关于UI,是花钱找人设计的。

从需求到产品原型,然后制定开发规划,到实施前后端开发和上线,几乎都是我一个人完成的(还有一个做前端的小伙伴,但由于工作过于忙碌,很少参与)。

用户使用和反馈

现在网站已经上线和运行超过一个月了,我只是在很小范围内的目标用户进行试用,同时也在思考学习效率上的问题。这里分享几个案例:

  1. 目前我个人主要使用的网站功能是目标管理,我设定要学习的词典和日期,系统会生成每天学习和复习的单词,我照着这个进度来就可以了。同时我添加了类似于“记忆卡片”的方式,正面英文,反面翻译,我发现,在我学习新单词之前看一遍,以及在学习之后,再看上三遍,确实有不错的效果。
  2. 我遇到一个用户,他的需求是学习法语,为此我还专门为该用户对法语键盘(加拿大)进行了录入优化;通过自定义词典功能,用户可以自己构建学习内容。
  3. 还有一个用户把网站功能作为一个辅助记忆词汇的工具,他也是使用自定义词典功能,他的场景是对上百个单词进行默写背诵,并能够反复练习错误的词汇。跟该用户的互动和反馈,我优化了平板和移动设备相关的支持,以及很多其他体验上的细节。

后续计划

当我把网站定位成以英语学习为目标的时候,这就决定了走入深水区。但总的来说就是两个方面,一个是能够让用户坚持,或者说让坚持变得有趣,这是解决基数问题。另一个是不断的发掘和完善更有效的方式,这个是解决效率上的问题。

目前网站的主要功能是单词记忆,这还是处于基础阶段,还有听力阅读以及写作,之后我会通过跟行业内的人交流以及跟用户的反馈,再经过自身的实践,推出一些方式来加强这三部分的练习。

在其他方面,我还会加强用户之间的互动性,让大家能够共同学习,共同进步!

TypingLearn解决了我在学习英语中的一大痛点的更多相关文章

  1. Android学习开发中如何保持API的兼容

    Android学习开发中如何保持API的兼容: 1,采用良好的设计思路 在设计过程中,如果能按照下面的方式来进行设计,会让这个API生命更长久 面向用例的设计,收集用户建议,把自己模拟成用户,保证AP ...

  2. 学习Spring中遇到关于BeanFactory及测试类的问题

    最近在学习Spring,使用的是Spring 5.0.1 学习书本中使用的是4.0 学习书本中使用以下来加载配置文件及设置 Resource resource = new ClassPathResou ...

  3. Flink 从0到1学习 —— Flink 中如何管理配置?

    前言 如果你了解 Apache Flink 的话,那么你应该熟悉该如何像 Flink 发送数据或者如何从 Flink 获取数据.但是在某些情况下,我们需要将配置数据发送到 Flink 集群并从中接收一 ...

  4. Zookeeper学习笔记(中)

    Zookeeper学习笔记(中) Zookeeper的基本原理和基本实现 深入了解ZK的基本原理 ZK的一致性: ZAB 协议: Zookeeper 原子消息广播协议 ZK通过选举保证 leader ...

  5. 深入学习PHP中的JSON相关函数

    在我们当年刚刚上班的那个年代,还全是 XML 的天下,但现在 JSON 数据格式已经是各种应用传输的事实标准了.最近几年开始学习编程开发的同学可能都完全没有接触过使用 XML 来进行数据传输.当然,时 ...

  6. 学习PHP中的国际化日期格式化操作

    对于国际化功能来说,日期相关的格式化操作也是一块重头戏,毕竟不同的时区,不同的国家对于日期的表示方式都会有些不同.今天我们主要来学习的就是国际化地表示日期相关的信息内容. 日期格式化 首先就是最直接的 ...

  7. 学习PHP中Fileinfo扩展的使用

    今天来学习的这个扩展其实现在也已经是标配的一个扩展了,为什么呢?因为 Laravel 框架在安装的时候它就是必须的一个扩展,没有打开它的话,连 Laravel 框架都是无法使用的. Fileinfo ...

  8. 学习PHP中的国际化功能来查看货币及日期信息

    做为一门在世界范围内广泛使用的编程语言,国际化能力往往是衡量一个编程语言是否能够大范围流行的重要内容.特别是对于 PHP 这种以 Web 页面编程为主战场的语言来说,国际化能力更是重中之重.在 PHP ...

  9. 编写Java程序,模拟教练员和运动员出国比赛场景,其中运动员包括乒乓球运动员和篮球运动员。教练员包括乒乓球教练和篮球教练。为了方便出国交流,根乒乓球相关的人员都需要学习英语。

    需求说明: 模拟教练员和运动员出国比赛场景,其中运动员包括乒乓球运动员和篮球运动员.教练员包括乒乓球教练和篮球教练.为了方便出国交流,根乒乓球相关的人员都需要学习英语.具体分析如下: (1)共同的属性 ...

  10. 学习sql中的排列组合,在园子里搜着看于是。。。

    学习sql中的排列组合,在园子里搜着看,看到篇文章,于是自己(新手)用了最最原始的sql去写出来: --需求----B, C, F, M and S住在一座房子的不同楼层.--B 不住顶层.C 不住底 ...

随机推荐

  1. Dev 控件 gridControl教程

    Dev 控件 gridControl教程:https://www.bilibili.com/video/BV1gz4y1R7Wk/?spm_id_from=333.788.recommend_more ...

  2. 用户触达难?流失率高?HMS Core预测服务和智能运营,助你提前掌握营销时机,解决此难题。

    用户流失了,触达难? 活动做了那么多,转化仍然很低? 运营也需要提前思考,预测用户动向,提前精准触达,才能事半功倍.结合HMS Core分析服务的预测服务和智能运营,洞察营销时机,实时落地营销策略,提 ...

  3. HarmonyOS应用兼容稳定性云测试

      兼容性测试 兼容性测试主要验证HarmonyOS应用在华为真机设备上运行的兼容性问题,包括首次安装.再次安装.启动.卸载.崩溃.黑白屏.闪退.运行错误.无法回退.无响应.设计约束场景.具体兼容性测 ...

  4. 基于HarmonyOS的HTTPS请求过程开发示例(ArkTS)

      介绍 本篇Codelab基于网络模块以及Webview实现一次HTTPS请求,并对其过程进行抓包分析.效果如图所示: 相关概念 ● Webview:提供Web控制能力,Web组件提供网页显示能力. ...

  5. HTC Vive之Unity3d开发日记——手柄交互编程

    目录:        HTC Vive之Unity3d开发日记 You can fool all the people some of the time,and some of the people ...

  6. task 如何终止线程

    前言 这个直接上代码. 代码逻辑是使用var tokenSource = new CancellationTokenSource(); 让tokenSource 去取消.值得注意的是取消线程后,线程会 ...

  7. 有意思的JavaScript代码写法【持续更新,欢迎留言分享有趣代码】

    filter过滤假值 [1,2,null].fiter(Boolean) 2.Object.is 健壮的相等判断 Object.is(NaN,NaN) Object.is(+0,-0) Object. ...

  8. 基于 Serverless 架构的头像漫画风处理小程序

    ​简介: 当一个程序员想要个漫画风的头像时... 前言 我一直都想要有一个漫画版的头像,奈何手太笨,用了很多软件 "捏不出来",所以就在想着,是否可以基于 AI 实现这样一个功能, ...

  9. 基于 KubeVela 与 Kubernetes 打造“无限能力”的开放 PaaS

    简介: 本文整理自阿里云容器技术专家.OAM 规范主要制定者之一.KubeVela 作者和负责人孙健波(天元)在阿里云开发者社区"周二开源日"的直播分享,将剖析当前 Kuberne ...

  10. 入选 SIGMOD2021 的时间序列多周期检测通用框架 RobustPeriod 如何支撑阿里业务场景?

    简介: 本文除了介绍RobustPeriod的核心技术亮点,还将重点解释如何将它构筑成服务来解决阿里云的业务痛点. 近日,由阿里云计算平台和阿里云达摩院合作的时序多周期检测相关论文RobustPeri ...