1

全世界最大的校园Hackathon(编程马拉松)要属宾夕法尼亚大学的PennApps了,它是一个持续40小时的编程大赛。本学期的PennApps于2013年1月18日-20日举行,有来自世界各地超过450名学生参加比赛,大赛总奖金为2万5千美金。今年的冠军团队来自加州大学伯克利分校,他们得到了4000美元的奖金。[注:参赛作品和获奖名单可参看PennApps官方说明。]



全球最大校园Hackathon:PennApps

宾夕法尼亚大学计算机专业大二学生Max Scheiber和他的朋友Jeff, Teddy以及Ashu参与了本次PennApps活动。Teddy是一名优秀的UI设计师;Jeff是一名出色的iOS开发者,拥有过硬的行业经验;Ashu拥有丰富的Python开发经验;Max自认是团队中最灵活多变的选手,他是整个团队的负责人。

他们原计划开发一款名为“Merge”的应用:一款帮助大学生在聚会上交友的App。尽管早早来到比赛现场,但他们最终未能完成该App的开发,只提交了一个未完成的demo。


PennApps由位于美国费城的常春藤名校宾夕法尼亚大学主办

Max认为他们的失败具有普遍意义,他写这篇博客的目的在于帮助大家总结分析,共同进步。

下面我们看看Max团队从本次比赛中汲取了哪些经验教训:

1. 分秒必争

在编程马拉松大赛中,必须惜时如金——你需要充足的时间做产品定位、优化功能以及修复bug。

成员之一Jeff由于参加一个大学生联谊会中途离开了6个小时,另一位成员Ashu也参加了一个会议,中途有几个小时不在比赛现场。

Max说,他并不是想要指责Jeff和Ashu,但他们应该为自己的行为感到羞愧,因为他们二人的缺席导致整个团队蒙受损失。如果那几个小时他们在现场,说不定就能够完成整个App的开发了。

PennApps——只属于大学生的编程大赛

PennApps——只属于大学生的编程大赛

2. 不能傲慢、轻敌

在比赛前,Max他们一致认为团队能稳进前20名:他们有足够好的idea,良好的心理状态。不幸的是,这种过度自信和傲慢导致了成员没有全力以赴。大家对于技术难题缺乏预见性,当真正遇到棘手问题时,没有充足的时间进行补救。

PennApps大赛有超过450名选手、100多个团队参赛,每个团队都心理素质过硬、准备充分、技术精良。千万不能让傲慢的心理阻止团队前进,你必须努力,必须积极行动。

3. 准确定位产品功能

Max认为,有些App只适合在Hackathon比赛中进行开发,有些App则更适合市场推广和销售。他们未完成的应用“Merge”明显属于后者。因为许多人告诉Max,如果Merge能够在应用商店中下载,他们非常乐意使用它。“Merge”如果能够完成开发,将会是一款非常棒的App。

成功的Hackathon作品应当是技术与创意兼备的、能够给大家留下深刻印象的作品。获得今年大赛头奖的作品“Inventory”,将RFID(射频识别技术)扫描器与双肩包进行智能结合。这是一个非常棒的创意!去年的冠军作品JAM,是一个帮助用户将平时的音乐创作灵感谱成曲子的App,也充满了创意。

本次PennApps冠军作品“Inventory”现场演示

你要做出一个满足大众需求的作品,而不是只吸引Geek(极客)的App。在此之前,Max参加了2012年秋季的PennApps大赛,他的作品在技术方面令人赞叹,但是Mish Awadah(一名大赛评委)指出:“我个人非常喜欢你的作品,但问题在于,它只能吸引你我这样的极客,却很难捕捉普通用户的心。”

Max和队友还得出了另一个重要的结论:应该尽量使用赞助商的API(如:本次PennApps大赛,微软就是赞助商之一,参赛选手可以选用微软的API)。今年的获奖团队中,有一部分团队就选用了赞助商提供的API。Max认为,外部创新力比内部创新力更容易获得。这也是大公司收购初创公司的重要原因。而在Hackathon的世界里,顶尖团队都会使用赞助商开放的API,这样能节省更多的时间处理自己的技术,用最快的速度完成自己的作品。赞助商的API都是经过验证的、实用性很强的思维的产物,它们像是发动机,能源源不断地制造灵感的火花。

PennApps比赛现场

4. 一定要熟悉技术

整个团队中,Jeff只会Objective-C,Ashu只会Python,Teddy既不会Objective-C也不会Python,Max自己精通Ruby,会一点Objective-C和Python。

对于这样一次iOS开发来说,Jeff自然是团队的核心程序员,所有的后端程序均由Jeff一人进行编写。Max由于Objective-C知识有限,只能进行bug调试。整个比赛下来,Jeff没有睡过觉,因为做这个App,大家都得依赖他。

PennApps吸引了来自世界各地的大学生编程高手

今后的比赛,Max表示至少要有两人能够熟练掌握Objective-C语言。这样便可以在长达40小时的比赛中轮流休息了。理想的情况是:Jeff先编写4小时的程序,然后小睡一会儿;Max接替他的工作继续编程;Max和Ashu共同完成他们的Python API;Teddy专做UI设计。

本次比赛,团队在开发“Merge”与Facebook整合的过程中曾出现了严重的问题。尽管在此之前,Jeff和Max都使用过Facebook SDK,也都遇到过问题。但他们二人在比赛之前都没有进行熟悉和练习,导致了最终的失败。

结语:

虽然这次比赛失败了,但Max通过分析、总结,准确找到了症结所在。他表示还将参加今后的PennApps比赛,同时他也在招募队友。

最后,作为对此次团队表现的评价,Max特别引用了前美国国家航空航天局宇航员James A. Lovell对阿波罗13号登月任务的形容——“A successful failure”(一次成功的失败)。意思是,尽管失败了,但总结了经验教训、学到了东西,它依然是成功的。[注:阿波罗13号(Apollo 13)是阿波罗计划中的第三次载人登月任务,飞船于1970年4月11日被发射升空。发射后两天,服务舱的氧气罐发生的爆炸严重损坏了航天器,James A. Lovell与其他两位宇航员在太空中经历了缺少电力、正常温度以及饮用水的情况下,仍然成功返回了地球。]



尽管失败了,但总结了经验教训、学到了东西,它依然是成功的。(图片来源:NASA

via:Max Scheiber个人博客


Sunny
5.3k 声望2.3k 粉丝

SegmentFault 思否 CEO


引用和评论

0 条评论