From the Desert: Why we hackPosted on February 17, 2014 | by Lingliang Zhang
Editor’s note: This article was originally published in Issue 28 of The Gazelle, the student publication at NYU Abu Dhabi. It has been reprinted with permission as a part of an ongoing collaboration between The Gazelle and WSN to connect our two campuses.
It is not uncommon to find hackers awake at 4 a.m. typing away furiously, oblivious to how late their own escapades have taken them. Neither is it a rare occurrence for hackers to forget to eat when they are deep into a project. From Feb. 14-16, NYU Abu Dhabi hosted its third annual international hackathon, bringing in hundreds of contestants and judges to build apps for social good. The question that one unfamiliar with hacker culture might naturally pose is “why?” What would compel ordinary people to forego sleep, food and their weekend to pursue something. In short: why do we hack?
My answer to this comes in three parts, and it boils down to what code means to me. I see code as science, as craft and as art.
Code is science. In computer science we have first principles: Every single piece of code that runs on any hardware can be reduced to the three simple operations of addition, read and write. Imagine a gnome whose only skill is addition and who wields an infinitely large backpack. That gnome could execute every program we’ve ever conceived. Despite how little we have to start with, there is much we have yet to discover — and we still only understand a fraction of what is possible with computers. We also construct, building new technologies upon existing technologies, reaching higher and more powerful abstractions constantly. When we code, we are always discovering and we are always creating new possibilities.
Code is craft. When you get the chance, watch a hacker work. They will be flying through their code, creating patterns and expressing ideas as if it’s second nature. It is — but only after hundreds of hours spent driving behind a keyboard through which we’ve each develop our own style, technical proficiency and thought patterns that enable us to create. And as with every craft, we have great tools. Each of us has our own collection of our favorite languages and frameworks whose paradigms and quirks we’ve come to know intimately and adore. These tools are powerful. They are created by the culture of open source, within which we create technologies and distribute our projects freely. In open source, we allow other people to use our work and build on top of it with the hope that those who use and improve our tools will return their contributions to the public. Because of this upward progression, I can do in an hour today what some thought was practically impossible only a few years ago. Every day, we find more-powerful tools and become more proficient ourselves.
Code is art. Beautiful code is not the sort that makes a pretty button in an app or logs you into a website. Rather, it all starts with a problem. Faced with a challenge, a hacker creates a solution that has two facets: the idea and its expression. Many ideas will require long, convoluted explanations to understand its huge logical tree of cases. Likewise, many expressions of solutions can be confusing, unreadable and riddled with bugs. Sometimes, however, we stumble upon an idea, a metaphor or model for the solution that is so simple it seems obvious, and yet it is powerfully complete. Sometimes, the expression in the form of code is strikingly clear and elegant. When we see the union of a creative idea with an elegant expression, we cannot help but stand back and admire the sheer creativity and skill of the hacker and become a little inspired ourselves.
Hacking is not something that can be taught in school. Hackers are not computer science students. The reason they don’t teach coding in school is that, come graduation, everything learned in four years would already be out of date. Rather, hackers are those who have a passion to create with code. We are those who have an endless desire to learn more, to enhance our own potential in what we can create. We feel that our code is never finished: There is always a bigger challenge to be solved. We stay up late into the night, foregoing our basic needs, because we are driven by the desire to create something new. That is the essence of the hacker.
If you want to become a hacker, pick up your keyboard and code.
Lingliang Zhang is web director and a contributing writer at The Gazelle. Email him at email@example.com