Ultimate Guide to Winning a Hackathon

I keep running into people that tell me they’re unqualified to go to Hackathons, because their coding skills aren’t good enough. This post is for everyone who wants to win a Hackathon, and specifically to people who avoid them.

I recently participated and won the biggest Hackathon in Israel. I love Hackathons, and I love winning too. Getting a cash reward is fun, but not as much as winning!

After reading the above, you probably think I’m extremely competitive and cocky, but your’e missing the point - my definition for winning a Hackathon is probably different than yours.

Definition of ‘Winning’

One might think that winning a Hackathon is equal to taking first place.
I believe that in order to win a Hackathon, the following condition have to be met:

  • One had a great time
  • One learned something new

At HackIDC there were many winners:

  • Teams who played around with different VR Headsets. Some never knew Unity existed, let alone had access to expensive VR gear like Oculus Rift.
  • Teams who built things with sensors supplied by electronic manufacturer Murata, that up to this point have never touched hardware.
  • Teams that connected to AC units and have never implemented a protocol in their career.
  • Teams that have never touched Raspberry Pi or Arduino and first played with either during this Hackathon.
  • People who have never written a website before, and finished the Hackathon with basic knowledge in JS and CSS.
  • People who have never written code in a team, and for the first time tried to collaborate using source control.

I can go on and on…

Steps to victory

Winning is not easy. I’ve met many people that went to Hackthons and thought it was a horrible experience, mainly because of these reasons:

  • Unfair competition
  • Ultimately a pitching contest
  • Often, the wrong people benefit
  • Bad way to get a startup off the ground
  • Always on the weekends

But if you change your mindset, and decide that the ultimate purpose of the Hackathon is to gain experience and have fun, non of these reasons matter.

Pick the right Team

Pick the right team. yes, don’t go by yourself and meet people there. You need to find people that you love hanging out with, can work with, and have the same mindset as you.

It might sound obvious, but time and time again, I encounter bad teams that ruin the experience for everyone involved. Talking about the things your want to accomplish, and how much work you want to invest in them can reduce tension.

Here are a few things to consider:

  • The skill level of the team members. big gaps might cause friction.
  • personal goals: some members prefer to socialize and create connections, others prefer to code as much as possible
  • the eternal sleep vs no sleep debate: some members prefer to pull an all-nighter, while others cherish their sleep.
  • Some team members want to make money, while others don’t - That’s a completely different mindset.

Set your goals

Pick something you want to do during the Hackathon: that can be anything from learning how to write something useful with TensorFlow, learning how to program a web server using Go, or even how to successfully work with git.

Many Hackathons draw amazing, smart people. They’re a great place to make connections with other people in the industry, which is a goal by itself!

Remember that the skill-set of teams varies significantly - Every Hackathon hosts people with zero knowledge, and teams of 10x programmers. plus, teams that want to take first place do things very differently than teams that just want to have fun.

You can call that unfair, and maybe it is. but you shouldn’t care, because your end goal is learn something new and have fun.

What I learned at HackIDC

I had an amazing team. We had the best time and even got to implement two fully working projects in under 24 hours. Thank you Carmel, Nadav, Amir & Inbal, you guys are awesome.

How? First, we knew exactly what we wanted to do, and split the work between us.
Second, we were never in competition with each other and our goal was always to learn and have fun.

I came with a lot of background in real-life programming, while my peers had extensive theoretical knowledge. I never worked with Matlab, and they never set up a system from A-Z. I never touched an ML library before, and they never worked with git.

Once we were done, everyone learned something:

  • Some members wrote their first python program
  • Some members got a theoretical explanation on how to databases worked, and wrote code that interacted with a SQLite database
  • Some played with various ML libraries in python

And I? I learned more than I can ever imagine on AC: from how AC really works, all the diagnostic data the unit produced, all the different sensors the unit has and even how to connect to an AC unit over serial: I read dozens of spec pages and eventually implemented most of the AC protocol over ModBus & Electra’s AC protocol - DCI.

What’s next?

Find the nearest Hackathon, put some stickers on your laptop and go win a Hackathon!

P.S: If you’re still not convinced, go ahead and read this:

Read Kalvin Lam's answer to Why do people participate in hackathons? on Quora