创意编程挑战:Stack Overflow 的创新实验
一项实验,旨在提升您在 Stack Overflow 上的编程技能,同时在一个欢迎创造性问题解决的空间中学习。发现我们是如何构建它的。
作为一名开发者,核心是解决问题并在过程中学习。上个月,为了庆祝这一点,我们的社区产品团队启动了一项新实验,测试编程挑战的概念,让技术专家在 Stack Overflow 上展示他们的技能。
为社区提供一个与其他开发者联系、分享知识和才能的地方,是我们许多工作的核心。但有时,用户希望以平台问答之外的方式学习、分享和协作,即使是最有经验的贡献者也会欣赏一些多样性。因此,一个想法诞生了:如果我们创建一个有趣且富有创意的空间,社区中的任何人都可以参与,会怎样?
于是,编程挑战实验诞生了。
通过编程挑战,我们正在测试通过新工具和社区空间进行学习的不同方法。包容性是我们首要考虑的因素,我们希望创建一个任何经验水平的技术专家都能参与的东西。
我们如何开始
对于这个实验,团队希望将挑战的访问保持在主 Stack Overflow 站点上,使参与尽可能简单和无缝。我们还知道,我们不希望这些挑战干扰日常的问答。挑战必须是一个完全可选的、仅限选择加入的功能。
团队提出了暂时利用讨论区来托管实验的想法。这意味着比从头创建新东西少一些开发工作,并且它有潜力带来整体更好的用户体验,同时减轻垃圾邮件的担忧。
我们的工程团队成员与社区经理合作,提出了既有趣又吸引人的提示。用户将在特定时间段内提交条目进行投票,“获胜者”(被授予奖项的人)将由最多投票决定,加上工作人员为基于创造力或独特性等主观类别挑选的奖项。我们在 Meta Stack Overflow 上软启动了我们的想法,以获取社区反馈,通过这一点,我们能够改进我们的流程和挑战提示。
前三个挑战
这些挑战由我们的团队编写,旨在激发您大脑的创造性和技术性思维,设计允许广泛的解决方案,强调创造性和巧妙性。5 月 27 日,我们向社区推出了第一个编程挑战实验。
挑战一:创建一个文本转婴儿语翻译器。 技术专家被要求实现一个程序,将任何最多 100 个单词的文本样本翻译成婴儿语。
挑战二:将秘密消息编码到经典棋盘游戏中。 接受此挑战的用户将设计一种机制,在他们选择的游戏棋盘状态中编码至少八个字符的秘密消息。
挑战三:设计一种机制,使用给定随机种子的 ASCII 字符创建雪花艺术。 用户需要创建一个程序,接受他们选择的种子并生成一个独特的雪花。
早期学习
我们对前三个挑战的回应感到兴奋,来自所有技能水平的技术专家共有超过 350 票和 180 个条目。同样令人兴奋的是,前两个挑战中 24-26% 的条目来自 1 声望用户,这些通常是新用户,向我们表明编程挑战可以作为不参与传统问答体验的用户的一个入口点,并有一个与其他社区成员互动的空间。
对我们来说,这表明这个实验对各种技能水平都是可访问的,允许任何人参与,无论他们的编程经验如何。高条目数也表明许多解决方案是可能的,创造力可以在正确的提示下流动。参赛者较少关注“正确”,而更多地关注以有意义的方式解释挑战,这围绕他们的解决方案创造了有趣的讨论。
通过参与者的反馈,我们发现学习是用户参与的关键动机,其次是挑战的乐趣。参赛者还加入挑战,以与更广泛的 Stack Overflow 社区互动。
总体而言,编程挑战已被证明是一个欢迎所有经验水平用户一起学习和展示技能的游乐场。
庆祝第一批获胜者
第一个编程挑战我们有近 50 个条目。虽然我们只能向少数用户颁发奖项,但团队真的很喜欢阅读每个提交。
第一个编程挑战——创建一个文本转婴儿语翻译器——的获胜者是……
最多投票: Anon Coward,其条目在程序上合理且艺术上连贯。
花哨功能: Ali Sheikhpour,其解决方案允许完全可定制的婴儿语,因此您可以获得那个小小的声音刚刚好。
新贡献者: Kingsley_3z3nw4k4,其首次贡献因在语言学上合理而脱颖而出,因为婴儿真的会发音为“Swi Wanka”。
最复杂: return true,其婴儿显然来自莎士比亚戏剧。
技术上正确: General Grievance,其程序让我们 literally 说“googoo”。
更多信息,请查看在其他两个单独挑战中因其条目而获奖的用户。
编程挑战的下一步是什么?
我们仍在探索如何进一步将编程挑战嵌入社区。我们正在进行技术发现,研究如何使其成为站点上的独立功能,而不仅仅是讨论区的接管。
我们还希望通过让用户参与过程,使这些挑战更加社区主导。我们如何让您参与创建提示和选择获胜者?
最终,我们将从讨论区的这个早期实验以及用户研究、调查和 Meta Stack Overflow 反馈中吸取所有经验,以确定我们下一步想将这个概念带向何处。
如果您想查看编程挑战,您可以查看前三个挑战并加入第四个挑战。