tech-crunch-disrupt

10 tips for hackathon success

If you’ve never been to a hackathon, they are typically a 24-48 hour event during which time your team needs to build a working prototype for a product, usually a web or mobile app, but some teams build actual hardware devices. I’ve been to a lot of these hackathons, and have observed some patterns for what makes for a successful hackathon experience. So without further ado, here are 10 tips for hackathon success:

1. Set realistic expectations

einstein-quoteThere’s the temptation to go into a hackathon thinking that you’re going to build a 1.0 version of a product. The reality is that with only 24 hrs, you’ll be lucky to build something that actually works and is demoable. Make sure it’s something you can build in 24 hrs. Otherwise, you’ll spend the majority of the time postulating on all the different things you could build and trying to prioritize the features, and you’ll be left with a bunch of diagrams on the back of a napkin, but no actual thing that you can demo.

You need to think big, but start small. What is the simplest thing you can build that provides value? Err on the side of subtracting functionality rather than adding functionality. In lean startup terminology, this is called a minimum viable product (MVP).

2. Attract talent to your team

If you are a business guy and can’t write code, you’re going to need to convince a developer to join your team. Likewise, if you’re a developer but can’t design, you’re team is going to be much stronger if you can attract designer talent. Without the right people on your team, you’re going to be handicapped and have a hard time getting to a working prototype.

How do you attract talent to your team? Most hackathons provide an opportunity to pitch your idea before the hackathon starts. Write down a concise description of what you want to build, who it’s for, and why they would want to use it (what’s the problem that you’re trying to solve). And then practice your pitch so that it comes off naturally when you stand up to present it. State very clearly who you are looking for, and if you have a particular technology in mind, mention that too. If you’re planning to develop in Django, you just might attract other developers who want to code in Django too.

3. Get to know the vendors/sponsors

For our project Amazon, you can use open source projects to your product. Singly allowed us to authenticated users using their Facebook or Twitter accounts, and post status updates on behalf of those users to their Facebook and Twitter accounts.

4. Do your homework

One thing that we didn’t do was to study the APIs before the hackathon. I highly recommend going through the examples and understanding how the various libraries you’re going to use are put together. That way you don’t spend precious time reading docs, and trying to figure out how to use a library or 3rd party API, but can focus 100% on building the functionality that is unique to your app. We spun our wheels trying out django-bitly, only to discover that it was broken, and so we reverted to using the Python library recommended by bit.ly.

Using existing code can drastically speed up your development time, but beware of code that is buggy or not well-documented. You could spend as much time debugging someone else’s code or scratching your head because of non-existent docs, than if you were to just build the functionality from scratch.

Where do you find trusted packages? Again, do your homework beforehand and select packages that are actively being developed (so you know they’ll work with current versions of your web or mobile framework), have good documentation and preferably you’ve already installed them and run the tests, so you know they work. For example, if you’re working in Python, look for an existing package at PyPi and DjangoPackages lets you compare similar Django packages. Crate.io is an alternative to PyPi that provides some additional information about the packages so you don’t have to go digging for it.

5. Use Github for version control

This seems like a no-brainer but I’m constantly amazed at how many developers are not familiar with DVCS such as Git. You can save yourself a lot of pain and frustration by setting up a repository on Github at the very start, and remembering to commit early and often. It’s much easier to roll back an atomic change, than trying to roll back a bug that was also committed with a bunch of new features.

Even better, use feature branches or have each person on the team work on their own branch. Rather than merging into master and potentially breaking the application for everyone else on the team, merge the master branch into your branch, and only after you’ve ensured that everything is working properly, merge it back into master.

We got a little bit lazy and on made the mistake of merging to master before testing things fully. Inevitably, this broke things badly an hour before we were supposed to submit our hack and we ended up having to make a new ‘predemo’ branch and cherry-pick commits into that branch to get the needed functionality for our demo. This was painful and could have been avoided had we been more careful with our git merging process.

