知晓程序注:
「晓组织」是知晓程序推出的全新栏目。
每周,我们都会邀请优秀的小程序开发者,从产品/开发/运营等角度,分享他的小程序实战经验。如果你想成为「晓组织」的一员,请发送邮件至 [email protected] 给我们投稿,献上你的投名状。第一篇文章,来自「心算练习」的开发者程杰。要是你想做小程序,但还没想好做什么,不妨学习一下程杰的经验,从解决身边人的问题,开始自己的小程序之路。
文 | 程杰
我是程杰,软件程序员,计算机书《大话设计模式》和《大话数据结构》的作者。
我的好朋友安澜洪,长年在时尚媒体负责移动部的产品、设计和整个团队的管理工作。
我们两人花了两个月时间,制作一款叫「心算练习」的微信小程序。
「心算练习」是一款口算、心算、速算的训练软件,适合小学一至三年级和学龄前大班孩子使用。它以微信小程序为载体,省去安装和注册过程。
我们希望帮助您的孩子通过刻意练习,锻炼出又准又快的数学计算能力。关注「知晓程序」公众号,微信后台回复「0109」,一张图教你玩转小程序。
制作这样一款小程序,源于我辅导自己儿子数学的经历。我的儿子在上幼儿园和小学一、二年级的时候,时常会因为口算不熟练而造成算术题出错或者过慢的问题。比如刚开始学习类似 5 + 7、8 + 6、13 - 7 等计算,总是需要借助掰手指才能完成,对于 34 + ?= 100、?+ 29 = 100 这样的凑整问题,也不能快速地给出答案。
我发现孩子计算能力薄弱后,购买了一些口算练习本、听算磁带等让孩子不断练习。提升效果确实是有的,但也发现了一些问题:首先,这些练习材料题目都是固定的;然后,它们尽管比较全面,但却没有针对我孩子的具体情况出题。比如有些题目我的孩子已经非常熟练不需要练习了,可是它依然有好多页等着要完成。而有些不熟练的题目,尽管可能只是一小部分,却因做过就不能再反复练习。偶尔被我发现这样的情况,我会手写出一些类似的题目让孩子做,但是手写出题,在数量上和质量上都很难达到可以让孩子熟练掌握的效果。这样的结果就是,即使花了大量的时间在口算练习上,依然还是事倍功半。如何解决这个问题呢?我想到了借助软件来达到改善目的。我找了许多 app 试用后,发现针对巩固计算能力的 app 虽然很多,但存在着各种各样的不足,特别是针对错答题和慢答题的强化练习,几乎没有涉及。
去年我阅读了一本书《刻意练习:如何从新手到大师》,图书作者是美国佛罗里达州立大学心理学家 Anders Ericsson,他认为:专家级水平是可以逐步练出来的,而有效进步的关键在于找到一系列的小任务让受训者按顺序完成。这些小任务必须是受训者正好不会做,但是又正好可以学习掌握的。完成这种练习,要求受训者的思想高度集中,这就与那些例行公事般的或者带有娱乐色彩的练习完全不同。
我读完此书有一种茅塞顿开之感。每个孩子都需要掌握数学加减乘除的基本计算方法,对一些简单题目也需要做到迅速给出结果,但每个孩子一定有各自不同的困惑与不熟练的地方。如果可以针对这些不足进行强化,刻意练习,不就可以达到事半功倍的效果了吗?我本人就是从事软件开发行业。既然找不到合适的,那就自己开发吧。当我把想法告诉了好朋友安澜洪后,他完全支持我。于是我们商量后决定,好好做一款可以满足数学计算刻意练习需要的软件。为什么会选择开发小程序呢?
首先,我们要做的需求并非是每个人必需。要求用户去相关平台安装下载一个 app,代价太大,也不容易形成经常打开使用的习惯。
然后,我们也不希望练习数学计算能力成为孩子的负担。每天做 10 分钟,坚持一段时间,计算能力自然就提高了。这符合微信小程序「用完即走」的理念。最后,小程序非常小,小到感觉不到下载安装和更新。对用户来讲可以比较容易打开和使用,也不需要登录注册,少了很多传统 app 使用上的麻烦。这样用户可以更加专注于数学计算的功能上。由于我们是第一次开发微信小程序,加上微信小程序本身也在发展和完善。这当中确实遇到了不少的困难和麻烦。目前绝大部分困难我们都已经克服了,这里列举几个花的时间比较多或者比较重要的点。比如我们的答题时界面是不可以下拉拖动页面的。在小程序开发工具的模拟器上没有问题,但到了真机上,就发生了可以拖拽的下拉回弹。我研究很久,最终解决问题是将页面设置成 scroll-view,并且 scroll-x="true" 的情况,这样就可以避免了上下拉动。再比如在模拟器上,JS 的数组 sort 字符串排序并没有问题,但到了我的 iPhone 真机上,却没有排序成功。后来才知道是因为 iOS、Android 和电脑模拟器三端的 JS 脚本执行环境各不相同的。或许这是微信小程序暂时的缺陷,但我们也不能等着微信团队改进再去实现排序功能。于是,我们就重写了一个简单的数组对象排序算法,解决了这个问题。虽然有点重复造轮子的嫌疑,但具体情况就得有具体办法。还有像 iOS 8.x 并不支持 CSS 的 display:flex 功能,会造成排版混乱。由于没有相关手机,开始我们都不知道这种情况,是小程序上线后,用户反馈才了解到存在这个现象。
后来经过研究终于明白是在发布时,勾选「开启上传代码时样式文件自动补全」,可解决这个问题。唉!影响了前期大量的 iOS 8 的用户使用,很是遗憾。
两个老朋友,两个月时间,一个小程序
我们共事过 4 家公司,也算是合作最长久的同事。今年春节过后,我们一同离开公司,准备做一点自己喜欢的事情。
我们不能像乔布斯、比尔盖茨他们那样有车库可以选择,所以我们选择在图书馆和咖啡店作为创业办公地点。
我擅长出点子和前后端的技术开发,安澜洪擅长产品和设计,我们互补的能力正好可以去完整地实现一个小型的软件。由于多年的经验积累,使得我们在保证基本功能实现的前提下,对软件的使用体验和视觉效果格外重视。
因此,「心算练习」这个产品不敢说多优秀,但在 UI 与交互上,确实花了不少的心思。
我们的产品有很多细节都经过深思熟虑。由于篇幅有限,这里举一个答题时的暂停设置页面的设计细节分享给大家。考虑到小朋友认字有限,增加了拼音注解。并且对拼音中的「a」用了规范的字母显示(「啊」的书写方式)。音效的开关可以满足用户不同的环境需要。有对、错等音效会更有趣,但个别环境需要禁音。计算 8 + 9 时或许孩子可以直接输入 1 再输入 7 得到答案,但是如果计算 27 + 59 时,孩子就希望可以先输入个位 6 再输入十位 8 的输入方式,这符合他们的做题习惯。我们现在已经有了相当多的关于儿童教育类的产品点子在等着实现,「心算练习」也在开发 2.0 版。我们相信可以做出精品的儿童教育类产品。由于「知晓程序」的推荐,上线后不久,我们小程序的使用用户就快要突破 10000 了。我突发奇想,写了一个显示用户总数的网页,打算用手机自拍个视频做个纪念。可没想到正好在 10000 时由于节电保护电脑黑屏了。
唉!虽然是一个小遗憾,但也算是很有趣的。
关注「知晓程序」公众号,在微信后台回复「效率」,获取更多效率工具相关小程序推荐。▽ 点击「阅读原文」,发现更多优质小程序。