Until this weekend, I had never been to a hackathon before. This was mostly by choice, although last year I chose being a backstage helper in a play over going to Hack TX. I don't actively seek and apply to hackathons because in my head, hackathons aren't a desirable experience. I know myself, and I know that when I don't get enough sleep, I'm unable to function. I also get stressed very easily, and I'm somewhat of a perfectionist. Why on earth would I put myself in a situation where I would be getting no sleep and would be stressing myself out trying to finish coding up some sort of application in such a short amount of time? There's never been any appeal to hackathons for me, so I've never even tried to go to one before.
However, I'm a firm believer that I won't know how much I like something until I try it, so I went to Hack TX this weekend with low expectations and low ambitions, and I was pleasantly surprised by how much I enjoyed myself. I got to do more frontend work, which was a nice change from the programming I do for my classes. In a classroom setting, we're all working on the same projects, and there's very little room for creativity. At a hackathon, however, there's a lot more freedom, and I got to see my friends apply themselves and excel in ways that I hadn't seen before, which was pretty cool. I also didn't pay for a single meal this weekend, which was really nice (although I can't say the vegetarian options were great). Hack TX was almost like a giant sleepover with a purpose, and I had a lot of fun. It was also rewarding at the end to be able to present the thing we had worked so hard on and to see it (mostly) working.
The most interesting thing about the hackathon, though, was seeing how the software engineering process could be condensed into 24 hours and still be effective. They say people work best under pressure, and I could see that happening all around me as teams hurried to create a whole application in 24 hours. At my internship last summer, we would take 1 day to discuss design specifications for a new feature, then spend 2-3 days researching the ways other people had implemented this feature to figure out the best way for us to go about writing code. We would then spend 1-2 weeks writing and testing code depending on how large or small the feature was, and the process would repeat. At a hackathon, you don't have time for that. We spent an hour at the most discussing our idea, and then we hit the ground running without making any concrete design decisions until absolutely necessary. We hardly tested our application, simply because we didn't have time. It was just fascinating to see how the process could still work even when squished into 24 hours instead of spread over several weeks.
So what's my ultimate verdict on hackathons? I had a lot of fun, so I would definitely recommend the experience to anyone who hasn't been to a hackathon before. Even if you don't intend to make a life-changing app, you can still learn a lot and enjoy yourself while doing it. That being said, I don't think hackathons are for me. I wouldn't mind going to another hackathon, but I wouldn't want to go to another hackathon right in the middle of the semester like this one was. I lost a lot of time this weekend to the hackathon, and I'll definitely be paying for it by getting less sleep during the week (as if I didn't already lose enough sleep). If you're like me and you don't do well on so little sleep, maybe hackathons aren't for you. But if you can think clearly even when you're tired, and you like working with new technologies and learning new things, hackathons are a great way to do so.