How to prepare for a hackathon
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
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
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:
- Sublime Text 3 (my favorite text editor)
- Apache (for local testing)
- Git (usually command line but I may also use SourceTree)
- GIMP (for a little image editing)
- Chrome (the best browser for debugging in my opinion)
3. Practice your skills
4. Get some 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.
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.
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
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.
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.
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.
Let me know what you think of this article on twitter @_jacobtomlinson or leave a comment below!