学习编程的方式很多种,最能激发普通人学习兴趣的莫过于边玩边学。原因也很简单,好的游戏自带及时反馈机制,可以不断刺激我们大脑多巴胺的分泌,可以让原本枯燥的学习变得动力满满。
我自己早期也做过 莫烦Python 编程学习网站,里面的在浏览器中直接运行代码的 交互式学 Python 内容,为一部分人提供了新的学编程方式。虽然有实时交互,但是学习中最关键的刺激点【及时反馈】还未完全体现。
接下来我来对比几个利用游戏机制来辅助学习编程的产品,为那些中途放弃,或者是还未开启编程之路的同学们重拾信心。
使用对比
如果不想看长文介绍,你大概也能从这个表中看到一些维度上的对比
产品 | 主要支持语言 | 怎么学 | 关键词 | 费用 | 有官方教学材料 | 游戏种类 |
---|---|---|---|---|---|---|
AI 创想家 | Python | 闯关中学习 | 真人竞技 | 全免费 | 有文档和 API,细粒度,关卡即学习材料 | 3 种 |
codingame | 支持多语言 | 偏向于在外面学会了再来挑战 | 真人竞技,刷题 | 全免费 | 无 | 丰富 |
screeps | JavaScript | 有一套粗粒度的入门文档 | 在线游戏 | 部分免费 | 有文档和 API,粗粒度 | 1 种 |
CodeCombat | JavaScript, Python, Lua | 在闯关中学习 | 非常多关卡挑战,真人竞技 | 部分免费 | 有 API,关卡即学习材料 | 丰富 |
codemonkey | 积木编程, 文本语言,Python | 在闯关中学习 | 简单易上手 | 部分免费 | 有 API,关卡即学习材料 | 不同语言有不同游戏 |
通过上面表格大概就能根据你自身的情况,来决定到底要从哪里开始了。接下来我来详细介绍一下体验感受。
AI 创想家
AI 创想家是腾讯的一款免费学编程产品(主要为 Python 语言)。它使用游戏化的闯关、多人竞技 PK 的方式,做足了游戏中的【及时反馈】。特别是独特的竞技 PK 模式,让大家可以”以码会友“,共同成长。
这里的对手可以是真是玩家,也可以是 AI 机器人。你在其中的任务就是通过自己的代码策略挑战他们。在一轮轮挑战中,完成自己的学习成长之路。
当然,为了照顾新手,官方还提供了入门的学习关卡,甚至专门做了 Python 基础语言在线学习、运行内容。在还没有熟悉语言或者使用方法的时候,可以从单人闯关的模式入手。所以对于小白的学习梯度还是比较平缓的。
当前 AI 创想家里有三种不同的游戏,听说官方在今年还会推出一款战略游戏。拭目以待。
官方会定期举办不同的竞技赛事,在赛事中,你会与其他人对抗竞争,并看到你的榜单排名。如果是学校老师的话,还可以申请建立独立榜单,搞自己的活动赛。
Codingame
Codingame 和 AI 创想家是同一类型的,但是是国外公司开发的游戏化编程学习产品。他包含了很多游戏,这些游戏都比较小,更像是一种游戏化的算法题。需要有算法思维和解题技巧来通关。它能用多种语言来做解题。
如果你做过 leetcode(程序员面试刷题),你再玩 Codingame,你就有有一种很强烈的 Leetcode 感受。但是从形态上来说,以一种游戏化的方式来刷 leetcode,也不乏是一种不错的选择。至少没有纯刷题感受那么无聊了。
除了这种刷题的模式,他还有和真实用户对战的方式,所以我觉得和腾讯的 AI 创想家 可以作横向对比。这两个都能在对战中不断提升自己的代码水平。毕竟和真人玩,心态都不一样。
screeps
screeps 和 AI创想家 还有 Codingame 一样,都能和真实用户对战,但是最主要的差异点为它是:大型多人在线即时战略游戏。首先它是单独的一个游戏,不像上面有多种不同游戏可以选择。再来就是更偏向于多人在线的网游。并且只接受 JavaScript 语言,如果要使用其他语言来玩这个游戏,需要做比较复杂的编译处理,对于其他语言的学习者来说,这点比较劝退新手。
上图就是 Screeps 的游戏大世界。玩家的主要任务就是控制游戏中的机器人,在地图上和别人的机器人做竞争,争取多的资源。
他和 AI 创想家一样,有对游戏做用户友好的 API 接口封装,用户在编程的时候,直接可以使用上层的 API 来实现更多想做的功能、策略。
在对比一下学习材料,虽然官方给出了一个官方的英文教学文档,里面有一些基础的操作教学,感觉上教学的颗粒度上,没有AI 创想家,那么细。
CodeCombat
CodeCombat 和 AI 创想家、codingame 有点像,他也支持多种不同游戏,新鲜感还是挺强的。你可以在他上面使用 Python, Javascript, lua 来运行和学习,他用地图闯关的方式做了非常详细的引导指引。
每一关中,你都需要编写自己的人物闯关代码来通关。他和 AI 创想家、Screeps 一样,提供了一套官方的 API,所以也不用从底层代码写起,如果懂编程的人,会体验到比较强的面向对象编程模式。
和 AI 创想家和 codingame 一样,他们也提供了真人排行竞技模式,screeps 虽然是多人竞争,但是 screeps 似乎不是以排行榜的形式进行的。
在学习上手方面,我感觉跟着他们的关卡一步步来,就已经能形成一套学习过程了,他们设计的关卡具备了学习材料的作用。
CodeMonkey
这是一款目标年龄段很广的产品,因为他们不光有 Python 学习,还有积木编程。积木编程类似的产品还有(scratch、编程猫,腾讯扣叮等)。因为我们讨论的是以后会用到的像 Python 和 JS 这种计算机语言,所以积木编程那块的内容,我在这就不详细说明了。下面我来详细对比一下 CodeMonkey 中的 Python 语言学习。
首先,他支持的计算机语言学习,只有 Python。关于 Python 的学习,它有一个游戏,还有一个是用 python 做一个对话机器人(当然可以用代码规则来做出一个有趣的 AI)。
在游戏学习中,code monkey 也是一种闯关模式,跟着关卡的指引,你也能一步步按照他的 API 将角色移动、变化起来,完成不同的任务。
其实,对于 python 学习的人,有一点不是很好,就是一上来,就已经是要使用 python 里面类的属性这种概念了,它默认你先装作懂了,直接开始就按这个模式玩。有的人可能会觉得有些跳跃感吧,但是对于一般人而言,假装懂,能开始玩游戏,也是不错的体验。
使用 python 来编对话机器人是挺有趣的体验,我觉得可以当成一个实战小项目来看待。
总结
这次介绍的几款游戏化学编程的产品,都有免费部分,我个人体验下来都还不错,但是如前面表格中的信息,如果你知道你想学那种语言,想要用闯关的方式学习还是竞技的方式学习,喜欢直接跟着关卡的教学模式学习还是阅读文档学习。了解了自身需求后,你就能挑出来符合你自己背景的游戏化学习产品了。
我举几个例子:
例子 1: 我不太会英文,想学 Python,那就可以选 AI 创想家 或 CodeCombat。
例子 2:我想刷算法题,但是不喜欢 leetcode 那种干巴巴的模式,那么可以选 codingame
例子 3:我想学 JS,而且想要和真实的人对战,体验游戏挂机自动打的感觉,就选 screeps