As a student, I found hackathons too intimidating and never signed up. I didn’t have web or mobile experience, so I thought I would have nothing to contribute and I worried about the brogrammer culture of hackathons. Once I graduated, I was invited to mentor at Hack@Brown and it completely exceeded my expectations. While there are always exceptions, most hackathons encourage learning, celebrate new hackers, foster inclusion, and support healthy habits, so I absolutely encourage tentative hackers to sign up for a local hackathon and give them a chance.
As I started mentoring, I began to love hackathons and thrive off the energy. I wish I’d had the courage to participate as a student, but even as a mentor I leave every hackathon with new skills, increased confidence, and a reinvigorated passion for CS. Since 2014, I’ve mentored at more than 12 different hackathons at 7 different schools/venues and while nothing beats the creative energy fostered at a hackathon, these tips can help you achieve your tech goals in the offseason and outside of hackathons.
- Foundations are critical — While you can prototype almost anything in a weekend, it’s important take the time to understand the core components of a language/framework before diving in. Stack Overflow is your friend, but copy/pasting code snippets until you get something working leads to messy code and tons of frustration. Spending 30 minutes at the beginning of the hackathon reading the first few pages of the developer documentation on the framework you need will pay off later in the hackathon. If you find yourself getting stuck on a concept give it one or two rounds of googling and then take the time to read the official documentation. The company wrote it for a reason and without the essentials in your backpocket, the StackOverflow answers will be confusing.
- Cautiously Divide and Conquer — Group projects are a delicate balance of skillsets, passions, and the parallel nature of your project. If you can easily divide your team into frontend / backend or design / implementation, you’re going to be in good shape. But if that doesn’t come naturally, you may benefit from pair programming or collaborating with a partner or two, until a natural diving point presents itself. Dividing everything amongst team members will speed you up in the beginning, but without careful communication, you can lose that time in merge conflicts, repeated work, or implementing to the wrong requirements.
- Establish your goals — Are you here to learn Python, win a prize, attend a bunch of workshops, get an internship… ? Balance your time to optimize for your goals. For best results, pick teammates who share your goals.
- Prioritization is key — When you start off you’ll have a grand vision: perhaps a working website, that’s hosted on the internet, uses real data, connects to several apis, has complex animations, great graphics…but a hackathon goes by quickly. Prioritize the necessary features before the flashier options and check-in throughout the hackathon and adjust accordingly. An end-to-end prototype that is missing a lot of content is usually better than several disjoint components.
- Presentation is important —Hackathon prizes go to the teams who are best able to showcase a weekend’s of work in a polished demo. You want to be clear and concise while incorporating a working demo that looks nice and has a longer-term vision. Cramming for the demo in the final minutes of submitting to devpost is unlikely to lead to an ideal demo. Practice your demo, prioritize demo-worthy features, and ensure your live demo isn’t going to crash in front of the judges.
- Nothing good happens after 2am- Taking the time to rest will help you push your project over the finish line while still enjoying your teammates’ company. If you’re frustrated that something isn’t working, take a walk and clear your head. Food and water are important as well. (Coffee isn’t water.)
What are your favorite hackathon tips? Hope to see you at the next hackathon!