Talking about Hackathon



Hackathon

About

上周周末刚刚参加了一场杭电的“Hack{中国}全国高校黑客马拉松比赛”,想着写篇简单的感悟。
比赛上遇见了几个学霸级队友,非常感叹现在的本科生这么厉害,都是未来改变世界的人才。
我从本科开始就在关注Hackathon,前前后后大概参加了六七次比赛,现在再参加这种比赛有点欺负晚辈们了。
Hackathon的初衷是为了在很短时间内快速开发,通过压缩时间、提高效率,把原本懒散想做的一些项目、创意在非常短的时间内完成。
我在经常参加Hackathon后,也不断磨练出了很强的短时间爆发能力,规划时间、提高效率、团队合作。

接下来说下我这些年参加Hackathon的一些总结:

1.做什么

首先是做什么。源于Hackathon开放的思维氛围,大部分Hackathon都不限制选手们做什么,有些仅仅会提出一个相关的主题,这也不影响选手们做什么。大概在2014年的时候,由于移动端的火热,大片大片围绕移动互联网的应用在比赛中流行起来,那个时候做个简单的移动app,有些创意度、完整性、演示良好都能拿奖了;到后来,大家疲惫于移动app、web应用,很多有创意的硬件Geek们开始用硬件来做很多想法,各种类型的智能设备、感官游戏、无人飞行器、3D打印,这些都取得很好的效果;近年来,随着深度学习的兴旺以及国家大力支持智慧城市,很多深度学习算法开始走进Hackathon比赛中,这些项目中,有些很好地解决很多现实问题、有些则是很有创意的吸引眼球。

早期的一些作品,例如:App List,应用分享的应用,利用app选择手机自带的十个自己已使用的app,并且分享给好友,同时能看到自己好友及附近的朋友的分享,并且下载自己喜欢的应用。这个idea现在想来已经很老套了,2014年还是很有新鲜感的。

App List

后来开始流行做小游戏,例如:剑气决斗,让手机变身宝剑,通过手机3D感应器来操控游戏!纯js作品,应用使用PhoneGap,后端使用NodeJS、WebSocket,HTML5 页面,使用了云适配的技术,可以适配各种大小的屏幕,这个作品也是拿奖作品。这种游戏创意点非常足,现场演示起来效果也非常棒,有动作、有声音、有激情点,可以很好地把评委带进演讲者氛围里,非常适合演示,缺点之一就是商业性匮乏,但是拿个奖已经足够了。
剑气决斗

还有各种硬件游戏,例如:SMAUSH,将刷牙变成一场游戏。主要思路是在牙刷中放入传感器,通过蓝牙传输到后台控制端,另一端连接web游戏界面,显示游戏画面,这款游戏也是拿奖作品。这个游戏和上一个很相似,画面感很足,很容易吸引评委,想想评委坐在那里听一堆无聊的解说也是很烦的。
SMAUSH

还有做一款味蕾应用,通过传导味蕾来找到交友人群,想法很有意思,创意点很足。这种应用很大的特点就是创意性,给人一种启发,但是演示时候由于味觉第三者谁也没法说什么相同不同,没法证明什么,这点比较遗憾,如果能在结果上面加上修饰,有声音、动画,也可以展示一番。
味蕾

下面两个是这次比赛的创意:

从我参加Hackathon的经历来看,我大部分做的项目都是跟游戏有关,基本上都是带几个队友同时现场再找几个队友。
很多时候参加比赛都是破釜沉舟,现场决定idea、现场找队友,因为现场往往会碰到很多很牛逼的队友,下面是我获奖的一些idea:

2014年6月,在SegmentFault黑客马拉松做了基于Bong手环的传感数据养宠物智能硬件游戏,并获得了Bong手环专项奖;
2015年3月,在沪港全球黑客马拉松做了基于Raspberry的体感音乐游戏并获得了一等奖;
2015年5月,在安空杯黑客马拉松做了基于Raspberry的打地鼠游戏并获得了二等奖;
上周参加了全国高校黑客马拉松比赛,做了一个基于心率感应的智能跳舞机,获得了一等奖、心率传感专项奖。

从2015年华科联创的Unique Hackday没拿奖开始就发现,智能硬件游戏已经遍地开花,想要获奖似乎已经没有那么简单了。
越来越多的开发者开始朝着深度学习、虚拟现实、区块链方向转移了,不管怎么说创新性是有了,就是作品的完整度、表现力似乎还不够。

