Jacob Tomlinson's profile picture Jacob Tomlinson
Home Blog Talks Newsletter About

How to prepare for a hackathon

5 minute read #guide, #hackathon, #space-apps, #tools

So this weekend I’ll be taking part in the 2014 NASA Space Apps Challenge. This time around I’ll be leading a team, rather than just joining one on the day, so I feel like I have to be extra prepared. Here is a checklist of all the things you should do before going to a hackathon/codeathon.

1. Update your computer

Software Updates There’s nothing worse than sitting down with your newly formed team ready to write some code, switching your laptop on to be greeted with it installing updates. Not only do you look like a lemon but it wastes your valuable coding time.

2. Install the right software

Apps If you have a rough idea of what you’re going to be doing at the hackathon (coding, graphic design etc) make sure you have the right tools before you get there. You want to get right to making things, not installing new software.

At the hackathon this weekend I’m going to be doing web design and maybe a little graphic design so I’m going to install:

3. Practice your skills

Skills If you’re going to be doing something that you perhaps don’t do every day or if you think you’ll be using some tools or frameworks you don’t know well then it might be worth practicing. This weekend I’ll be using a JavaScript physics engine called PhysicsJS. I’ve never used it before so I’ll make sure I do every tutorial I can find and play around with the examples before I go.

4. Get some sleep

Sleep You may find that sleep is hard to come by at a hackathon, particularly if it’s over a weekend. You may end up pulling an all-nighter to get it finished. If that’s the case you probably want to make sure you get some decent sleep the nights leading up to the the hackathon.

Planning a challenge/project

You may be going to the hackathon with an idea already in mind or you may form a team quickly in the morning and come up with something spontaneously. Either way you’ll most likely want to keep a record of the event and you’ll certainly need some supporting infrastructure. You’ll want to get this set up as quickly as possible (before the event if you can) so you don’t waste any time on it.

5. Blog

Blog You’ll want somewhere to dump ideas, photos, quotes, videos, messages and anything else you want to remember the event by. A blog is a great place to do this but you don’t really want to waste time messing around with configuring web servers, domains etc. So why not use a free service like wordpress.com or tumblr. Both allow multiple people to post to the same blog so everyone can dump their ideas and images in there.

6. Twitter

Twitter Depending on the size of your project you may want to create a twitter account for it. Or at the very least decide on a hashtag so you can keep track of all the tweets about your project.

7. Source Control

GitHub If you’re writing any code at all you’ll most likely want to use some form of source control. The big three are git, subversion and mercurial. You’ll also probably want to set up a public master repository to use, especially if your project will be open source. For the project this weekend we’ll be using GitHub as it’s not only very well known and easy to use but it has lots of extra features like a wiki for documentation and issue tracking for bugs/features.

8. Infrastructure

Servers Now this depends greatly on exactly the type of project you will be doing but I’m sure you’ll need some infrastructure of some sort. If you’re creating a server based application then you may want to make use of Amazon’s EC2 or perhaps use a Digital Ocean droplet. Red Hat also provide an excellent service called OpenShift Public, you can basically create yourself a server without having to do any system administration, just choose your software (apache, tomcat, drupal, wordpress, etc) and away you go.

My project this weekend will run purely in the browser as it will be written in JavaScript so we just need somewhere to host it. Therefore we’re going to use GitHub Pages to host the repository, and it’s free!

Conclusion

One of the most important things about taking part in a hackathon is don’t be too ambitious. You only have a set amount of time to build your project and its very easy to end up saying a lot of “it should do this” or “we would have done this” in your presentation at the end. Start small and then build on it.

The main thing to remember at a hackathon is learn something, meet some new people and most importantly have fun!

Images by Alex Roberts, RV1864, Daniel Dionne, Tony Alter, Dimitar Nikolov, Andreas Eldh, Peter Hellberg and Axel Schwenke. Licensed under Creative Commons.

Have thoughts?

I love hearing feedback on my posts. You should head over to Twitter and let me know what you think!

Spotted a mistake? Why not suggest an edit!