6. Use a PaaS for deployment and hosting

This also seems like a no-brainer, but old habits die hard. Once you get used to doing something a certain way, even if evidence suggests there is an easier and faster way of doing it, we hold onto that which is familiar. Unless you’re using some obscure language that is not supported by the PaaS providers, you’ll be able to deploy faster and spend more time writing code and less time with tedious sysadmin tasks if you use a PaaS. Some that I like are Heroku, Dotcloud, OpenShift and Stackato, and if you’re a Django developer, read my post comparing various PaaS providers for Django deployment.

As with the vendor APIs, spend some time before the Hackathon to try out these PaaS providers to get familiar with the deployment process, and make sure that the PaaS supports all the features you need for the app you’re planning to build.

7. Take frequent breaks

When you’re under time pressure, and when the whole team is counting on you to build feature XYZ, it’s tempting to sit in one spot and plow through until you’re fingers are numb from all the typing. But this is a sure-fire way to burn out and even worse, hurt yourself with RSI. I always bring my Kinesis Ergonomic keyboard with me to hackathons, and my wrists thank me for it.

Remember to get up from the desk, stretch your shoulders and wrists, and go get a drink of water. Sometimes walking away from the code and coming back to it after taking a break makes all the difference in breaking through a tough problem.

8. Envision your perfect demo and work backwards

The best way to prepare for demo day is to think about what you wanted to show in your demo, and then work backwards. In other words, build the functionality and UI screens that you need to show the audience what is unique about your app. A 24 hour hackathon is not the time to build a full-featured product, so focus on the parts that you want to show in the demo, and only work on those. If you decide to continue working on it, you can always come back and fill in the missing pieces.

It’s important to spend time making a decent video, and not wait until the last minute to do it. As with the APIs and PaaS, learn how to use a Screen recording software package before the Hackathon, so that you’re not wasting time trying to figure out how to get the audio drivers working to record the sound.

9. Use an HTML/CSS framework

ourmy_mockup_300pxYou can come to the Hackathon with pre-made wireframes or mockups, so you should definitely do this in advance, so you’re not spending valuable time doing this at the Hackathon. But what about the HTML/CSS? I’d highly recommend using Twitter Bootstrap or Zerb to build a nice-looking prototype without having to write hardly any CSS yourself.

If you’re worried that your Twitter Bootstrap site is going to look like every other bootstrap site, head over to Bootswatch to get a free bootstrap theme, or Wrapbootstrap and buy a theme for a few bucks. The advantage of using something like Twitter Bootstrap is that you can assign someone in your team who is less technical but who has good design sense, to create the templates using Jetstrap, a completely web-based drag-n-drop tool for building Twitter Bootstrap templates.

10. Have fun!

Remember that you’re at the Hackathon to have fun. Yes, it’s a competition but it’s also a place to experiment, meet interesting people, learn something new and build something from scratch. Don’t stress yourself out too much if you don’t accomplish what you set out to do, or if you don’t win. Just have a good time and put your best effort forward.

Continuous hackathons

Despite enjoying my time at hackathons, it always irks me that at the end of the hackathon, people say their goodbyes, go home, and then the project quietly dies. That app that you were singularly focused on for 24 hrs and sweated bullets to complete on time, is now not much more than an unmaintained landing page. The app’s Github repo is a ghost town and Heroku has decommissioned your app because it doesn’t get enough page visits.

But it doesn’t have to be this way! Imagine a hackathon that was not a single event, but a continuous bi-weekly or monthly gathering in which participants meet to work on their hacks?  I think that meeting consistently would help build momentum for a project, and make it more likely to reach some level of maturity.

Happy hacking!

1-5JIfJBFHZWmyFp5t7-OkKA

Why you should go to a Hackathon

Worried about attending your first hackathon? Hackathons can sound scary… but really they’re fun and relaxed events where you can learn how to create cool technology.

