I wrote over 100,000 lines of code before winning a hackathon.
Like most developers, I enjoy going to hackathons. They're exciting, you can meet new people, and there's usually free food. I've been to a handful of them in the past like Hack for a Cause and a few Facebook hackathons. But recently, I was part of the winning team at AngelHack, the world's largest hackathon. Having gone to several in the past, and losing nearly everyone of them, we decided to take a different approach with AngelHack.
I'll be a judge in an upcoming hackathon hosted by CUTC, so I'm hoping that people can learn from what I'm about to share. For this tip, I'll be referring to anyone attending a hackathon as a hacker. So without further delay, these are the 5 things I can tell new hackers about how to win a hackathon.
Build Your Team Ahead of Time
Don't go to a team event without a team. Sometimes hackers make the assumption that they'll just be able to create a team once they get there. The problem is that...well, put bluntly...most developers don't have people skills, so it's difficult for them to just "make a team". Also, you don't want to be that last person desperately scrambling to join a team. You've got better ways to spend your energy. If you need to build a team, build one before hand and have everyone meet. On the day of the hackathon, don't let people join in. It might throw off your game plan (more on that later). When it comes to the structure, usually there isn't a need for people other than developers. Establishing a clear leader also helps; he or she will be presenting. :)
Come Up With An Idea Ahead of Time
Most new hackers, and even some experienced ones, seem to think an idea will just magically appear in their head when they need it to. We've all heard some billionaires say that inspiration hit them while they were in the shower or taking a dump. Although that may be true, it's very unlikely it will happen to you at a hackathon. So think about what you want to build before you go.
Some hackathons will be themed. Hack for a Cause wants you to build an app for charity. Facebook hackathons often want you to build an app with their Open Graph API. Angel Hack wants you to build a kick ass, let's change the world in 24 hours kind of app. So come up with an idea before you go.
Cut Out the Crap (COTC)
Most hackathons will only give you a few hours to build something. For AngelHack, our team built an API called Airpost which unifies all of the different cloud storage APIs. We only needed one thing to work by the end of the hackathon; the ability for developers to make a RESTful API call that would upload a file to any cloud storage of their choice using the endpoint /:cloudname/upload/:filepath. Don't spend a second out of the 2 minutes (or less) you have to present demonstrating login or registration functionality. Trust me, it's not that impressive, your core functionality is what is.
Learn How To Do It Before You Do It
Almost all hackathons will require you to write fresh code the day of. However many will allow you to do research beforehand. Setup your environment and learn how the 3rd party APIs work. I'll even go as far as saying to write example apps that clearly show how the framework or APIs you're using work, and that they DO ACTUALLY work. Don't spend your time learning something new during a hackathon. You'll be surprised how fast time flies by.
Go In With A Game Plan
Half the battle is showing up prepared (not just showing up). Every person on the team needs to know exactly what they're doing. Often, designers can even create mockups in Photoshop before the hackathon and then turn them into code during the event. During the course of the hackathon, make sure to set check points to see if everything is on track, and be sure to take breaks; exhaustion breeds stupidity.
These are some of the ideas that helped me kick ass at AngelHack. It's my greatest hope that it helps you excel at your next hackathon as well!
Best of luck and happy hacking! @z33shansyed