Fifty Shades of Hacking

By Kelly Coughlin

A student walks by, looking disheveled to a degree normally reserved for mathematics graduate students – the ones often seen asleep with their computers open, their fourth daily cup of coffee slowly growing cold next to them – only this student doesn’t look ready for sleep. He looks excited.

After 24 hours spent in Davis Hall on the University at Buffalo North Campus, no one should look excited. Exhausted, bleary-eyed, maybe even half-dead, any combination of adjectives describe a human-turned-zombie from a full day of mind-numbing work should apply.

Wrong.

This guy just pulled off a hack.

No, not hack like hacking-down-a-tree, hack as in hackathon: a competition where students race to see who can design the most innovative solution to some self-determined problem in a limited amount of time – say, 24 hours. 

Looking around, there are sizable stacks of pizza boxes, empty coffee cups, and soda cans – it looks like someone just threw an awesome party. In a way, they did, but with much higher stakes.

Wandering around the groups of students are sponsors – representatives from major companies like M&T or Bloomberg. They are handing out pizza and casually discussing the projects students are completing.

To the untrained eye, it is all very casual. But there is more going on. Win a hackathon and a young coder might walk away with more than prize money. That casual conversation might land them their dream job.

“Employers are looking more for the projects you do than the classes you take,” says Emily Hann, a junior computer-engineering student and teaching assistant for an introductory computer coding class at UB. She explains that it takes more than grades to be successful in the computer industry. A transcript can say that a student has good grades, that their coursework covers certain coding “languages,” or that they have completed certain assignments. What is doesn’t say is that they are innovative, that they can take their skills and apply them to a real task.

“We lay everything out for the kids,” Hann says. She is talking about the basic labs students perform in her class – they complete coding assignments that are basically tutorials for coding. Completing the assignment does not make them masters of the material.

“When you cut them off, they don’t know where to go,” Hann says. This is to be expected at the fundamental level – mastering a coding language takes more than one assignment. But eventually the training wheels have to come off. Students have to find ways to prove themselves outside of the classroom. This is where the hackathons come into play.

“There is a lot of push towards computer engineering,” Hann says. Students have to be able to distinguish themselves from the crowd, and the competitions provide the perfect opportunity to show off their skills. At a glance they are building novelties – stairs that play music and arcade games – but really they are pulling off projects with MacGyver-level ingenuity.

The process seems simple: walk in with an idea, and make it happen with whatever materials are available. If that means taking an old computer and turning it into a arcade machine or sitting down and writing code in a trance-like state through the night, so be it.

Some of the projects are serious – senior physics major Nigel Michki spent UB’s latest competition creating a program to help researchers fit lines to their data when normal programs fail. If effective, the program could be immediately useful for researchers.

“There is a craving for innovative programming minds,” Michki explains. His statement coincides with Hann’s assessment: a successful computer-coder is more than just knowledgeable. They must also be creative. In a field that is constantly evolving, it takes more than keeping up: the leaders are the ones pushing things to the next level.

“Hacking – it’s like taking something you own and modifying it to make it work better for you,” Michki says. Along these lines, he explains that an act as simple as adding lights to your bicycle technically qualifies as performing a ‘hack.’

“Cracking is when you modify something for malicious purposes,” he clarifies. This is the more common perception of computer hackers – guys who live alone and steal credit card information. The stereotype is a bane for programmers who have their own language – not just for coding, but also for talking about what they do.

White hat coding is the stuff seen at hackathons. One might say it is hacking for the greater good – even if it is something as benign as musical stairs.

“Stealing pin numbers – that is black hat hacking,” Michki explains – also known as cracking. When the layperson talks about the ‘bad hackers’ a coder just shakes their head. There are no ‘bad hackers’ – there are crackers.

The hacks that fall between are the many shades of grey hat hacking. This could mean purposefully cracking one’s own system to see where the weaknesses are. It is not exactly good, but not bad either. 

It takes a wealth of knowledge just to keep up with the conversation of computer coding fanatics. They rant about L33T culture – as in LEET, short for ELITE, their nickname for the insiders of the coding game – and switch back and forth between coding languages. Python, C, C++, and, for those who can bear the shame: Java.

“The language, I guess the popularity of the language you are using doesn’t matter. You use the language that fits your problem – and there are very large differences between languages,” Michki says. 

Python is easy to write, but C is faster. The list goes on and on, and it is clear that learning how to juggle so many options takes skill and practice. 

Despite the tremendous effort required to compete in a hackathon – students take years learning to code, and have to come prepared with a good idea if they want to have a chance in the competition – the time spent working is full of camaraderie. 

“You can ask for help – you work with other people – you can use it as a way to learn,” Michki says. At a hackathon, it is commonplace for competitors to lend each other a hand. If one person doesn’t know how to fix their program, they don’t have to hesitate to ask a friend to take a look. The L33T have made themselves a tight-knit community, regardless of the stakes.

“Around 11:30 I hear ‘Sandstorm’ – you know the song – who is running around playing ‘Sandstorm’?” Michki recounts his confusion and reveals that the music was coming from the sponsors, who were also throwing cans of Redbull at the competitors – many of whom would go the full 24 hours without sleeping.

“I wouldn’t be surprised if most people don’t sleep,” Michki says. “They’re all really weird people.”

Seeing Michki, he looks like the kind of weird person you’d expect to see at a competition involving computer coding. He is tall, but gangly, with the kind of thick-rimmed glasses that make someone wonder if there isn’t a genetic link between intelligence and poor eyesight. Coupled with his extensive knowledge and desire to spew computer-programming propaganda, he is your stereotypical nerd – but he might take that as a compliment.

This is a matter of pride, after all.

What does it take to perform a good hack? At a hackathon, it takes years of experience and knowledge. It comes down to a bit of showing-off, pulling one’s best tricks, impressing friends and fellow competitors. 

Really, hacks are everywhere. The ad-blocker on a computer is a hack. The ‘life hacks’ listed all over the Internet – same concept.

Chances are that if you’re reading this, you’re already a hacker.

Kelly Coughlin is a senior at the University at Buffalo majoring in Biological Sciences and minoring in English. UB is home to the Omicron of New York Chapter of Phi Beta Kappa.