黑客马拉松参赛指南
介绍一下我自己,2012 年 SegmentFault 第一次举办 Hackathon 的时候我就参加了。SegmentFault 现在是公认的将 Hackathon 这项活动带入中国的组织,那我也能算是最早的国内 Hackathon 参赛者了。2012 年到 2014 年我参加过的黑客马拉松大大小小许多场,拿过很好的成绩也拿过很差的成绩,见识过很好的举办方也见识过很烂的举办方。受轲爷威逼,我来写一篇文章,站在参赛者的角度来讲讲黑客马拉松的事情。
什么是黑客马拉松
由于主流媒体的大肆渲染,「黑客」一词在普通人的印象中已经等同于网络罪犯(导致现在圈内人用「极客」来形容原本意义上的「黑客」)。但其实黑客马拉松中的「黑客」代表编程技术极其高超,短期内实现原型能力极其出众的人。所谓的黑客马拉松,也就是短期内实现原型能力的一种竞赛。一般的比赛时间为 24、36、48 小时,要求参赛队或个人,在规定的时间内从 0 到 1 做出一个产品,然后从创意、完成度等方面对产品进行评比。
明确你的参赛目的
一般来说有以下参赛目的:
为了磨练技艺
我大部分的时候参加黑客马拉松都是为了磨练自己的技术。因此我会去做一些平时没有做过的东西,使用一些平时自己未曾使用过的技术,在短时间的重压之下,逼迫自己快速掌握新的知识。如果我能用这项技术做一个不错的产品出来,那应该可以说明我在知识的应用层面掌握得不错了。
如果你参加黑客马拉松是为了磨练自己的技术,那么我建议你应该跳出自己的舒适区,在不是特别难的学习区去进行技术选型来做产品。
上班写了一年屎,难得写点好玩的
大部分参加工作的程序员成天被产品经理压迫改需求,很少有时间写自己感兴趣的 cool stuff,毕竟不是每家公司都像 Google 那样拥有「20% 规则」。所以参加黑客马拉松是一个不错的契机,那么你的重点应该放在作品的完成度上,因为过了这 24 小时,你可能再也没有大量的连续时间来开发你的 cool stuff 了。好辛酸的样子。
为了拿投资
有的比赛会邀请投资人作嘉宾,这种黑客马拉松往往会有许多创业团队参加,大家也都很拼。不过,别人都是 code for fun 你是 code for money。那你还是作弊吧,拿你们团队已经开发了半年一年的作品来参赛,强行装作 24 小时完成,妥妥的。这没什么丢脸的,为了拿融资,这点手段还是可以的。别人暗地里骂你无所谓,骂就骂呗,他们和你的目的不一样,着重点不一样,这很正常。
为了认识牛逼的人
除了投资人,你也许会在黑客马拉松上见到如下人物:举办方的牛逼程序员、来参赛的牛逼程序员、嘉宾里的牛逼程序员、开场祝词的牛逼 CEO、为了挖牛逼程序员的牛逼公司的 HR 等等。所以只要你敢跟别人聊起来,刷脸的效果还是不错的。
如果你参加黑客马拉松的目的是为了认识牛逼的人,那你的最终目标就是这次你来扫了多少人的微信。
为了拿奖
这里的「奖」指的是专项奖,几乎每场黑客马拉松都有赞助商,赞助商往往也会提供一些他们的「专项奖」,有的专项奖的奖品还十分的诱人。比如有送苹果最新产品的,有送赞助商自家的最新产品的,还有直接送人民币的(吐槽一下,送代金劵的真是太抠门了,太没诚意了)。
一般来说,专项奖的评委都是赞助商本身,所以你应该从一开始就围绕赞助商提供的 SDK 或者云服务量身定做你的作品,SDK 能用多少就用多少,云服务能用多少就用多少。甚至你应该在开发的过程中主动向赞助商展示你的作品,在赞助商面前刷存在感,这都对你拿奖有帮助。
注意事项
睡觉
这个因人而异,也和作品的进展有关。注意不要为了熬夜而熬夜就可以了,身体是革命的本钱啊。
组队 or 个人
有的全栈开发者自己写东西飞快,和别人一协作就不知道怎么分工了。如果解藕够彻底的话,甚至不用 git 也行,因为短时间内开发项目规模肯定是大不到哪去的。如果实在不适合团队协作的话,一个人上也没问题。
MVP
圈内关于「精益创业」的理解和前两年比已经理性了很多(主要是由于 Native app 开发必须发版,苹果 App Store 还 tm 要排 7 天队,Web 大法好),但黑客马拉松应该是完全贯彻精益创业的指导思想。事实上黑客马拉松最后比的产品就是最简可行产品(Minimum Viable Products)。所以在开发的时候,用户注册登录能不要就不要,多余的功能能不要就不要,能 quick 就 quick,能 dirty 就 dirty。一切都是为了最后能在大家面前展示完成了核心功能的产品,让大家明白你到底做了个啥。
所以 Web app 能干的事情最好不要去开发 iOS 或者 Android app,除非你对你队伍的开发速度很有自信,或者这次你来就是为了练习 iOS 或者 Android 开发的。
微软粉不要喷我 ^v^
做好演示
最后的演示实在是太重要了,甚至在开发的时候也需要考虑如何去演示,然后为了演示效果好,产品大改也值得。你甚至可以直接从演示效果出发来考虑做一个什么样的产品。
所以 MVP 原则和演示效果冲突时,优先考虑做好演示,这意味着你在界面上(简洁清新),体验上(简单的流程,比如 drag & drop),动画上(最好不要硬切)应该多花一些时间。核心功能甚至用 mock service 都可以,能跑起来就行。
演示的时候,AirServer 或者 Reflector 可以帮助投影手机(你的作品很有可能是一个移动端作品)屏幕的的工具几乎是必不可少的。不建议花太多时间做 PPT,一来是开发产品会花去很多时间,二来是你的每一张 PPT 其实都是在吊观众胃口,观众就是想看你演示产品。PPT 只要简单介绍下你,再一句话介绍一下你的作品就行了。当然,如果你对你的 Keynote 功力很有自信,并且确信你的 Keynote 是展示不可或缺的一环,那就要具体情况具体分析了。
神兵利器
黑客马拉松在国外出现得比较早,Github 上甚至有 Hackathon Starter 这样的神器。这也启示大家应该尽量选择能快速完成作品的技术栈,什么 MEAN
啊,LAMP
啊,Rails
啊,Django
啊,能快就快,只有更快没有最快。
常见的坑
我说三个比较常见的坑:
网络
主办方似乎永远都会高估会场带宽的承受能力,我参加过一次国内某互联网巨头的青春梦之杯,网络根本就是卡到不能用,最后无奈去网吧写代码。相信我,做好用手机流量共享给笔记本上网的准备。
作弊
我还是拿那次国内某互联网巨头的青春梦之杯来举例,在那 2 天里,我和我的同伴克服种种困难,几乎没有睡觉,从无到有完成了一个作品,叫做「LydiaBox」。对!就是我后来拿「IDG 校园创业大赛」第一名的作品,也就是现在拿了融资的云集。
结果你猜怎么着,展示的时候,一堆名校的团队,经过了在会场几乎无法使用网络的 48 小时,跟大家介绍:「我们的产品现在有 iOS 端、Android 端、Windows 端、Mac 端、Linux 端」。我当时真是斯巴达了啊有木有!玩不起你别玩啊。
黑客马拉松防止作弊一直没有什么很好的办法,而且作弊虽然不对,但也是可以理解的。好好享受你的 24 小时,做够酷的产品,just for fun。如果你够牛逼,你的产品够牛逼,完全用不着在黑客马拉松上来证明自己。
当时虽然很气愤,很不服气,但这是我现在的想法。
傻逼评委
我还是拿那次国内某互联网巨头的青春梦之杯来举例,评委中只有几个人是互联网业内人士,其他人大部分都是高校里的教师和教育部的领导。他们认为担任黑客马拉松的评委和担任「挑战杯」的评委没有任何差别。他们依然在用审视「基于 xxx 的酒店管理系统」、「基于 xxx 的设备管理平台」这样的作品的眼光,来审视你的 MVP。其中有一个中年评委竟然就产品中的书法是否纯正很认真地提出了疑问。
首先,靠谱的黑客马拉松都是参赛队之间互相投票,评委只占总体意见的一部分。如果一场黑客马拉松的获奖情况完全由嘉宾控制,而且评委还不是互联网圈内、懂得黑客精神的人的话,这样的黑客马拉松还是别参加了。