黑客马拉松是一种开发软件的活动形式:开发者们在一定期间内协同开发软件。黑客马拉松为开发者和团体提供学习机会和场地,并把活动发布到网络上。开发者在这里玩得很开心。
Shirly Ronen创建了roojoomWTF is a hackathon。这个roojoom是一个关于黑客马拉松的例子和好的实践的集合。上面有一篇Dave Fontenot发表在Medium上的文章,他在这篇文章中解释了什么是黑客马拉松:
黑客马拉松通过技术为个性表现和创意提供了展示舞台。有技术背景的人们聚在一起,围绕某个问题或想法组成团队并且从头开始协作完成一个独特的解决方案:这些通常以网站、移动应用和机器人程序的形式出现。
无论是开发网站、移动应用,甚至是硬件编码,目的都是从头开始并最终完成一个可运行的原型。通常,这些活动持续24到28小时,并且有食物、咖啡、奖金,和你能猜到的,更多的咖啡。当时间结束后,团队会展示他们的成果并竞争奖金。
Shirly创建的roojoom上有一个YouTube采访Peter Morano关于如何组织和举办自己的黑客马拉松的链接和一个来自Tess Rinearson的博客文章,里面介绍了黑客马拉松上的8种项目:
- 前沿研究项目
- 网站提升
- 插件
- “三小时学会三种新技术”编程
- 炫耀
- “相信我它可以工作”编程
- 打磨的项目
- 过分打磨的项目
Tess Rinearson也是Medium的hackers and hacking栏目的编辑,在这里几位开发者分享了他们参加黑客马拉松的经验:
Rafa Moreno在我的黑客马拉松经历中写道:我以前对如何编程一无所知并且在我的学校里只认识3位左右有计算机编程经验的人。我不是计算机专业,也不认识这个领域的任何人。由于今年在黑客马拉松的经历,我学会了计算机编程并认识了很多遍布美国的朋友,甚至有了一位印度朋友。我跟一些公司和创业团队有了接触,他们让我在这个秋天去面谈和旅行,这在以前都是没有过的。
Jose Luis Teran在把黑客马拉松中的想法变为创业中写道:实现想法并享受一起合作的愉快周末,很快就会有更多含义。事实上, 如果我们决定全身心投入,这个网站mentorcube.com很可能变成创业。
Danny Espinoza在彻底编程中写道:我会花下面的48小时编码来操作像素,从组装的部件创建原型。我会享受美食、嘈杂的气氛、几百人把生活融入到想法中的努力。
Jim Lim在VentureBeat发表了一篇关于黑客马拉松中最有用的3种技能。他建议黑客马拉松参与者应该学会下面的技能:
- 学会使用Git -- 作为一个参与者, 你必须学会如何提交代码、合并分支和恢复变化。这会让你维护一个安全的检查点:当事情出错时,你知道如何恢复。在这个基础上,你可以分而治之,尝试新的想法和验证不同的实现。
- 停下来调试 -- 黑客马拉松常常会令人沮丧,因为你的代码大部分时间不工作。然而这正是关键所在 -- 黑客马拉松是一个高强度的学习时期。在这期间,你可以尝试新的应用编程接口(APIs)、软件开发包(SDKs)、框架、甚至新语言。期待问题并学会解决它们。
- 使用Google(明智地)-- 首先明确弄清需要学习的内容。你需要什么函数?它如何被调用?如果你是在库/API/SDK基础上开发的工程师,你会如何使用它?你会把它放在哪?开始在Google上面搜索并快速浏览前面结果来确定相关性。使用相关内容去猜测和发现关键词,直到你选定了你所需要的。
Sam Sturgis在CityLab上发表的博客城市应该重新审视黑客马拉松来提高数字基础设施?中描述了一个由波士顿举办的黑客马拉松成功的故事:
经过36小时的精心代码编写,在线数字系统Permit Finder完全改变了波士顿处理成千上万个许可证申请的方式。
由黑客马拉松交付的解决方案能够让提交者实时监控许可证申请被处理的进度。
“发许可证的根本挑战不是我们发不了许可证”,波士顿的首席信息官Jascha Franklin--Hodge解释说,“而是对于我们的居民,这个过程太不友好和太慢了。”
现在因为有了“Permit Finder”,一个申请者只要浏览这个新网站并输入他的申请号,那么他就能很快知道申请在这个7步过程中的进度了。
这次黑客马拉松成功的关键是花时间去分析那些需要被解决的问题,如Sam所解释的:
在编码开始之前,城市发布了想让黑客马拉松参与者处理的4个不同的挑战,其中一个是“居民需要一个清晰的方式跟踪所有和他们活动相关的许可证”。
毫无疑问,市政府应该明确告知技术团队需要让他们解决的挑战。遗憾的是,在许多政府举办的黑客马拉松上,缺乏这种明确的目标。
你参加过一次或多次黑客马拉松吗?你学到了什么?请分享你的经验!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。