A helpful guide for hackathons.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
README.md
winners.txt

README.md

Deconstructing A Hack - A Pre Hackathon Workshop

Author: Sumukh Sridhara (@sumukhsridhara)

Contents:

  • What is a hackathon
  • How to think of ideas.
  • How to actually go about building your idea.
  • Common Mistakes
  • Other Tips
  • Questions?
  1. What is a hackathon?

A hackathon is usually a 24-48 hour event where you (and your team) set to build something cool - with either hardware or software. At the end, you demo your project to the sponsors/audience/judges. Usually you end up with a prototype of a product, learn a lot, and possibly win some prizes. The usual rules are: teams of upto 4, code should be written at the event (open-source/libraries are fine), there might be special prize categories, using APIs is encouraged.

There will be a lot of food/snacks - be sure to enjoy it & drink lots of water. Contarary to popular belief - You shouldn't stay up the whole time - it's okay to sleep/take a nap.

  1. The Idea

It's worth spending time to think of an idea that everyone on your team wants to work on.

A good approach to thinking of hackathon ideas is to think of the pitch first. The important thing to think about is how will you demo it and what will people care about? Then set out to only build the parts that people will care about. So it won't really matter if you made the most interesting backend system or tech stack using twelve programming languages (that would be neat though) - people won't care if that's not the core of your application.

It's important to think about what you want to get out of it - you don't have to be focused on getting a prize. (and in-fact it is better not to focus on the prizes) If you just want to build something you think would be cool - go for it. If you just want to learn something & meet people - go for it. If you want to aim to win a prize - go for it.

How to choose ideas:

In general you want to build something that will leave people amazed and wondering "how did they do that?". The more futuristic the better - building things that excite/impress people is the best way to stand out. Another approach is to build something that's a personal pain point that you would like solved. One more approach is look at who the sponsors are and build a product around one (or more) of the sponosor's api's.

What to not do:

  1. If you want a prize: Try to avoid things that are repeated often at hackathons. Examples include: A website to find someone to study with. A website to find a time to meetup or finding local events to go to. What is at the dining common is another common one. Another one that has been repeated but have won prizes: Playing music through multiple computers.

  2. If there is a theme to the hackathon - make sure to follow it.

  3. Music and Game hacks usually stand out.

  4. How to actually build the hack


I'll go over this when I deconstruct a previous hack.

Steps to build your hack:

  1. Come up with an idea that you care about.
  2. No idea you love yet? Go to step 1.
  3. Figure out what is the core parts of it that will impress people. Now cut the core features in half. Those are the core features.
  4. Figure out how you are going to pitch/demo it and what parts are actually important.
  5. Write out what you need to build to get to the important/core features - and if you can avoid building them.
  6. Figure out a language/framework that your team can work with & what APIs you will be using.
  7. Assign features/roles to people (make sure they can be merged to work together)
  8. Start working on your feature -> Google around to see how other people have implemented it.
  9. See if there are examples and work from there -> avoid starting from scratch.
  10. StackOverflow & GitHub are your friends.

Tips:

  • Choose a programming language/enviroment you are familiar with. It's a good idea to try to learn something new - like a new framework or technology. It's okay if you don't have experience with a technology - it's a great place to learn.
  • Use a framework or pre-built code. For HTML: Bootstrap/Foundation.
  • Learn from tutorials.
  • If you have a complicated bug - ask for help!
  • Design is important. The best demos have a really slick/packaged demo with cool functionality. So it makes sense to have one person focus on design/demo.
  • Use & Learn Git.
  • Assign work and make sure it can come together.
  • Aim to get the core of your app up in the first half of the hackathon.

Prebuilt Code Examples:

  1. Common Mistakes

  • OAuth - "Oh we'll just integrate with facebook"
  • OCR/Computer Vision - It's not as simple as it seems (or as reliable).
  • Augmented Reality/Mobile Hacks - Consider how you are going to demo. You can either use a desk camera or a laptop. It's hard to display AR otherwise.
  • Deploy - you put everything on localhost for a while and don't deploy until one hour before the demos.
  • Sitting in one place the whole time - walk around & talk to people.
  • Worrying about efficiency - Unlike school - you are not graded on how neat/optimized your code is - you are trying to build a product. Get to the product first - then optimize.
  • We'll use a slideshow for the demo. Don't use a slideshow - you want to show not tell.
  1. Tips

  • Worse Is Better. Done is better than perfect.
  • Find a team!
  • It's okay to find a team or idea on the spot.
  • Have a designer - or spend time on making it look good.
  • The demo is extremely important
  • Try to make the demo flow & feel polished (even/especially if you're working on backend stuff) & add in humor.
  • Pick an ambitious idea but keep your limitations in mind. Focus on the ONE core interaction/value proposition.
  • Talk to people/sponsors, Eat food, Have fun!
  1. Questions

  • As an exercise: Let's talk about an idea and we can discuss how to go about building it.
  • Also this is a great chance to find team members or a team if don't have one yet.

Summary:

  • Get a team
  • Pick an idea you're passionate about - whether it's futuristic or solving a personal problem.
  • You only have so much time - figure out what you can reasonably build
  • Limit your scope to the ONE core interaction. Cut your features in half.
  • Talk to people/sponsors, Eat food, Have fun!
  • Rehearse your demo and keep it in time.

Links: http://sunmichelle.com/post/26891284996/first-hackathon