有时候咱们程序员也需要娱乐或放松一下,但放松的同时,也可以做一些有益于技能成长的事情。今天就来看看这一大波能够训练大脑,并且提升编程能力的网站。
游戏
** **Codecombat
这是一个可以帮助你学习编程的并且非常赞的多人在线游戏,而不是一个游戏化的编程课程。
在 CodeCombat 中,你扮演一个英雄通过游戏中不同等级的冒险。第一关是 Kithard Dungeon ,里面涵盖了编程的基本概念。整个旅程中你都面临着编程的挑战,如果通过了,你会解锁下一关,并获得经验点,经验点可以用来提升英雄的能力。
CodeCombat 吸引了很多年轻有抱负的程序员,根据游戏中的统计,62%的用户年龄在18岁以下。
CodeCombat 支持6中不同的语言,包括:JavaScript、CoffeeScript、Lua、Python、Clojure 和 Io。该游戏涵盖了广泛的编程主题,如:字符串,变量,方法调用,矢量绘图等。
** Code Hunt**
Code Hunt 是一个由Microsoft Research开发的 HTML5 科幻主题游戏。
在这个游戏中,你扮演一个代码猎人,负责修复代码,并使它它返回预期的结果。总共有14个等级需要你来完成。
Code Hunt 支持 Java 和 C# 两种语言。你可以学习到包括算法、循环和条件表达式等编程概念。你也可以通过阅读 Code Hunt 设计手册 来扩展其他关卡。
** **CodinGame
CodinGame 对程序员来说是一个巨大的挑战,如果你想提升编程技能,玩CodinGame是一种有趣的方式。
CodinGame 支持包括PHP、C、JavaScript在内的20多种编程语言。用户界面功能强大,可以定制。例如,你可以选择你的代码编辑器的风格: “Emacs”、”Vim”、或 “Classic” (默认)。
游戏可以选择单人游戏模式或多人模式,多人模式下,你可以与其他玩家共同解决 CodinGame 中的挑战。
** **Screeps
Screeps 是一个为 JavaScript 程序员准备的大型多人在线游戏(MMO)。
这个游戏是一个开放的策略游戏,游戏中你控制的单位被称为 creeps ,它可以帮你获得资源、建立自己的领地等等。作为一个多人在线游戏,意味着你的 creeps 会被其他 creeps 所包围。
通过编写 JavaScript 来控制你的 creeps 。(Screeps = scripting your creeps)。学习如果玩该游戏,你可以查看文档。
** **FightCode
在 FightCode 中,目的很简单,就是创建一个能够击败其他玩家机器人的机器人。
如何创建机器人?通过编写 JavaScript 代码。例如,当某个事件发生时,你可以通过 .rotateCannon() 方法来旋转你的大炮。
[图片上传中。。。(11)]
在创建坚不可摧、支配世界的机器人之前,你首先需要 阅读文档来学习如何编写一个机器人。
其他类似的网站:
- Git Game—这是一个终端游戏,用来考察你的 Git 命令知识?。
- Elevator Saga—你的任务是使用 JavaScript 编程控制电梯的运动。目标是要高效地接送乘客。
- CodeChef—在这里你可以解决实际问题、参加不同的比赛,这些比赛每月都会进行。
- Hacker.org 这里有一系列的谜题和测试,可以用来测试你的编程知识。为了通过这一系列的测试,你需要解决问题并做很多的分析工作。
- Pex for fun—这是微软开发的一个游戏,在这个游戏中你需要和其他的程序员进行比拼。而代码就是你的武器。
- Rankk—你需要解决一系列由易到难的问题。这个游戏是对 Pyramid 游戏的复刻,Pyramid里面有很多逻辑和数学问题。
- TopCoder—在这个游戏里你不光可以解决问题,还可以获取真金白银。来自全世界知名IT公司的程序员在这里互相挑战,为的就是赢得他们的奖品。
- Google Code Jam—Google 大赛上已经解决的算法问题。在这里你可以自己试一试。
- Python Challenge—玩家可以通过 Python 编程解决问题并提升等级。
- 《程序员该知道的那些编程比赛网站》
- 《寓教于乐:Vim大冒险游戏》:玩游戏,学习 Vim
解谜
- Lumosity—一组能够训练大脑的游戏,由科学家和游戏设计师一同开发。
- Algorithm Geeks—一个交流讨论算法的 Google 群组。
- CodeKata—妙趣横生的编程问题。
- LessThanDot—一个专门论坛,程序员在这里发布一些比较困难的编程挑战。
- The Daily WTF—类似BYOD(Bring Your Own Device)模式,不过这里是BYOD(Bring Your Own Code)程序员们编写他们自己的代码片段放在这里,用来解决一些比较困难的问题。
- Peking University JudgeOnline for ACIP/ICPC—这里包含了不同比赛中涉及到的不同的问题。你可以实时的解决问题并且查看结果,你的答案也会被验证是否正确。
- University of Valladolid Online Judge—与北京大学OJ平台类似,但是包含了不同的问题。
- Programming Praxis—这个博客每周都会出一些新的编程问题。
- Project Euler—包含了很多复杂的数学问题,这让发烧友们感到非常开心。
编程练习
- 4Clojure—在这里你可以通过解决一些不同难易程度的问题来学习 Clojure 。
- Prolog Problems—你可以在这里练习逻辑编程。
Ruby Quiz—每周 Ruby 谜题。
Codingbat—由很多 Java 和 Python 的习题(难度各有不同)。 - Cyber-dojo—在这里,你可以在在线评分系统的监督下进行编程练习。
- Sphere Online Judge—各种各样的编程问题。
- Code Wars—8 种编程语言教学。
- Rosalind—通过解决实际问题来学习算法和生物信息学。
面试前的准备练习 - LeetCode—这个网站是为了帮助程序员准备面试而创建的。在这里你可以找到不同领域的典型问题。
- Career Cup—程序员面试时最容易被问到的真实问题。
参考
- 《collection of coders games to improve your skills》
- 《寓教于乐:教你学编程的 5 款游戏》