一、学以致用

基于实践的Java学习

有人一心爱 CodeGym,也有人一心讨厌它。但即使是 CodeGym 最恶毒的批评者也会欣然同意它拥有数量惊人的任务。而之所以有这么多,是因为所有的 CodeGym 培训都是以实践为基础的

编程是一种技能。没有人说,“我知道如何编程”。每个程序员都说,“我会编程”。这是一项动手能力,就像游泳或下棋一样。而你只能通过不断的练习来培养技能。

这就是为什么整个 CodeGym 课程是一系列难度越来越大的任务。你从非常简单、原始的任务开始,然后以最困难、最有趣的任务结束。每个级别的难度都会增加一点。这正是引导您实现成为程序员的目标的途径。


2.任务类型

CodeGym 上有一大堆不同类型的任务等着您。让我们列出主要的:

按照示例编写代码的任务

这是最简单的练习。这些任务的目的是练习您编写代码的能力。要解决该任务,您需要编写示例代码中存在的代码。这非常有用,但很快就会变得乏味。几乎没有这样的任务了:我们用 CodeGym 学生更感兴趣的任务代替了它们。

此类任务的卡片标有字母 T:

任务类型

编写程序的任务

这些是课程中最重要的任务。它们的难度级别差异很大:从最简单的任务到您需要考虑很多的任务。

这些任务的目标是编写满足指定条件和要求的程序。大多数任务都属于这一类。为了方便 CodeGym 学生,我们根据难度级别标记这些任务:EASYMEDIUMHARDEPIC

EPIC 任务通常基于您尚未解锁的课程中的未来学习材料。他们很受 CodeGym 学生的欢迎,他们觉得这门课程对他们来说太简单了。其他人可以简单地跳过这些任务,等他们已经熟悉了相关理论后再回来做。

编写程序的任务

项目

普通任务的缺点是它们很小。正如他们所说,完成并被遗忘。因此,很难使它们变得非常有趣。但是大型程序很难测试:实现它的方法太多了。

这就是 CodeGym 引入的项目任务——大任务分为 10-30 个普通子任务。您按顺序执行所有子任务,最终得到一个大型程序。

在多线程和集合任务的每个级别结束时,都有一个大型项目任务,分为 20 个子任务。还有另外6个游戏任务,也是项目。整个课程总共有27个项目任务。

测验

很长一段时间,CodeGym 没有测试或小测验。CodeGym 的创建者认为,通过测试会在人们中产生“知识错觉”。人们并不真正知道如何编程,但他们完全相信否则,因为他们通过了测试。这样的人停止学习,因为“他们已经知道一切”。

随后,添加了测验,使 CodeGym 学生能够轻松找出他们学习中的差距。对于程序员来说,了解他们在职业中日常工作的细微差别是很有用的。

测验Java

影片

最后,最后一类任务是观看视频。CodeGym 课程中包含许多与 IT 行业相关的有用且有趣的视频。


3.任务状态

CodeGym 上的每个任务都有一个特殊的状态。当您解决任务时,状态会发生变化。

每个 CodeGym 任务都与一节课相关联。最初,您将无法访问任何任务,这意味着您将无法解决它们。

锁定

当您打开下一课时,该课中的所有任务都可以解决,即它们的状态变为“可用”。

可用的

如果您至少提交过一次验证任务,则其状态会从“可用”变为“进行中”。

进行中

最后,当您成功满足所有要求并且验证器接受您的提交时,任务的状态将更改为“已完成”。

完全的

订阅 Premium Pro 的用户还有 3 天的时间尝试为该任务编写其他解决方案。在这个额外的时间窗口到期后,任务将进入“已关闭”状态,并且此状态将不再改变。关闭


4.网页IDE

为了让您更轻松地解决任务,我们编写了一个特殊的小部件:WebIDE。它看起来大约是这样的:

WebIDE

在左侧,您会看到您的解决方案必须满足的任务条件和要求。在中心,我们有编辑器,您需要在其中编写代码。您的程序显示了一些文本,您可以在底部的窗格中看到这些文本。

在顶部你会看到这些按钮:

  • 验证:提交您的解决方案进行测试。
  • 帮助:在 CodeGym 社区中询问有关您的解决方案的问题。
  • 讨论:与其他用户讨论任务。
  • 重置:重置您的解决方案,即重新开始。
  • 运行:启动程序而不提交验证(您的验证计数器不会增加)。
  • 代码分析:获取有关解决方案代码风格的建议

五、要求

在 CodeGym 的早期,当您验证每项任务时,您会得到一个简单的结果:是或否。该程序要么通过了所有测试,要么没有通过。超级简单,但不是超级有用。

随着人们的学习,了解他们做错了什么以及如何开始做对是非常重要的。因此,如果服务器不接受您的解决方案,那么您会问,它有什么问题吗?

要得到这个问题的答案,您需要有人深入研究您的解决方案、分析它并告诉您它有什么问题。这将花费很长时间并且成本很高。即时任务验证的美妙之处在于,您可以在凌晨 2 点坐下来学习,一切都会像其他任何时间一样工作。

这就是我们在 CodeGym 上重写所有任务的原因。现在每个任务不仅有任务条件,还有 5-10 个充实条件的要求列表。最重要的是,每个需求都被单独验证。

这意味着当您今天提交一个任务进行验证时,您将得到一个扩展的响应:在每个任务要求旁边,您将看到一个特殊的图标,指示您的程序是否满足此要求。例子:

要求

当您处理需要编写多个类或方法的任务时,这种方法极大地简化了生活。您将始终能够看到您正确编写了哪些方法或类,哪些没有。


六、建议

是否有可能以某种方式使任务变得更好?如果在每次检查后,您都被告知程序中到底出了什么问题,并得到有关如何修复它的提示,那不是很好吗?是的,那会很酷!好吧,你猜怎么着?我们在 CodeGym 上就是这么做的 🙂

我们通过检查每个任务要求来发现许多常见错误。如果您的程序犯了验证器知道的错误,那么它会提出建议——提示您如何修复您的解决方案,使其满足所有要求。

想想看。现在 CodeGym 上大约有 1200 个任务,总共有大约 10,000 个需求。每个要求都有一些相关的建议。有些要求有几十个。CodeGym 的验证器已准备好为用户解决方案提出超过 50,000 条建议。

此外,所有这一切都是在您的解决方案得到验证时发生的,在大多数情况下,这需要不到一秒钟的时间。没有人能做到这一点。这是一个真正的虚拟导师。

建议