全球最大校园Hackathon:失败后,你能学到什么?

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

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

image.png

全球最大校园Hackathon:PennApps

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

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

image.png

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

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

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


1. 分秒必争

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


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


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

image.png

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


2. 不能傲慢、轻敌

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

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


3. 准确定位产品功能

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


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

image.png

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


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

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

image.png

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,大家都得依赖他。

image.png

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与其他两位宇航员在太空中经历了缺少电力、正常温度以及饮用水的情况下,仍然成功返回了地球。]

image.png

尽管失败了,但总结了经验教训、学到了东西,它依然是成功的。

相关文章
|
设计模式 JavaScript 前端开发
深入理解 Vue3 中的 setup 函数
深入理解 Vue3 中的 setup 函数
|
小程序 前端开发 PHP
PHP实现生成小程序二维码带参数进入指定页面、小程序URL scheme实现携带数据跳转小程序
PHP实现生成小程序二维码带参数进入指定页面、小程序URL scheme实现携带数据跳转小程序
507 0
|
12月前
|
SQL 运维 监控
数据库国产化选型?YashanDB 给中大型企业的五个答案
近两年,“国产数据库”成为企业数字化升级的重要议题。YashanDB作为新一代国产关系型数据库,以完整产品矩阵解决企业核心关切:通过图形化工具提升开发效率;提供自动化迁移平台简化数据库切换;云管理工具减轻运维负担;支持复杂业务场景;拥有成熟团队保障企业级服务。YashanDB不仅是“可替代”,更是“更可靠”的选择,助力企业实现高效、可控的数据库升级。
|
机器学习/深度学习 人工智能 算法
Nature:AI也许可以拥有常识,但不是现在
人工智能(AI)的快速发展引发了关于其是否能拥有常识的讨论。尽管AI在特定任务上取得进展,但目前仍缺乏真正的常识理解。常识涉及对物理世界、社会规范和文化背景的理解,难以通过数据和算法完全捕捉。研究人员正通过大规模语言模型和强化学习等方法提升AI的常识能力,但仍面临显著局限性,如对物理世界的直观理解不足、社会文化背景理解欠缺以及常识能力的通用性差等问题。未来,多模态学习和与人类交互有望增强AI的常识能力。
331 20
|
SQL 流计算 关系型数据库
基于OpenLake的Flink+Paimon+EMR StarRocks流式湖仓分析
阿里云OpenLake解决方案建立在开放可控的OpenLake湖仓之上,提供大数据搜索与AI一体化服务。通过元数据管理平台DLF管理结构化、半结构化和非结构化数据,提供湖仓数据表和文件的安全访问及IO加速,并支持大数据、搜索和AI多引擎对接。本文为您介绍以Flink作为Openlake方案的核心计算引擎,通过流式数据湖仓Paimon(使用DLF 2.0存储)和EMR StarRocks搭建流式湖仓。
1295 5
基于OpenLake的Flink+Paimon+EMR StarRocks流式湖仓分析
|
人工智能 机器人 芯片
《C++与类脑芯片:开启人工智能硬件新征程》
在人工智能快速发展的背景下,类脑芯片作为模仿人类大脑神经元结构的新型硬件,以其低功耗和高并行处理能力崭露头角。C++凭借其高效执行、强大内存管理和丰富的库支持,在类脑芯片的应用开发中展现出独特优势。二者结合不仅在智能感知、数据处理和机器人控制等领域带来突破,还为未来创新应用如智能诊断、个性化教育等开辟了广阔前景。尽管面临编程复杂性和生态不完善等挑战,但通过学术界、产业界和开源社区的合作,C++与类脑芯片有望推动人工智能迈向新高度。
390 12
|
Linux Docker 容器
/var/lib/docker/overlay2 占用很大,清理Docker占用的磁盘空间,迁移 /var/lib/docker 目录...
/var/lib/docker/overlay2 占用很大,清理Docker占用的磁盘空间,迁移 /var/lib/docker 目录...
1275 0
|
存储 安全 测试技术
渗透测试之白盒测试:一种深入的安全性评估方法
渗透测试中的白盒测试是一种利用系统详细信息(如源代码、数据库结构和网络拓扑)进行深度安全评估的方法。通过源代码审查、数据库分析和网络拓扑研究,测试人员能更准确地发现漏洞并提高测试效率。尽管白盒测试能深入揭露潜在威胁,但也面临信息获取难、代码理解复杂及对测试人员高技能要求的挑战。
渗透测试之白盒测试:一种深入的安全性评估方法
|
安全 Java
利用AQS(AbstractQueuedSynchronizer)实现一个线程同步器
利用AQS(AbstractQueuedSynchronizer)实现一个线程同步器
|
小程序
大中型医院线上预约挂号系统源码,对接HIS,支持预约挂号、预约记录、在线支付、医保支付、医保信息、电子报告、住院每日清单查看等功能
预约挂号管理系统具备后台管理端和用户使用端,用户使用端包括:微信公众号、支付宝小程序。 技术架构:C#+.net+uni-app+ SqlServer 2012+ VS2019 ,自主研发,自主版权,多家三甲医院应用案例,有演示。
477 0
大中型医院线上预约挂号系统源码,对接HIS,支持预约挂号、预约记录、在线支付、医保支付、医保信息、电子报告、住院每日清单查看等功能