Hackathons are a sensation that have spread far and wide throughout the developer community. This spread is even more prevalent through college Computer Science departments in which students travel to compete, develop and learn. Through companies like MLH, 'The Official Student hackathon League', students have been able to adventure out to other colleges to participate in yearly hackathons. Overall these hackathons seem great and seem to bring a lot of fun to the developer culture.
Lets start with the environment that hackathons inspire. In theory, they are supposed to harbor a playground for new ideas, adventurous minds, and the ability to learn a lot. Sometimes, that happens. The majority of the time that I’ve seen individuals at hackathons or participating, I’ve seen the opposite. There are students stricken down from their false hopes of mentorship, fun, and a productive environment. Those intending to win almost never have a novel or fun idea. It is generally a calculated risk on making a product that flows with several new technologies that may or may not be difficult to work with. These may entail Machine Learning, Virtual Reality, or whatever the next big tech trend is. While the development of new technology can be relatively difficult, due to the lack of documentation, there are often projects that technically are not as advanced or difficult to reproduce that often end up winning due to visually appealing features. In essence, the idea, vision, and technical difficult get lost within a swarm of buzzwords.
Now don’t get me wrong, there are a lot of fun technologies to utilize and I’ve dabbled my hand in playing with various things. But there are often technologies that aren’t as fun to work with or ideas that are forced in order to appeal to various judges. This, in my opinion, kills the hackathon culture by reducing the fun in the development cycle. I’d liken hackathons to a startup environment. There’s a rush to utilize the next ‘hot’ language, tech, or feature in order to gain a leg up in meetings with potential investors. Yet, instead of investors there are several judges which come from various sponsors and are generally biased towards applications dealing with whatever technology they bring in. Another aspect of Hackathons that I despise is the graveyard of bad projects that are churned out purely to satisfy these judges. I hardly see anyone pursue future work on a hackathon project in which their idea was solely based off of pursuing prizes offered by the sponsors. This generally leads to a graveyard of dead projects on Devpost and github that were rushed and poorly coded.
There is a dark side to hackathons that I feel must be known. Hackathons are a breeding ground for stress, and poor coding practices. I’ve personally been on the receiving end of these negatives when participating in various hackathons and at times I worry about others and the things that they’re going through. This is the side of hackathons that I'd like to focus on for this article, the side that is rarely spoken about.
The expectation of completing an app and creating a demo within 24 hours or less is enough to instill stress in certain individuals. The overall process is a massive stress and caffeine induced bit of mayhem that generally involves staying awake for 24 hours or more at a time. This can be a severely unhealthy and damaging to ones physical and mental health. Yet these practices are commonplace to almost every college hackathon I’ve seen. I’ve personally been on the end of having to pull an all nighter in order to finish a major portion of an app and as such drank around 3 to 4 large monsters. By the end of the event I felt quite ill and regretted everything. Yet this is a common practice that I have repeated in several hackathons. But again, this is common and often what is expected at hackathons in order to be competitive.
The food options are also quite questionable and are often either greasy or loaded with sugar. Now, it pains me to complain about ‘free’ food. However, doing due diligence to provide healthier options is not that much work for the organizers and it would be highly appreciated by most hackathon attendees.
Overall I believe hackathons are not a healthy environment to code in as they are now within the college environment. Extending them to be a weekend long would improve the longevity of attendees and would generate better overall products.
“ If debugging is the process of removing software bugs, then programming must be the process of putting them in. ” - Edsger Dijkstra
I’m generally pretty anal about my coding practices. For instance, when writing in python, I like there to be 4 spaces and I treat those who use tabs like heretics. (Mostly because it messes with my .vimrc) However, when poised with finishing a project in 24 hours, I throw most of that to the wind. There is also the aspect of coding under pressure while deprived of sleep, which even furthers the mediocrity of the code output. There isn’t time for comments, refactoring or review. Getting everything to work is of the utmost importance. But when pivoting into a business setting or the real world, coding standards matter. They help with the process of reviewing code and ensuring modularity, conciseness, and that any individual who maintains the code afterwards doesn’t loathe work for the pure thought of looking at code.
Realistically, anyone that would have to maintain code that was written during a hackathon is going to have a really rough time due to the sheer amount of technical debt generated during the hackathon’s 24 hours of red bull and pizza fueled coding rage. This then leads to projects rarely being developed on after the event, which in my opinion is quite sad. If you’re willing to put 24 hours into a project, it should be something that you appreciate and want to work on afterwards. But unfortunately, this is not the case in the current hackathon mindset.
Overall, there are a lot of bad things that can go wrong within hackathons. Many hackathon goers experience these and unfortunately stop their pursuit of such events. However, there are also ways to ensure that every hackathon experience goes much better than expected.
I’d also like to mention that I don’t hate hackathons. I’ve experienced good hackathons, which incorporate great stress relieving mechanisms to ensure that a great event is held. Judging is still speculative but that’s unfortunately life. I've also been graced to work with and meet really amazing people at the hackathons I have participated in. They are a great networking event and something that should be taken into considerations.
However, hackathons are not 'the end all be all' of computer science or developer culture. They are far too social for most introverted people and provide too much strain for anyone with a realistic mind for development. Hackathons are also not something which should be seen as a resume booster. Yes, participating in events like these are great and having a project is a good thing. But the attendance of a hackathon itself should not be seen at something that companies deem worthy of hire. Realistically companies note that hackathons are troubled and not always realistic for their enviornment. They often support these events as a source of marketing and relatively cheap labor compared to the man hours involved.
Weekly hackathon events with no stress nor insane time commitments are far better for the developer ecosystem as a whole. Realistically it is up to an individual as to whether or not a hackathon is worth it to them. They should weigh all of the positive and negative factors as well as a valid assessment of themselves to see if participating is worth it.