我在上周末介绍了Pennapps的参与者,由本科生在Upenn组织的一名哈克松。我喜欢指导的经历,特别是假装了解很多关于硬件的好时光。

在与各个团队合作时,我注意到了一种模式:虽然我不是学生正在使用的许多技术的专家,但我能够通过专注于一些基本的工程技能来帮助他们加速他们的黑客。我的两个团队在Pennapps赢得了各种奖品,我不满意。

如果您参加即将到来的Hackathon,请自己帮助并学习这些技能;你的团队会爱你,你将有更多的时间来获得有趣的零件。

学会使用git

如果您是一名大学生,您可能没有在编码项目的团队中工作没有太多的练习 - 合作是我在Hackathon工作的许多学生的第一个。认识到对版本控制并良好了解基础知识的需求对于生产合作来说是至关重要的。

作为参与者,您必须了解如何提交代码,合并分支并恢复更改。这将允许您掌握和征服,并尝试新的想法,并在保持安全检查站的同时尝试各种实现,您知道如何恢复到错误时。我目睹了多个球队失去了工作时间,因为他们不记得他们在用一些实验变化违反项目之前所做的事情。

如果您发现自己正在评论巨大的代码,并将其标记为“尝试1”,或“工作!”,停止和学习Git。

停止和调试

Hackathons令人沮丧,因为你的代码大部分时间都不工作。然而,这正是这一点 - Hackathon是一种激烈的学习时期,您可以在其中尝试新的应用程序编程接口(API),软件开发套件(SDK),框架,甚至语言。期待问题并学会解决它们。

而不是把手放在空中,大喊大叫“它不起作用!” - 学会问,“错误是什么?”如果您可以使用二进制搜索,快速缩小可能原因的空间。插入打印语句,设置断点(如果可能),并查找错误消息。弄清楚如何快速可靠地重现问题。除非您具有嘈杂的输入或随机变量,否则您的代码应该表现得多样。如果你不明白你写的东西,这是“魔法”。

在初次调查之后,形成关于原因和测试的假设。选择性地评论块的代码,以隔离原因。

作为一个导师,我通常会大声思考,因为我在调试问题上展示其他开发人员如何确定问题的原因并创建修复。

使用谷歌(智能)

你被困。很多。谷歌是你的朋友,但有时它很难,特别是如果你不知道你在寻找什么。

首先弄清楚你需要学习的东西。你需要什么功能?它可以被称为什么?如果您是在库/ API / SDK上建立的工程师,您如何实施它?你会在哪里放在哪里?

开始搜索谷歌。速度阅读虽然是第一个少数结果来确定他们的相关性。使用相关内容猜测和发现关键字,直到您关闭所需的内容。

最后,从你学到的东西形成假设,并测试这些假设。如有必要,请在尝试将其工作到当前项目之前使用微小示例验证您的学习。

Jim Lim是Quixey的软件工程师。跟着他在推特上。