Why I Chose to Major in Computer Science
Like many millennials, I’ve had a lot of jobs so far in my short, post-college life (7 in 7 years), and as a result I’ve had many times more interviews. Being a software engineer, these interviews were often the infamously intimidating code-on-a-whiteboard type, but before the interviewers jumped right in and risked scaring all the quicksorts and binary trees out of their unsuspecting prospective programmer, they would frequently ask a simple warm up question: Why did you choose to major in computer science?
As these tended to be the kinds of companies that idolize the authors of canonical textbooks like “Compilers” in enormous Lego murals in their lobbies, I’ve always imagined they wanted me to answer that question in a way that demonstrated my never-ending love of clever algorithms and fancy data structures. They probably wanted me to say that it was because I’m obsessed with solving complex problems, or because I get some adverse pleasure from squeezing every nanosecond out of my code. But that’s never been the case for me, so for better or worse, I told them the truth.
I chose to major in computer science because I like being creative. Nothing makes me happier than having an abstract idea and turning it into a concrete reality. For me, programming is a creative medium, like clay or paint or wood; it’s a thing that lets me make things.
As a result, I could have just as happily majored in any other field that taught me to make things, like electrical or mechanical engineering, but being a digital medium, programming has a heap of benefits over any other physical one.
For starters, it’s incredibly accessible. Physical mediums require you to procure expensive and perhaps dangerous materials and tools, as well as a big enough space to put it all. Good luck fitting power tools in a New York City apartment, or if you can, using them without getting constant noise complaints. By contrast, with only a laptop and an internet connection, you can program anything from anywhere.
It’s also very forgiving. If you make a wrong cut in a piece of wood, you’ll probably have to start over, not to mention buy a new piece and wait a few days for it to be delivered. If you find a bug in your code, with just a few keystrokes you can fix the issue and push the update to all of your users. Because of this, it's also highly iterable, meaning you can rapidly build, deploy, get feedback, and improve upon your product (and your own skills) incredibly quickly, which is something that’s very satisfying during the creative process.
Finally, software products can be distributed more easily and widely than almost any other product. An iPhone app made in a week by a sole developer in Taiwan has the potential to get a million downloads from users all over the world in a single day. A physical product often needs to find retail partners, shelf space, and foot traffic. Or if it’s sold online, it needs to be delivered, requiring time, money, and complicated logistics.
All in all, majoring in computer science gave me access to an incredibly versatile creative medium, and has enabled me to make all the crazy things that pop into my head. Sometimes I feel insecure that I lack the same interest in the linux kernel and memory management as many of peers, but every time a fellow programmer excitedly tells me at length about the newest implementation of malloc, I feel satisfied with my motivations.