Tips for Attending a Hackathon as a Programming Newbie
Posted on by ejames
Our annual hackathon, Hack&Roll, is coming up at the end of this week. If you’re a freshman, or new to programming, you’re probably wondering if you should join it. You barely know how to program, after all, much less build apps — why join a competition filled with people with way more experience than you?
Well, here’s a secret: there are typically two reasons developers join hackathons. The first reason — as you suspect — is to compete (and there are people out there who optimise to win hackathons). But the second reason developers attend hackathons is to use the event as an excuse to work on personal stuff. It may be true that you’re not prepared to compete by building apps. But the second reason applies just as well to new programmers as it does to more experienced ones.
When seen in this light, a hackathon is a great place to learn to build stuff. You’d be sitting in a place filled with programmers, just like yourself, with food and drinks, a highly charged hacking environment, and the concentrated air of a hundred people trying to create something out of nothing.
There’s a spectrum for learning, of course. You could, as a freshman, join as a team and have everyone learn enough to complete an app by the end of the 24 hours. You could, with a group of friends, finish various programming challenges during the hackathon. Or you could just hang out, with a learning syllabus of your own creation, and challenge yourself to complete everything on that list by the end of the competitive period (see below for suggestions).
Regardless of what your goals are, you get food, drinks (including coffee - so very useful), music and company, as you work towards them. And as an added incentive, if you do build an app as a team of freshmen, we have a ‘Best Freshmen Effort’ spot prize to reward newbies dedicated enough to come and learn. (Teams of 1, and pre-university students qualify as well.)
Suggestions1) Work through Python programming challenges listed over at Python Practice Projects. Possible projects include building a templating engine, or a lisp interpreter.
2) Learn a web programming framework. You could use one of the following syllabi:
Complete the Rails tutorial. (It includes all the major elements of writing a web app, including deploying to a server). This syllabus teaches you: exposure to Ruby, Ruby on Rails, a good primer to Test Driven Development, understanding the Model View Controller design pattern, exposure to basic Git and a really basic Git deployment workflow, and basic HTML/CSS.
- Learn Django by following the official Django tutorial. Your goal is to create a Django-based website by the end of the hackathon. (Also see: this link).
- Learn Git by reading the Git book, chapters 1-5 (and skip chapter 4). Install Git on your machine.
- Set up a GitHub account, if you haven’t already. Push your Django project to GitHub.
- If you have time, buy some server space on Digital Ocean (which is really cheap), figure out how to set it up according to one of the Digital Ocean guides (for instance, here’s the Ubuntu server setup guide).
3) Solve the first 40 problems of Project Euler, in a language of your choice. (Various solutions exist online, feel free to determine the rules of your own challenge).
Celebrating HackingOur purpose with Hack&Roll is to celebrate and promote hacking in Singapore. History suggests that most good things in the field of computing happen with the support of a hacker community — i.e., a community of people who tinker with stuff. (See: Unix, GNU, Firefox, Apple Computers, Google). Our goal is to create this community in NUS (and eventually, Singapore) — in the hopes that this works out to everyone’s benefit.
We’d love for you to come drop by — whether you’re new to programming, or you’re experienced and want a shot at the prizes. For more information, and to register, visit hacknroll.nushackers.org.