A Comprehensive Guide on How to Hackathon

Adam Mirza
7 min readApr 16, 2019

--

A quick guide on how you should tackle your first (or really any) Hackathon.

Photo by Alex Kotliarskyi on Unsplash

So you’ve been accepted as a member for your local hackathon. For the sake of this piece, we’ll be referring specifically to programming-based hackathons (with coding). You get an email saying “Congrats!” and see that there are follow-up instructions to get ready for the special day. They usually highlight a few key factors that make for a good hackathon experience.

They might be any of the following:

  • Come with an idea
  • Test your potential frameworks and languages
  • Make your teams beforehand (if you can — usually they have team building exercises to help you out if you are unable to find a team)
  • Follow their code of conduct (this one is really important and everyone should follow)
  • Bring a laptop & charger (do this too tbh)

These are all good and helpful, buuuuuut they could help out a little more.

From my experiences in hackathons, talking to other hackers, and even hosting my own hackathon, I’ve collated a list of tips to help you get the best experience possible at your upcoming hackathon.

TLDR; Continue if you’d like a deeper understanding, but I understand we live in a society of instant gratification, so here’s the gist of what I talk about:

  1. Come with a realistic idea
  2. Avoid cliché hackathon ideas
  3. Put some research into your ideas
  4. You don’t have to have your own idea — be flexible
  5. Draw out your idea
  6. Talk & listen — be open to communicate
  7. Mentors will help you if you ask for help
  8. Test your framework (Hello World the sh*t out of it)
  9. USE GIT
  10. Things are free, try not to pay for anything unless you HAVE to
  11. GitHub Education Pack (clutch af)
  12. Don’t give up
  13. Pay attention to other pitches
  14. Talk to others about their projects
  15. Learn!

Okay, for those of you who are still here (thank you), here’s a deeper dive into those topics in the TLDR.

Photo by Kaleidico on Unsplash

Come with a realistic idea

Yes, I know it’s similar to one of the key factors listed above, but it is important

Hackathons are limited on time. You don’t want to build an application that will take months to develop, but rather the 24 hours that you are given. Don’t bite off more than you can chew!

ALSO, keep it simple if you can. More complex ideas take more time (time that you don’t have).

Avoid cliché hackathon ideas

I see these happening too often (I’m also complicit in doing this as well). Teams sometimes try to create convenient ideas since they feel the pressure for time. Because of this, I have compiled a list of my suggested NO GO ideas:

  • Calendar App
  • Course Scheduler
  • Class Organizer
  • Game Engine
  • “The Next” Facebook
  • Music Player
  • A Robot That Can Detect Mines — I tried this once, ended up building a Menu App
  • Menu App
  • Service Like Yelp or Foursquare
  • Chat room — Honestly we have too many of these
  • Health app — See chat room explanation
  • Note taking app
  • Weather app
  • Connectivity/Project Management — You really don’t have the time for it
  • ANY Biotech/Fintech App — ONLY exception is if you have (at a minimum) an intermediate understanding of the space and functions

You can still try to build these things (if you REALLY want to), but it’s usually not worth your time and gives too much headache. Plus these ideas have already been made and they’re made really well.

Now to bounce off of this idea…

Put some research into your potential ideas

Put in some time on Google or Bing and figure out if your idea has been implemented. Not to look for uniqueness of an idea, but to figure out some pain points that may come with the territory. It’ll be nice to try to enhance that already made idea. And it might make it easier for you to envision how your hack will look at the end.

Photo by Kaleidico on Unsplash

You don’t have to have your own idea — be flexible

Often times people will bring their own awesome ideas. They just need people to help them develop that idea. Be open to not completing your own idea and listen to others. Everyone is there to learn and build something for whatever reason they may have.

Draw out your idea

Having one place where everything laid out will help your team understand what goals you have and what everyone is working on. This will help separate the requirements among your teammates and yourself.

Talk & listen — be open to communicate

Teams can only work if you communicate. Make the best use of your time by checking in frequently with your team. If someone is blocked, try to help them become unblocked. Make the experience fluid and that’ll help render the best results for your app.

Mentors are there to help!

Need help getting started on an idea? Hackathons usually have mentors to help you determine the feasibility of your idea or help with any technical problems you may come accross. Use them!

Photo by Alvaro Reyes on Unsplash

Test Out Your Potential Framework

Whether you are looking into Angular or Easy68k, it’s good to get a simple, working understanding of the language or frameworks you think you’ll use.

Learn your framework by building a “Hello World” app on it or following one of their introductory tutorials. This will get the mess of setting up your environment out of the way and set you up for success ;)

Git. You need Git. Use Git. Please use Git.

Working with teams can get complicated! Having a good understanding of Git will help your team not have to email each other your code and allow for faster processes.

If you don’t want to use Git, fine, use something else. But at least make sure it’s a good version-control system that everyone in your team can use. Do NOT email your code. It’s 2019, plz.

If you don’t know how to use Git, there are some great resources out there:

Hint: A great free tool is SourceTree. Great UI/UX that makes understanding your repo EZPZ.

Things are usually free for students — exploit that

There are so many free tools for students. People want you to use their tools! Exploit that need and utilize it for your hackathon.

Here are some free tools you can use:

Okay, so use the GitHub Education Pack

This resource is loaded with a bunch of free stuff. Look through all of it and see what you can use. I wish I utilized this when I was doing hackathons.

Photo by NESA by Makers on Unsplash

Don’t give up… seriously!

I’ve seen too many people give up a few hours into a hackathon because their idea doesn’t seem to work out or it’s too complex (referring back to my first point “Come with a realistic idea”).

If anything, use it as a learning opportunity and try to get as much as you can done. By the end of it, your story for the pitch will be refreshing and informative to the other hackers while you explain your issues.

Pay attention to the other pitches

People make some crazy good apps. I know you’re probably exhausted by this point, but this is also a good learning opportunity into potential frameworks and strategies for future projects.

Talk to other hackers about their projects

ANOTHER learning opportunity. I really cannot emphasize this enough.

Learn as much as you can!

Yeah, I think you get it by now, but I’m not going to stop honestly.

The first and foremost thing for you to do at a hackathon is LEARN. Learn whatever you can! It will help you out in the future more than you think (I learned Git at a hackathon and have never regretted a single moment of it).

Why I’m Qualified To Tell You These Tips

Honestly, maybe I’m not. But I’ve been to quite a few hackathons, racking up projects left and right. In total, I have attended about 7 hackathons and hosted/organized one hackathon.

I’m now a full-time software engineer and contribute to hackathons by mentoring when I can. I help out our local school’s ACM clubs (yeah, the logo and name is old, but the students are honestly incredible).

I’ve had my fair share of heartaches and frustrations at hackathons! Best thing is to be persistent and don’t give up! Follow through and you’ll eventually get somewhere.

Good luck!

--

--