I attended my first hackathon, CodeDay Boston, at the end of my sophomore year of high school, gathering my nerdiest friends for a full 24 hours of coding. I built a Twitter bot—a program that automatically posts to Twitter—feeding it historical speeches that spanned centuries and continents. It mashed them together to create statements that a political leader might say. “Some amongst us have begun to preach that the enfranchisement of all will result in racial domination,” for example, which combined speeches by Harold Ickes and Nelson Mandela. Some of its statements didn’t make sense. “These wounds are still at issue around the world the necessity of ending war. I tell you, we are with you now,” the bot said, learning from Jimmy Carter, John F. Kennedy, and Ronald Reagan. Still, I went home beaming because I’d made something I was proud of.
Once embraced as an innovative way to solve social problems, hackathons have also rightly become targets of skepticism, both for the limitations of their projects and their corporate-sponsored, often heavily branded culture. But hackathons (which are focused on making things—not on trying to break into computer systems or steal passwords) can also, within reason, serve an important purpose in developing skills and forming communities for people who are underrepresented in tech.
My Twitter bot was my first project in the Python programming language, my first attempt at connecting a program to Twitter, and my first time using a Markov chain algorithm (which let me construct speech patterns and then generate new statements based on those patterns). Learning Python has been invaluable for software-development internship interviews and microbiology research, for which I needed to develop motif-finding algorithms. The bots also helped me learn how to make Twitter bots in a different programming language. For example, I created the satirical @NextStartupIdeas account that parodies the common “Uber for X” startup pitches (for example, “Uber for honey,” “Airbnb for wheat,” and “SpaceX for dancing”). Though I haven’t yet used Markov chains for a class, I take some comfort in knowing that I’ll be able to recall this silly hackathon project when I learn about them in probability courses.
Because of their short duration, hackathons are relatively low-stakes: a weekend, compared to the years required to master a given skill, is enough time to try it. Hackathons are also full of mentors and participants who likely know that skill, making it easy to ask for help. The point isn’t necessarily to become an expert: at another CodeDay event, I tried to learn how to make Android apps; although I couldn’t make a complex app by the end, I was at least able to make a simple one by following an online tutorial. If I need to build an Android app in the future, I can focus on the functionality instead of the basics of creating a generic app.
Nor does the learning end with the weekend. At PennApps (one of the largest college-run hackathons, hosted by the University of Pennsylvania), I met two strangers and we bonded as we made a flashcard-based website to help immigrants like our parents learn about their new countries. My contribution was turning that website into a texting service, so people without access to WiFi could still use our resources. A year after the hackathon, I went back to polish my code and refresh those skills. People can, and do, go back and keep improving their projects, developing their skills long after the hackathon ends.
That short time frame is great for learning a new programming language, but not for creating genuine solutions to social problems. As the hackathon deadline nears, teams often force their projects to display the desired end results, even if the functionality to produce those results doesn’t work. Projects often solve participants’ immediate concerns at the expense of tackling the underlying causes of social problems. This has rightly drawn criticism of hackathons in general. In “You Can’t Just Hack Your Way to Social Change,” published in Harvard Business Review, DataKind founder Jake Porway warns of this danger: at a hackathon designed to promote New York City’s sustainability, the winning projects “included an app to help cyclists ‘bikepool’ together and a farmers’ market inventory app. These apps are great on their own, but they don’t solve the city’s sustainability problems. They solve the participants’ problems because as a young affluent hacker, my problem isn’t improving the city’s recycling programs, it’s finding kale on Saturdays.”
In order to be truly useful, hackathons with a focus on social impact need to include not just programmers but also representatives of nonprofit organizations and government—and, of course, the people who know about the problems the coders hope to address and the sources of relevant data. This model is championed by Code for Boston, a local branch of Code for America, a nonprofit I’m involved with that uses technology to solve civic and social issues. Code for Boston has organized multiple hackathons where technologists and government employees collaborate, and the resulting projects remain active after the hackathons end. Among them is Cornerwise, a website that displays current and upcoming construction projects in Somerville, allowing residents to be prepared for construction in their neighborhoods.
Hackathons don’t all focus on social good, and they don’t need to. Their broader appeal stems from their ability to bring technologists together, particularly those who may not have ready access to a programming community. Anyone can lock herself in her room and code for a weekend, but collaboration makes the process more fun, and increases the quality of the end products. When I attended PennApps and made the tool for immigrants, I worked with two people whom I first met through a Facebook group for women in computing. We hadn’t met in person before, but quickly bonded and have stayed in touch since: more evidence that hackathons—a hallmark of tech culture, still dominated by men—are an excellent way for women and other underrepresented people to meet and develop support networks.
As hackathons become more realistic about their potential and limitations, they can become truly useful. HackHarvard is held annually in October, drawing more than 500 attendees from around the world. My co-organizers and I plan it in hopes of fostering an environment of learning and making, and providing the best possible experience for our participants. I went home beaming after that first CodeDay Boston, having made a funny Twitter bot in a new programming language and using a new algorithm—and that experience has driven me to continue honing my programming skills. If nothing else, hackathons give people pride and confidence in their abilities.