It’s no secret that over the past three years hackathons have exploded across the country, bringing with them the opportunity for thousands of students to grow their coding skills and build a community of developers at their university. Despite this massive growth, it seems that hackathon knowledge is still spread by word of mouth, leaving some younger students wondering how to get started.
Every couple of months a new student will pop into our Rutgers Hackathon Club Facebook group and ask “I’m only a freshman, can I still join and be successful?” (yes, you can), “I only know [INTRO TO CS LANGUAGE], can I still make something?” (yes, you can) or “how do I know what project to work on while I’m there?” (more on that later). Although much of this is tribal knowledge among veterans, no one has taken the time to codify how newcomers get the most out of their experience. To that end, I’ve put together a dead simple list of everything a first time attendee needs to do so as to maximize their initial hackathon.
Read up a little bit (optional)
For a coding newbie, your first event can definitely be an intimidating experience. People will be throwing around terms like RESTful API, JSON, NoSQL, and client library like they’re the most natural thing in the world. Meanwhile, you’re sitting at API demos hoping wondering how the hell to get a webpage displayed on localhost (or even wondering what the hell this magic localhost is).
If you want to spend your time developing software instead of learning concepts, a little reading goes a long way. Being able to cite the HTTP spec backwards (or even knowing what it is) certainly isn’t necessary, but if you want to build a webapp, knowing about HTTP requests and responses will save you a lot of conceptual headache. Similarly, if you want to build a mobile app, hello worlding an app in your simulator before the hackathon will save you a lot of headache on the day of the event.
If you’re not sure where to start learning some of the subjects discussed above, there are a tonof tutorials out about utilizing APIs for the web, with the first link there in particular being highly recommended. It’s written in Python, but reading the code should be pretty straightforward for anyone with programming knowledge. If you are looking to do something more mobile-based, the docs for starting Android development and iPhone development are also ridiculously extensive.
Even if you decide not to do any reading beforehand, there will assuredly be tech talks and mentorship to get you up to speed with the basic terminology, so don’t let a lack of background knowledge stop you from attending.
Know what you want to accomplish
This can be as simple or as vague as you’d like, but it’s always good to have some type of plan about what you want to accomplish during your 24-48 hours. Your goal can be something as simple as finish and demo SOMETHING, or it can be as detailed as “build a game on Android where squirrels fly through the air and eat exploding acorns”.
If you’re coming to a hackathon with the goal of learning but don’t know what you want to learn, just pick a random language (Python and PHP are easiest for webapps) and plan to make an application that uses that language. Alternatively, if you’re stuck on an application idea, watch the API demos and see if any of the APIs helps solve a problem that you’ve encountered. If you’re still stumped on a project, head to the event’s pitch session and join a team that seems like it has an awesome idea, there will be tons of teams there that would love to have your help.
While we’re on the subject of teams, I want to address one of the most common questions I see in the Rutgers Hackathon Club: “Do I need to go with a team already in place?”. The answer to that is no, not at all. In fact, you don’t even need to want to work with a team; it is perfectly acceptable for you to go solo-bandito and work by yourself. If coding solo that’s not your cup of tea, there are also plenty of ways to join or create a team on site. For your first time, the easiest way to deal with teams is either head in with an idea of some people you’d like to work with (it doesn’t have a codified team, just 4-5 people you could envision yourself working with), plan to work solo or plan to jump on board with someone else’s team. There is also the option of trying to build and lead a team of strangers on-site, however, unless you have experience with this, I’d advise against trying to lead a team of strangers that you met at the event, simply because working with new people always adds a bunch of layers of complexity.
Whatever your team and your goal, make sure to push your skills as a developer. Hackathons are a unique opportunity to have tons of mentorship at your fingertips; take advantage of that by trying something hard and getting extra help as necessary.
Talk to people
You’re probably coming to this event to code, but that doesn’t mean that you need to spend all of your time creating features and debugging errors; you should also spend some time getting to know the other students attending the event. Hackathons are frequented immense community of students and mentors who travel to events multiple times a month, exchange ideas, and generally share their passion for making awesome technology. By taking time out of your hackathon to meet other attendees, you will not only make some great friends, but also you will find opportunities to learn more about programming, get resources for your hack, and even find internships/jobs that you otherwise wouldn’t have known about,
Granted, if this is your first time at a hackathon, the prospect of making new friends in a sea of 1,000 people could seem like a daunting task. If you’re a bit overwhelmed with how to get started meeting other hackathon attendees, try one of these two ideas to get you started.
- Go with your school/friends. Chances are your school has a group of students who are interested in programming outside of the classroom, seek them out at your school CS lab, see what events they’re going to, and then join them for those events. If you’re not sure what to look for, just listen for passionate debates about technology. If the students involved do already regularly attend Hackathons, they will certainly be interested in traveling to one with you. Regardless of how you find fellow hackers, don’t be shy about being new, I can guarantee you that your fellow developers would love to share their passion for technology with you. If you’re on the Eastern seaboard and don’t have a group of hackers at your school, drop me a line at @maltzj, I’ll see if I can get you integrated with our network of Rutgers students.
- Once you’re at the event, wait for a little while and find someone who looks like they’re taking a break, walk over to them and ask them what they’re working on. 99 times out of 100 he or she will start excitedly talking to your about his or her team’s project. Ask some questions about themselves, their school, and technology that they’re using. Then, get their name, and wish them good luck. If you see that person again, check up on how their project is doing or congratulate them on an awesome presentation if it’s after demos.
After the event, if you feel like the you got along with someone, exchange contact information (business cards and twitter are great for this), stay in touch with your new friend via the interwebs, and catch up at events throughout the year. Congratulations, you just made a friend and “networked”, that wasn’t such an icky and soulless process was it?
Always, always demo.
At the end of every event there will be a period where everyone who attended can show off what they built to the other attendees. No matter how far along your project is, demo SOMETHING. Seriously, even if it is a concept and half a webpage, you should demo it. For the last 24-48 hours you’ve worked hard to build something that you would have thought impossible at the beginning of the event. You deserve to have your hard work rewarded, if not with a prize, then at least with a round of applause from your peers. In case you’re thinking that you shouldn’t demo, let me share a story which changed the way I looked at demoing forever.
My first hackathon was the Spring Penapps in 2012. After starting off with a ton of energy, the event turned into a disaster which culminated in my team and I making a project called “Easy Mood”, a website sort of like rainy mood but way uglier and with kittens (side note: when in doubt, use kittens and gifs). When demo time approached, I was feeling pretty ashamed our project and didn’t want to submit it for presentation. At around the same time, Rutgers Hackathon club founder and Major League Hacking Commissioner, Swift, was walking around talking to the Rutgers contingent about what they did.
He came over, asked our team what we did, and I sheepishly explained our project while confiding that I didn’t really want to present. As soon as the words left my mouth he said, in classic Swift fashion (with slightly choicer language) “Jonathan, I don’t care what you say, you’re presenting”. This was immediately followed by a Swifttastic tirade in which he simultaneously browbeat me into presenting while giving me enough confidence to do so. It was really quite impressive. After that pep talk we decided that there was really no downside to presenting our project, so we went up their and sold Easy Mood as best we could. It just so happened that we were the only team to use a Mashery API, so one of my teammates ended up walking home with a Jambox, a $200 piece of hardware. Not bad for a group that was going to hide in the audience not more than 30 minutes prior.
If that isn’t enough for you, think about this: at some point in your life you’re going to have to sell the idea that something is awesome. Maybe that something will be a product that your company produces, or maybe it will be yourself when an interviewer asks “Sally, tell me about this here project on your resume”. Regardless of what you’re selling, in moments like those you need to know how to take something and make someone else understand why it is awesome. Hackathon demos are the best time to hone that skill because no matter what happens, you have a supportive audience who will cheer you on even if your demo is a catastrophic failure.
So that’s it, that’s all you need to do in order to get the most out of your Hackathon experience. You don’t need god-like web programming skills and you don’t need to be able to know 10 different programming languages. Instead, all you need to do is show up to the event with a positive attitude and follow the four simple actions I outlined above. If you do that, you’ll walk out of your first hackathon with a whole raft of new skills and some new friends to boot.
- Jonathan Maltz (@maltzj)