本文共 5468 字,大约阅读时间需要 18 分钟。
战神4 幕后花絮 概念艺术
在我们 ,我们讨论了Exercism,这是一个项目,旨在通过数十种不同编程语言的练习来帮助人们提高其编程技能。 从业人员完成每项练习,然后收到有关其响应的反馈,使他们能够从同龄人的经验中学习。
( 是运动主义的创始人,我采访了她作为研究对象。 在这里有一些很棒的信息和见解,我们希望与对学习编程,教学编程以及这样的项目如何从他人的贡献中感兴趣的任何人分享。
锻炼看起来很棒! 有多少人在使用它?
数据库中有125,000人。 其中,自2013年启动该项目以来,约有2.9万个项目实际提交了解决方案,有1.5万个项目对解决方案发表了评论。 GitHub上有1,000人为该项目做出了贡献。 运动有33种有效的语言轨道,还有22种正在或正在被请求但尚未开始的语言轨道。
根据Google Analytics(分析),我们每月有50,000名访客,每周12,000名访客,他们来自201个不同的国家。
是否有使用运动训练的学习机构?
是的,显然是吨! 我随机碰到一位法国教授,他说他和学生一起使用运动。 许多使用它,包括 , , , , , , , 等。 我不知道他们如何正式使用它。 它是课程的一部分吗? 或者只是他们向学生建议的东西。 我不知道。 耶鲁大学IT部门的一个人说,他正在使用它进行夏季编程课程。
所有的运动社区都有贡献吗? 新练习的标准是什么?
是。 我创建或获取了前30个左右的源,并在Ruby中实现了它们,然后社区又贡献了70个练习,此后,他们以50种语言提供了实现。
每次练习都必须是一个不涉及实际技术的琐碎问题(没有Web服务器,没有数据库等)。
练习不需要讲授特定的概念。 我们的目标是练习,而不是任何事情,因此我们需要给人们足够的东西来练习,而又不会感到无聊。 我们不赞成我提出的一些早期问题,因为它们彼此之间太相似了。 任何新的练习应与现有问题足够不同。
有时语言具有难以学习的功能,因此我们提供了一些练习,让我们一次用该语言介绍一种功能。 之后,其他语言将作为练习来实施该练习,而不是因为它涉及特定的语言功能。
在完成当前练习之前,学习者无法继续进行下一个练习。 “完成”是什么意思? 刚提交?
他们必须提交解决方案,到那时,如果他们再次“练习取回”,他们将获得下一个练习。 因此,从技术上讲,您实际上并不需要学习任何东西,您可以提交评论,也可以完全跳过练习(我们在命令行客户端中有一个命令)。
运动的灵魂是发现与合作。 这是旅途与目的地之类的事情。 如果您放慢脚步并进行探索,锻炼是最有价值的。 采取行动似乎是要尽快完成许多锻炼的人所得到的好处要少得多。
我们还没有引入游戏化,因为这倾向于鼓励错误的行为类型(游戏化统计数据,匆忙完成)。 并不是说某些微妙或经过深思熟虑的游戏化形式并不是产品的重要补充,但它是危险的地方,弄错了会造成灾难性的后果,并且完全避免它是更安全的。
有许多方法可以减慢速度并从过程中获得更多价值:
有些人继续前进,进行其他练习,然后稍后再尝试其他尝试。 提交者是否需要等待某人查看其提交的内容以提交更新的版本?
不会。许多人会提交其他解决方案,在其他解决方案中四处浏览,以了解其他人所做的事情,从中学到东西,然后提交新的解决方案。 审阅者有时会查看三个迭代,然后对最后一个进行评论,说“我喜欢这里的进度”或“我认为您的第二个迭代比该迭代更具可读性”或最有意义的东西。
为了使整个过程正常进行,必须同时有提交者和审阅者。 您在找人进行评论和提供反馈时遇到任何问题吗?
是的,这是一个很大的问题。 提供反馈要比编写代码难得多。
我认为人们可能不会给出反馈的三个原因是:
我看到两种解决反馈不足问题的方法。
首先是提供有关如何提供反馈的学习材料。
大约一年前,我做了一个实验,在那里我为Go跟踪中的一个练习建立了一个“代码气味实验室”。 它对人们通常做的事情有大约12种不同的解决方案,然后针对每个示例,要求读者考虑他们可能在代码中指出的内容。 之后,它收到了其他人的许多评论,人们通常会在其中一种解决方案上说些话。 它要求该人考虑他们是否同意,将其与他们的想法进行比较,然后详细讨论您可能谈论的事情,包括指向每件事资源的指针。
这是很多工作,但是值得。 有几个人使用它来获得反馈的舒适性,并继续在整个赛道上提供反馈,而不仅仅是在练习中。
我们可以做的第二件事是对解决方案进行机器学习。 当您提交解决方案时,我们应该能够告诉您:“嘿,这确实与其他事情相似,这是提交给其他事情的评论。” 另外,我们应该能够告诉您:“去看看与您的确有真正区别的这些解决方案。” 然后他们可以查看这些解决方案,从中学习并开始对话。
您是否必须处理网站上的任何行为或社会问题?
少得令人惊讶。 几个人会变得非常紧张,并对所有内容做出回应或提供反馈,这有点像某个人挤你的空间,如果他们总是需要最后的话。
很多人无意间被嘲笑。 有人会超级指令:“做X!” “你错了!” 当然,没有对与错。 需要权衡。 有一些原因可能导致您不想选择Y。这使对话变得更加有趣,例如“我的经验XYZ”和“我看到很多人在做PRQ,这是博客文章”或“这是一些文档。” 因此,我们都可以学到很多有关代码的对话。 这也取决于提交代码的人的学习目标。 与只是第一次学习编程的人相比,精通某种语言的熟练程序员将需要不同类型的反馈。 这也取决于个人风格。
Wired将其称为“锻炼” 它是“ ”。 您对此有何看法?
运动是基于这样的思想,即使您的水平较低,也可以提高流利程度。 换句话说,您可能会精通编程语言的基本语法,惯用语,约定和标准库,而又无法解决该语言的实际问题。
这很关键:我专门针对运动水平的熟练程度,除非您已经是一名程序员并且知道如何进行实际操作,否则不会被雇用。
这整个流利程度和熟练程度是有用的,因为它释放了认知资源。 一旦掌握了基本水平的流利度,就可以提高您的熟练度,然后提高流利度。
将流利度描述为:“半夜醒来时,脸上带着手电筒,您可以说什么。”
语言猎手描述了 ,您可以在其中表达和理解:
现在,将其带回通常参加运动锻炼的三类人:
CodeNewbies:第一次学习编程的人。
多元语言:正在使用新语言的程序员。
工匠:正在深入学习其主要语言的程序员。
CodeNewbies和Polyglots都以低水平的熟练度为目标。 但是,对于CodeNewbies,到达那里的路径要更长一些,因为他们还需要学习基本的编程概念,而不仅仅是语法,库和约定。
工匠们不太适合高效率,低熟练度的模型,但它们对项目至关重要。 他们往往会提供出色的反馈,他们通常处于职业发展中的指导和领导技能(以技术为导向和以人为本)技能的位置,并且经常关心代码审查。
有什么计划将练习主义翻译成其他人类语言?
目前还没有,但是已经出现了好几次。 我收到了一些有关葡萄牙语的要求,一个是针对韩国的要求。
问题是我什至还没有解决过用户体验问题,在解决了问题之后,我想着手改善人们得到的反馈。 人工翻译远不及列表。
您告诉《连线》杂志,您想筹集资金来支付人们在该网站上工作的费用。 曾经发生过吗?
我终于开始这样做了。
我已经提交了一笔赠款申请,并且一直在与一家英国公司进行交谈,该公司的创始人以前曾对运动精神做出过贡献,并相信该项目。 如果我能筹集到足够的资金,这家公司将为我提供很大的折扣,以进行我们所需的设计工作。
如果我们没有获得赠款,我将研究赞助。 我的眼球如此之多,我想想一些为编程语言编写学习材料的出版公司可能希望与我合作。
您是否曾经让其他运动?
是。 Rikki将在Go中的一些练习中提供反馈,并且即将开始在Crystal中提供反馈。
这必须要做很多工作。 是否有一个核心团队在不断努力?
是的,他们做了很多工作。 我们有很多人参与语言培训。 一个小的核心团队专注于命令行客户端,少数人积极参与该网站。
我认为,如果我们能够完成重新设计,则产品的产品方面将更具可维护性。 一个问题是,当用户体验混乱时,使用华丽的代码确实没有意义。 该网站真的很难做出贡献。 目前,我们有一堆没有设计经验的开发人员,他们就设计提出了建议。 这不是非常有生产力的状态。
您对运动的下一步有什么想法?
1.对课程和语言轨道的管理
2.赞助以资助正在进行的工作(开发,研讨会,市场营销等) 3.网站重新设计 4.研讨会和聚会工具包,将运动精神带入肉类空间 5.机器学习和AI( )我要做的第一件事是弄清楚所有课程内容的治理。 我想把它交给社区。 它已经大部分掌握在社区手中,但是我想对其进行形式化。
最近,我一直在思考运动的 。 我花了一些时间和精力思考如何使项目更健康,以及如何帮助贡献者和维护者更快乐。
特别是,我想创建一个工作组(一个短期的,有时间限制的工作组),其明确目标是建议一个结构,以更好地管理练习语言的轨迹。
我希望这个工作组考虑如何使所有活动的轨道具有三个或四个活动的维护者,以及有关如何进行以下操作的建议:
理想情况下,我希望找到一种方法,使每个语言轨道都得到可持续维护,没有人会冒着破产的风险,而且我们有足够的贡献者和维护者,这样他们就可以继续前进并完全做其他事情而不会感到内。重新准备。
“车间”对我来说很有趣。 Node的核心维护者之一于今年早些时候在柏林的RustFest上进行了一次以“运动主义”为课程的“ Rust入门”研讨会。 她说一切进展顺利。 人们非常兴奋。
我想尝试做更多的事情。
翻译自:
战神4 幕后花絮 概念艺术
转载地址:http://qgyzd.baihongyu.com/