Hackathons are weekend-long technology festivals. They’re somewhere you can meet like-minded people, learn new things, and create cool technology. They can sound pretty intimidating… but you don’t have to be some sort of genius or a coding pro to take part.

What do I do at a hackathon?

When you turn up to a hackathon, you’re going to be greeted by a bunch of friendly students who are above all passionate about learning. It depends on the hackathon, but a “bunch” can be anything from 50 to over 1000 students. There’ll be some volunteers and organizers ready to sign you in, hand you some complimentary swag, and answer any questions you might have.

First thing you probably want to do is put your bags somewhere and chat to some new people while you wait for the opening ceremony to begin. Hackathons are very much a social event. So don’t waste any opportunity to talk to somebody. Try to find out what they’re planning to do this weekend, what technology they’re using, and if they’ve been to a hackathon before.

Eventually, you’ll all be shuffled into an auditorium for the opening talks. The organizers will come up and tell you a bit about the event and what’s planned for the weekend. Then you’ll get to hear from the sponsors. Some companies will be sponsoring prizes to do with their technology and will give a quick demo in how to use it. Other companies might be there to tell you about their internship program. Sometimes somebody famous might come to talk.

Then hacking begins. You’ll team up with some other students to have fun making something cool. You can make anything you want using whatever technology you want. And it doesn’t have to be to win a prize. Hackathons aren’t really about winning prizes. They’re about playing with awesome technology.

You’ll be able to spend a full 24–36 hours working on your project if you want to. Some crazy people do just that! But you can take a break to eat some of the free meals and snacks provided and grab some sleep. There’s usually some fun activities (or hacktivities, geddit?) so everyone can have a nice break from working. Be honest, when’s the last time you got to play laser tag at midnight with 100 other people? When’s the last time you got to race around a building on a scooter whilst wearing a robin hood hat and extension cords as necklaces?

It will be a crazy rush to get your project finished. There will be last-minute bugs everywhere. But eventually you’ll have to call it a day. Hacking’s over and it’s demo time.

At smaller hackathons (with fewer than 200 people) everybody will demo their hacks in an auditorium in front of everybody else. It doesn’t matter if your hack doesn’t work properly or if you think your hack is dumb, it’s a chance to share what you learned over the weekend. And it’s so cool seeing what everyone else made. For hackathons larger than 200 people, demos in front of everyone get way too long. so instead, they usually do a science fair. Everybody walks around looking at everybody else’s hacks and a handful are chosen to demo in front of all the attendees during the closing ceremony. Prizes will be announced, thanks will be made, and you’ll all be invited to come again next time.

Why should I go to a hackathon?

There are three big reasons hackathons are awesome.

1. Hackathons are for learning

You’ll gain more practical knowledge in one hackathon than you learn in a month of lectures. People say this all the time. Hackathons are a super-condensed learning experience. You learn about idea generation, working with others, managing a project, how to use the libraries, frameworks, and APIs that are used by software engineers every day, how to work to a deadline, how to debug, how to do version control, how to deploy, how to test and improve your work, how to present your work on stage, and much more. When you work with others, you’re going to pick up so many new tips and tricks. These are all skills which will make you a better developer and these are all skills which will help you get a job/internship.

“I learned more in one weekend than I did in the last month of lectures!”

Have you ever tried to learn something, spent an hour practicing it, then never gotten back to it? Yep? Me to. But if you have 24 solid hours to work on something, you can learn a lot. Want to learn how to code? Go to a hackathon. Want to learn a new framework? Go to a hackathon. Got a great idea for an app that you never have time to make? Go to a hackathon.

2. Hackathons are for meeting people

You’re going to make some new friends. If you’re into tech or making stuff, you’re going to love the inventive, smart, fun people you meet at hackathons. And you’ll get to meet people from all over the world. People who you’d never get a chance to meet otherwise. I know people who live on other sides of the country, but are best friends because they worked together at a hackathon. I know people who started companies together because they met at a hackathon. It’s a fantastic place to share ideas, learn from others, and build connections.