中国黑客马拉松比赛中看到了很多后起之秀,有做深度学习相关的智能诊断病症、智能交通、智能行人捕捉等等项目,这些想法都非常棒。
今年6月,SegmentFault将要举行的区块链Hackathon就很有创新,顺应时代,把最新的技术引到Hackathon上面,非常看好。

2.怎么做

怎么做非常重要了。来参赛可以没有队友、没有idea,但是确定了做一样东西后,怎么做就非常关键了。
正常来说,一个成型的队伍,根据需求可能需要有前端/App界面端、后端、硬件端、产品/设计等,不用太多人。
对于提高效率来说,定个时间表、交互的数据结构、交互方式是非常必要的,这样交接起来就非常快速了。

按照参赛的经验(对于2天的比赛),时间可以大致这么安排:

  • 基本上都是第一天12点前确定做什么,每个人分配模块任务;
  • 约定个交接时间段,15、18点交接每个模块的进度,做初步的通信交互;
  • 接下来是联通过程,22点前大致地模块都要完成,开始准备交接,24点前可以交接完成;
  • 往往在交接完成后会出现bug,而大家这时候都比较疲惫,主力需要协调大家进行快速解决问题,尽量在3点前完成bug的调试,完整地跑几次,然后就去休息了;
  • 第二天8点前开始封装产品界面,同时测试团队调试产品模型,产品经理写产品文档、演讲稿;
  • 第二天10点前要做完备的各种调试、测试、包装产品(有时候会有评委提前路过,要展示最好的状态,可以邀请他们观看);
  • 12点前要做上台的演讲准备,整个上台流程走几遍,包括环境布置、现场意外、演讲人的演讲要点理清(很多人没做这点出意外);
  • 12点前提交最终项目文档、代码,记得提前上路演台看看显示器接口、音箱。

上面都是些基本的时间安排,往往很多人都只注重开发过程效率问题忽略了模拟路演过程,我拿奖的比赛都是经过提前模拟路演的。
很有意思的是,之前参加的比赛都是带着拿奖的决心、娱乐的心态在玩的,每次都会在傍晚和队友吃完饭出去散步、逛超市买设备。

3.怎么说

很多人觉得Hackathon没意思都在于觉得它不公平,而这不公平往往来自于觉得这个东西靠骗。
其实并不是这样,程序员大都自我满足,然而很多人做了很牛逼的项目却不会表达,最后上台话都没说清。

为了迎合评委,我经常会在做的东西里面加入很多元素,
比如:评委年龄段(适合啥背景音乐、说些什么话得体);现场做哪个东西的人多,不要撞车;现场演示要怎么跟观众互动起来,展示者手势、肢体动作,演讲者说话重点;比赛评分要求占比是怎样的;怎么表达可以让评委一下子知道我们解决什么问题、创意点在哪、工作量充分、作品完整。其实把上面这些点都做了非常难,但是做到一部分就很完美了,很差的项目都可能拿奖。

很羞耻的放一个这次比赛的视频:

演讲者很努力把每个部件的功能结合表演者的动作向评委解释清楚,同时表演者故意装出很多肢体动作来吸引评委。


Game

接下来说说这场比赛吧,因为还是很有意思的,从一开始到最后都没有太多期待,但是得到太多回馈。
比赛当天一个人到现场,没想到具体要做什么、没有很确定的队友,现场找人还被人拒绝,直到后来开始通过经历忽悠才找来队友。
有几个队友非常牛逼的,不但名校出身而且大一大二就准备好出国留学的地方了,非常羡慕。

做的项目是一个智能硬件跳舞机,首先制作跳舞机踏板通过树莓派GPIO接出传感器,同时获取杭州诺朗科技的心率检测仪上的数据,把这个两个输出传输给后端socket后端,后端将这些数据广播给游戏界面客户端,客户端通过心率自动调控游戏速度,同时根据跳舞机踏板信号玩游戏。思路超级简单,基本沿用了我前几年比赛的模型。
目前项目已经开放到Github了:https://github.com/HDU-HackDay/Dance4Me

下面是一些现场照片:

2点多的现场

队友在夜间游戏竞技,Hackday最重要的是开心

夜间游戏玩得开心也要获奖

团队照片,很珍贵

团队照片,很珍贵

一等奖照片

任务获奖照片


Reference


本文出自 夏日小草,转载请注明出处:http://homeway.me/2018/05/21/talking-about-hackathon/

by grasses 2018.05.21

Fork me on GitHub