Hackathons - how to tame the beast

Many of us became programmers because we wanted to solve problems that we came across every day. It doesn’t matter if we want to create a website for ourselves, write a mobile app that’s missing from the store or program a robot just for fun. We are driven by curiosity and making machines to help us in the process is absolutely satisfying. How about we take all that passion, multiply by dozens of people and focus on solving real issues? That’s the idea behind a hackathon - turning any idea into reality in a realtively short amount of time. If you wanted to build a complete product from scratch it would take ages to plan, develop and test. The notion here is to quickly hack something together and aim for the minimum working result during a marathon of coding. Let’s try that, shall we?

I know what you are thinking. “I am not that good”, “there will be better coders in attendance”, “I don’t want to make a fool of myself in front of people”. These were exactly my thoughts before my first real hackathon too. I bought a ticket for one without putting a lot of thought into it. The event was in a few months and I guess I assumed it will all work out. The closer the hackathon the more doubts I started to have. In the end I was going to participate alone so other thoughts popped up in my head: “what if I don’t find a team”, “it’s difficult to go to random people and ask if they need any members”. But you know what? I decided to slay the demons, get out of my comfort zone and prove my inner voices wrong.

It was unquestionably AWESOME to that extent that I decided to give you some courage and share some advice.

The first step

The more you debate whether you should participate in a hackathon the more likely you are to convinvce yourself not to do it. My advice here is to imagine you are taking a big step forward and not look back. Hop on a train, after that it will be a lot easier. I promise.

People don’t bite…

… or at least they shouldn’t ;-) When you arrive, look around, get yourself a cup of coffee and say hi to strangers. In the worst case scenario they will just greet you back and that’s it. It’s possible tough that you just found yourself a possible team member. Try smalltalk, ask for stuff not related to programming as well. And remember, a smile always helps :)

Think outside of the box

A hackathon is all about being creative and discovering new areas. Coming there with a fixed plan would be a waste of the innovative spirit. Go for crazy and less likely ideas. Be brave and speak up for the silly approaches. Where else will you be able to do that? There is never enough time at work to do side projects. Here you will have all the help in place and other people to brainstorm with.

Polish your strengths

If you feel more comfortable with frontend, join the team that has backend covered already. Choose what you would like to practice more. If a team consits of members that have in total full-stack experience, it’s much easier to divide tasks among all the people.

Know your tools

Use tools and favourite IDEs you are already familiar with and have them set up on your machine. Time is really precious and it would be a waste to spend it on configuration.

Bring a notebook and a pen

It’s way faster to draw and write notes on a piece of paper rather than trying to do designs on your computer. You can transfer them to electronic version later if there is enough time left.

Minimum Viable Product

It’s absolutely crucial to find a minimum version of your project that you will be able to show to others. Don’t go into details of all the features, it should cover basic actions and that’s it. Are you writing an API for your team? Create-Read-Update-Delete would be awesome but given the limited time you have just go with Read operations and…

Mock your data

There is no need to write all functionalities in just a few hours. We can substitute the data with any content and make it more realistic when MVP is done and there is still time left. Nobody will care if your application prints a dummy “Lorem ipsum” content.

Collaborate

Create a team repository and merge as often as you can. It will pay off in the long run when you don’t have to solve complex conflicts that might appear the more code each member produces. A shared communication tool will help as well. Slack is super easy to setup and you will have links shared in one place, available immediately for everybody.

Take breaks

I am sure there is at least coffee and water available around you. Whenever you feel out of ideas, get up, take a short walk or drink something. Your brain will be grateful and you will actually save time by not zombieing in front of the screen on the simplest thing.

Have fun!

In my opinion that’s the most important part. When you’re enjoying yourself, I am sure the overall gained experience will be much more valuable. Get as much as you can from the event. Meet new people, share contacts and talk to other teams. Discover things available there and make notes of the new things you saw.

If you are still not convinced, drop me a line on social media, I am open to talk about it and will try to resolve your doubts.

Photo author: Matthew Roth

Share the happiness :)
Damian Tarnacki
Damian Tarnacki
A developer that believes that optimised workflow for a user matters. Experienced in all layers but having more passion for building frontend with perfectly aligned elements. Always up for riddles and weekend travels.