Speaking of building connections, hackathons are like career fairs on steroids. If you’re looking for an internship or a job in the tech industry, guess where companies are recruiting? At hackathons of course! Unlike career fairs, you have a proper chance to meet the developers. You can spend a weekend with them, learning from them, showing them your work, and making an impression. I also know a ton of friends who have gotten jobs directly from hackathons.

Hackathons are cheap

Food, drink, and snacks are all free for the weekend! You don’t need to pay for accommodation. Some events even organize transport or (if you’re lucky) offer some travel reimbursements. Travel is really the only cost for hackathons. If there’s one near you, great! If you have to travel a bit, book travel well in advance and try to find out if there’s a coach to the hackathon that could pick you up. If you need to travel, it’s definitely worth the investment. Also, likelihood is you’re going to walk away with some cool free t-shirts, stickers, or prizes.

You shouldn’t be scared of hackathons

People ask me all sorts of things about their first hackathon. They’re often worried about whether or not they’ll fit in. Fact is you don’t have to be a coding master to take part and have a good time.

What if I don’t know how to code?

No problem! I didn’t know much about coding when I went to my first hackathon either. And I’ve seen complete beginners at every hackathon I’ve been to since. If you’ve never coded before, it’s a great opportunity to spend a weekend learning. You’ll be surrounded by experienced coders, willing to help you out. Coding can look pretty difficult, but actually it’s easy to get started.

If you already have some experience, you’ll fit into a team no problem. Your team will help teach you some new things and give you tasks to complete so you can build a project together.

Will I annoy people if I ask them questions?

You’re not going to annoy anybody! These events are wholly centred around learning and having fun. You’re meant to go and ask questions. Everybody will be willing to listen to your questions and help you learn new things. There will also be mentors from some top companies who are there to listen to questions and help you out.

If you can’t find somebody to help you out, go ask the volunteers. If they can’t help you themselves, they’ll help find you somebody who can.

What if I don’t know anybody there?

Not to worry! You’ll meet people when you get there. Everybody’s very friendly. A lot of people go to hackathons without teams. So it’s perfectly normal to go around to people, tell them you’re looking for a team, and ask if you can help out.

Hackathons will often run team-matching sessions at the start to help you meet people. And you can often join a facebook group for the event beforehand and post there to find potential teammates.

Protip: Invite your friends to come to the hackathon too! That way you’re guaranteed to have at least one familiar face.

What if I don’t have an idea?

That’s normal. Most people don’t have an idea before they get to the event. But once you start talking to other people, you might come up with something. You can also work with somebody else on their idea if you like it. And there will be prizes at the event which might help give you some ideas. Don’t worry about it, you’ll find something to work on.

Where can I sleep?

Sometimes the organizers will have put aside a quiet, dark room you can get some rest. If that’s the case, there are usually two rooms separated by gender. Due to venue restrictions, sometimes you’re going to have to grab some sleep on a sofa or on the ground beside your table. Either way, you should bring a sleeping bag and maybe a pillow to the event. Sleeping at hackathons isn’t always the most comfortable arrangement, but it’s worth it for the experience.

Will there be food?

Yep! Your meals for the weekend will be free and there’ll be plenty of snacks and drinks.

What if I don’t want to present my hack?

You might think your hack isn’t impressive enough to present. or you might think it won’t win a prize so why bother? Don’t be silly. Hackathons aren’t about winning prizes. And they aren’t about showing off. They’re about learning and playing with technology. There is absolutely no reason not to share what you’ve been working on for the weekend. Even if your hack doesn’t work or you couldn’t finish it, people like hearing about what you tried to do, what challenges you faced, what technology you used, and what you learned.

Great! How can I get involved?

Check out HackUB websites. But most importantly, find a hackathon near you and go to it.

Source: https://medium.com/tfogo/hackathons-are-for-beginners-77a9c9c0e000

HackUB 2017 © All Rights Reserved