作者: 冒志鸿(ArcBlock 首席执行官、首席架构师)

ArcBlock 首届开发者大会 DevCon2020 降下帷幕的同时,也是我们黑客马拉松的开始之时。那么如何轻松参加黑客马拉松并获得胜利呢?我今天写这篇文章不是以 ArcBlock 创始人的身份,而是以一个多次参加黑客马拉松取胜并从中获益匪浅的参赛老手的身份,跟大家分享黑客马拉松的参赛技巧。

yahoo

自从 2006 年一次去美国出差偶然参加了一次 Yahoo Open Hack Day 这个大型黑客马拉松活动之后, 我在过去的这些年里参加过很多次类似这样的活动。其中,我在 2012 年西南偏南(SXSW)大会的黑客马拉松上获得了两个第一名,SXSW 是美国乃至全球最潮的技术和人文交汇的大会,历时一周以上的时间,数万人参加,大会举办的黑客马拉松奖金丰厚,挑战也很大。在后来的 Where 2.0 大会、Startup Conference、交互设计大会 SIC(Seattle Interactive Conference)等黑客马拉松上,我也多次力拔头筹。

我在微软研究院 FUSE Labs (未来社交体验实验室)工作时,我们团队也拥抱黑客马拉松精神,我们称为“创意周”(Creative Week)的活动每年花一周的时间,大家脱离日常工作,自由组队天马行空地做一个有趣的项目。 后来这个团队内部活动被推广到全公司,后来微软新领导萨提亚·纳德拉上任后还组织了全公司规模的黑客马拉松。

黑客马拉松带来什么价值

黑客马拉松可以说是硅谷文化的重要组成部分, 有很多成功的创业公司来自黑客马拉松的灵感启发, 甚至一些创业团队的旅程就始于黑客马拉松。我体会参加黑客马拉松有以下 4 大价值:

  1. 学习一种全新的技能。 搞 IT 技术的,永远需要学习更新。黑客马拉松能给你一个非常难得的机会,在很短的时间内专注于学习掌握全新知识和技能。
  2. 跳出日常思维的局限 (Think out of the box)。 我们编程写代码的,平时开发工作日积月累、熟能生巧,也是非常自然的,但很容易陷入舒适区。参加黑客马拉松,正好给你一个跳出工作舒适区的良性刺激,突破日常思维的局限,思考探索新的可能。
  3. 扩大社交圈,拓展人脉,展现技能。 都说 GitHub 是程序员交友网站,那么黑客马拉松就是程序员的约会活动了。我在过去的黑马活动最大的收获是结交更多各式各样的朋友,从他们身上学到很多东西,大大拓展了人脉。
  4. **偶尔获得额外收入 ** 这如同意外惊喜。例如过去我参赛获得的奖金、亚马逊 AWS 的 credit 什么的,加起来也有数万美元之数,对创业生活不无小补。

如何在黑客马拉松上取胜?

下面我来分享一些如何在黑客马拉松项目“取胜”的技巧。

我刚刚在美国参加黑马时一个颇让自己困惑的是:常常自己觉得非常得意的想法、项目在演示后无人喝彩,而一些让现场很多人兴奋喝采的获奖项目,自己觉得莫名其妙。后来我意识到这是一种“文化鸿沟” ——黑客马拉松的目的不是为了赢,而是为了学习、娱乐,可以说是程序员的“以武会友”,把握下面这些小技巧,你就会更享受这个过程,说不定就获得大奖。

1. 创意,创意,创意!

黑客马拉松项目的创意是最重要的,一般而言,能获胜的黑马项目往往是靠精彩的创意让评委和观众眼前一亮。

黑客马拉松的创意和一个客户项目、创业项目、甚至创业大赛项目都非常不同,往往黑马的项目更追求酷炫、新奇, 也许这些项目从创业、赢利等角度而言并不一定是合理的。

2. 项目一定要非常、非常简单

首先,越简单的项目越容易让大众和评委理解。 黑客马拉松的评委未必是你所在领域专家,观众大部分不理解复杂和高深的东西, 因此,概念非常简单的项目更容易吸引评委和观众。

其次,大部分黑客马拉松都会要求项目能被很短时间实现出来,因此一定要非常简单,才比较容易实现, 千万不要高估实现上的难度,往往一个小 Bug 就能卡上半天时间。例如我参加的 SXSW 那次大赛上,我自己觉得至少有两个团队的作品都比我们更棒,但他们都因为工程难度或者 bug 的原因,没法在截止日期前运行起来,自然也就失去了资格。即使你有一个非常棒但有些复杂的创意并且自信能完成,也建议先实现一个更简单的版本“保底”,然后再花时间在此基础之上完善。

3. 注重真实的演示,脱离 Power Point 和演讲

成功的演示非常重要。项目的精彩创意、高超编程能力,都必须要靠演示才能体现出来。大部分的黑客马拉松都是“反 PowerPoint”的, 也就是酷炫的幻灯片可能不但不加分,反而是减分项——大家都喜欢看到实实在在做出来的东西。

千万不要认为项目能开发出来就一定能演示得好, 台上演示的每一个动作其实都是精心设计的一个展现过程。 因此要取得黑客马拉松的成功,一定要花些时间考虑如何在演示的过程中,展现自己的项目思路,并且体现自己的劳动成果。

4. 团队

团队并不是人越多越好,实际上,黑客马拉松的团队人数不能太多,一定要明确分工协作。 我经常在一些黑马的现场看到庞大的团队,其实大多都是“打酱油”的,往往一开头热热闹闹,大部分都不能坚持到活动结束。

黑客马拉松一个理想团队的角色分配,包含一位整体负责人,至少一名程序员、一名设计师和一位专注于准备演示的成员,实际上往往是一人身兼数职。因此如果有多个能力综合可以互相支持协助的团队成员将非常有价值。

5. 注重学习和娱乐,别太看重胜负

参加黑客马拉松最主要的目的是学习和娱乐,赢取比赛和奖金在这里应该是“副业”和“惊喜”。 本着学习、尝试的心态来参加,关注自己有没有学到新的知识,欣赏友队提出的各种创新从中获得启发,尽自己的努力去在最短的时间内实现自己的想法,这样无论比赛成绩如何, 你都是赢家。

如何参加 ArcBlock 黑客马拉松

hackathonpage

我们这次黑客马拉松在网上举行 7 天:自 6 月 21 日启动开始,到 6 月 27 日上午 8 点,开发者在指定的 GitHub 仓库提交参赛项目,6 月 28 日参赛者通过网上视频方式演示项目,评委将根据项目的原创性、创意、工程技能、用户体验 4 项标准选出前 3 名优胜者,他们将获得总额 20,000 ABT、ArcBlock 一对一技术和风险投资辅导课程和中信出版集团最新出版的新书签名本;另外,每位提交有效项目的参赛者都将获 100 ABT 奖励。

到底开发什么项目参赛为好?我们你建议开发新的 Blocklet,或者为现有的 Blocklet 增加功能,或两者兼备。我们活动官网上举了些例子:

  • 将现有 ArcBlock 产品延展至 Blocklet
  • 监测和分析 ABT 节点上的 Blocklet 活动
  • 启动类似 IPFS 的外部工具,在 ABT 节点上无缝运行
  • 游戏和有趣的 Blocklet

我们也在 GitHub 上列了些 DApps 灵感,供大家参考。

可以看到我们黑客马拉松最基本的要求是要能做出可以运行的项目。具体参赛说明要求,请访问黑客马拉松官网做进一步了解。

hackathon badge

我们这次 DevCon 首次在业内发行 NFT(非同质通证)门票和徽章,引发了用户极大的热情和业界极大关注。而这只是我们 ArcBlock NFT 应用的一个开始。为了让更多技术爱好者、 ArcBlock 社区用户一起来关注参与黑客马拉松、体验 NFT 更多玩法。我们队黑马 NFT 徽章的发放规则进行了升级,将分以下 4 类供参与者赢取或空投:

1. 团队徽章: 参赛团队成员独有的高级徽章

  • 组队报名
  • 提交了创意、代码
  • 必须不是无意义的拷贝复制(由评委决定)
  • 每位团队成员均能获得 1 枚团队徽章

2. 项目徽章: 获选 Demo 演示的项目成员独有的高级徽章

  • 项目可运行
  • 获选参加 6 月 28 日 Demo Day(由评委决定)
  • 每位团队成员均能获得 1 枚项目徽章,以及 100 ABT

3. 获奖徽章: 获得黑客马拉松大奖的顶级徽章

  • 6 月 28 日 Demo Day 由评委现场选出
  • 每位团队成员均能获得 1 枚项目徽章、1 张获奖 NFT 证书,以及其他奖励

4. 观众徽章(3 个等级):

  • 每个可 Demo 项目,观众有机会获得 1 枚徽章
  • 观众获得基础徽章
  • 如有团队徽章,将获得高级徽章
  • 如有项目徽章,可以获得顶级徽章

为了鼓励大家参与,对于报名、提出了想法,努力去实现但可能最终没做出什么东西来的参赛者和团队,我们也给予团队徽章 NFT 以资鼓励,并且有了团队徽章后可以在后续作为观众的时候在每个项目演示的时候获得更有趣的徽章。

由于我们比赛持续 7 天时间,又碰上中国的端午节长假,因此有心的朋友实现项目可运行基本是没有任何困难的。

在 ArcBlock DevCon 2020 第二天的教学课堂中,我们工程师张镇强当场演示了如何创建一个最简单的基于 React 的静态 Blocklet,以及如何用 Node.js 来在此基础上添加动态属性:

按照这个指南,你跑出一个应用基本上不会有任何问题。我们的演示 Blocklet 2048 游戏,也就是这样一个静态页面的 Blocklet:

2048

这个 2048 游戏的开源代码仓库在这里供大家参考:https://github.com/ArcBlock/static-2048

我们的静态 blocklet 并不一定需要使用 React,其实任何采用任何您喜欢的框架,例如 VUE,jQuery 的 HTML app 都可以,甚至静态的 HTML 页面也是可以的。 只要您会写 HTML 页面,会用任何其他框架写 Web 应用, 实现一个 Blocklet 都是易如反掌的事情。

虽然实现这样的一个简单 Blocklet 非常容易, 但是真的要做成一个能赢的黑客马拉松项目还是有一定挑战的,因为不仅仅是你,还有其他团队也都在努力。

如果你是一个有经验的开发者,想完整体验一个全面的区块链应用, 那么我们工程师王仕军在 DevCon 上这个长达一个半小时的教学课堂值得你去学习:

我们期待您在我们的黑马大赛中大有斩获!